Inhaltsverzeechnes[Verstoppen][Show]
Wëllkomm op der drëtter Virliesung am Crashcours.
An dësem Virtrag léiere mir mat Strings am Python ëmzegoen. Maacht Äre Popcorn prett a setzt sech fest.
Strings
Als éischt, loosst eis iwwer Zitater schwätzen an d'Verwirrung eliminéieren déi se am Python aféieren.
Wéi virdru scho gesot, kënne mir souwuel eenzel an duebel Zitater no enger Funktioun am Python benotzen. Et gëtt eng spezifesch Utilitéit vun dësem. Ugeholl Dir wëllt esou eppes drécken.
print('This is Shahbaz's computer')
Elo am uewe genannten Ausdrock gëtt alles nom zweeten Zitat wéi am "Shahbaz's" onidentifizéiert vum Python Dolmetscher well Python den zweeten Zitat als Enn vum String hëlt. An deem Fall wëllt Dir déi duebel Zitater benotze fir d'String esou ze deklaréieren:
print("This is Shahbaz's computer")
Dëst kann och ëmgedréint applizéiert ginn a mir kënnen eenzel Zitater benotzen wann et duebel Zitater bannent der String sinn. zb
print('This "computer" belongs to Shahbaz')
Elo wann Dir e String wëllt drécken, dee méi Zeilen ausdehnt, musst Dir dräimol Zitater benotze fir de String ëmzeschléissen. Dës Zitater kënnen och eenzel oder duebel sinn ofhängeg vum Inhalt vun der String. Zum Beispill:
Loosst eis elo soen datt Dir e bestëmmte Charakter aus der String drécke wëllt. Wéi géift Dir dat maachen?
De Python Dolmetscher indexéiert d'Zeechen an der String esou:
Wéi Dir am Terminal gesitt, ass nëmmen 'h' gedréckt ginn. Dat ass well mir nëmmen den drëtte Charakter an eiser String ausgewielt hunn fir um Terminal ze drécken andeems mir 3 a véiereckege Klammeren schreiwen no der Variabel. De Python Dolmetscher indexéiert och d'Charaktere negativ fir grouss Saiten ze vereinfachen. Dat heescht datt den '-1' déi lescht Nummer an der String ass a sou weider. Notéiert datt d'Plaze net indexéiert sinn, wat heescht datt déi uewe genannte String nëmmen 21 indexéiert Plazen huet.
Dir kënnt och eng Serie vu Personnagen aus der String auswielen. zb
HashDork = ('Python Course by Shahbaz')
print(HashDork[0:3])
Dëse Programm dréckt 'Pyt' um Terminal. Index 3 ass dovun ausgeschloss.
HashDork = ('Python Course by Shahbaz')
print(HashDork[2:])
Op déiselwecht Manéier, wa mir den Endindex net liwweren, dréckt de Python de ganze String nom éischten Index. D'Ausgab vun dësem Programm wäert 'thon Course vum Shahbaz' sinn. Dëst hält vice versa. dh wa mir den éischten Index verpassen, da gëtt de ganze String vum Ufank bis zum leschte definéierten Index gedréckt.
E Programm mat nëmmen de Colon an den Indexklammern gëtt de komplette String um Terminal.
Übung
Hei ass eng interessant Übung
schreift e Programm deen den Indexintervall vun [1:-1] definéiert. Wat mengt Dir wäert d'Ausgab sinn. Probéiert et selwer.
Formatéiert Strings
Formatéiert Strings si besonnesch nëtzlech a Situatiounen wou Dir dynamesch e puer Text mat Äre Variablen generéiert. Loosst mech Iech weisen.
Loosst eis soen datt mir zwou Variabelen hunn, Virnumm a Familljennumm.
first_name = 'Shahbaz'
last_name = 'Bhatti'
Elo wëlle mir 'Shahbaz [Bhatti] ass e Coder' um Terminal drécken. Wéi géife mir dat maachen? Mir wäerten eng drëtt Variabel wéi dës aféieren:
message = 'first_name + ' [' + last_name + '] is a coder'
Elo wa mir dëse Programm drécken a lafen, kréie mir 'Shahbaz [Bhatti] ass e Coder' um Terminal.
Och wann dës Approche perfekt funktionnéiert, ass et net ideal well wéi eisen Text méi komplizéiert gëtt, gëtt et méi schwéier d'Ausgab ze visualiséieren. Dëst ass wou mir formatéiert Strings benotzen, si maachen et méi einfach fir eis d'Ausgab ze visualiséieren.
Loosst eis déi drëtt Variabel 'Message' änneren an eng formatéiert String aféieren. Fir formatéiert Saiten ze definéieren, Präfix Är Saiten mat engem 'f' a benotzt dann gekrauselt Klammern fir dynamesch Wäerter an Är Saiten anzeginn. Eise Programm wäert esou ausgesinn:
first_name = 'Shahbaz'
last_name = 'Bhatti'
message = f'{first_name} [{last_name}] is a coder'
Fir formatéiert Saiten ze definéieren, Präfix Är Saiten mat engem F a benotzt dann gekrauselt Klammern fir dynamesch Wäerter an Är Saiten anzeginn.
Cool Saachen Dir kënnt mat Python Strings maachen
Ech weisen Iech e puer wierklech cool Saachen déi Dir mat Python Saiten maache kënnt.
1. Zuel vun Zeechen an engem String
Also loosst eis ufänken mat enger Variabel ze definéieren:
message = 'Shahbaz Bhatti is a Coder '
Elo wann ech d'Zuel vun den Zeechen an der uewe genannter String bestëmmen wëll, gëtt et eng agebaute Funktioun "len" am Python. Dréckt just d'Variabel mat dëser Funktioun esou
print(len(message))
Dëst ass besonnesch nëtzlech wann Dir Input vum Benotzer kritt. Zum Beispill, Dir hutt gemierkt datt wann Dir e Formulaire online ausfëllt, all Inputfeld dacks eng Limit huet. Zum Beispill, Dir hutt vläicht 50 Zeeche fir Ären Numm, also mat dëser "len" Funktioun kënne mir eng Limite vun der Unzuel vun Zeechen an engem Inputfeld duerchsetzen.
2. Zeeche vun engem String ëmgewandelt an grouss oder kleng
Mir kënnen Zougang zu de String-Zesummenhang Funktiounen duerch de Punkt Bedreiwer kréien. Dir kënnt Äre Variabelennumm aginn an andeems Dir e Punkt virdru setzt, kënnt Dir d'Lëscht vun all esou Funktiounen gesinn.
Elo a méi präzise Begrëffer, bezitt Dir op dës Funktiounen als Methoden, dëst ass e Begrëff an objektorientéierter Programméierung, op déi mir an Zukunft wëllen kucken, awer fir de Moment, wat ech wëll datt Dir ewechhuele wëllt, ass datt wann eng Funktioun gehéiert zu soss eppes oder ass spezifesch fir eng Aart vun Objet, bezeechne mir dës Funktioun als Method. An dësem Fall benotze mir d'Method "Uewer" fir d'String an d'Haaptbuch ze konvertéieren.
Well dës Funktioun spezifesch ass fir eng String, bezeechne mir dëst als Method. Am Géigesaz zu "len" an "print" sinn allgemeng Zweck Funktiounen, si gehéieren net zu Saiten oder Zuelen oder aner Aarte vun Objeten. Dëst ass de Basisdifferenz tëscht enger Funktioun an enger Method.
Elo drécke mir dëst aus.
message = 'Shahbaz Bhatti is a coder'
print(message.upper())
A mir kënne gesinn, datt mir eise String am Grousse Buschtawen hunn. Ähnlech hu mir eng Method "niddereg" fir de String an kleng Buschtawen ze konvertéieren. Dir kënnt och d'Method "Titel" benotzen fir all Wuert vun der String ze kapitaliséieren.
Bedenkt datt d'Method eis ursprénglech String net ännert oder ännert. Tatsächlech erstellt en neie String a bréngt se zréck.
3. Fannt d'Sequenz vun de Charakteren an engem String
Loosst eis eng aner Method probéieren fir den Index vun engem bestëmmte Charakter an der String ze fannen.
Typ:
message.find('b')
no der selwechter Variabel an Drécken et. Et wäert den Index vun der éischter Optriede vum Bréif 'b' an der String drécken, déi an dësem Fall 4 ass.
Bedenkt datt dës Method ka sensibel ass an et gëtt -1 zréck wann de Charakter net an der String fonnt gëtt. Et kann och fir eng Sequenz vun Zeechen benotzt ginn.
Zum Beispill, de folgende Programm:
message = 'Shahbaz Bhatti is a coder'
print(message.find('coder'))
wäert de Wäert "20" zréckginn wéi d'Sequenz "Coder" vum Index 20 fänkt.
4. E Charakter an engem String ersetzen
Dir kënnt d'Methode "ersetzen" benotze fir e Charakter oder eng Sequenz vun Zeechen an enger String ze ersetzen. Loosst eis dëst an Aktioun gesinn.
message = 'Shahbaz Bhatti is a coder'
print(message.replace('coder', 'programmer'))
Dëse Programm ersetzt d'Wuert "Coder" duerch "Programméierer" an dréckt et um Terminal.
5. Check d'Existenz vun engem Charakter an engem String
Elo ginn et Fäll wou Dir d'Existenz vun engem Charakter oder eng Sequenz vum Charakter an Ärer String wëllt kontrolléieren. An deene Situatiounen kënnt Dir Ären Ausdrock esou benotzen:
message = 'Shahbaz Bhatti is a coder'
print('python' am Message)
Elo gëtt dëst eng boolesch Funktioun zréck. dh "richteg" oder "falsch". Esou;
Maacht weg datt all dës Methoden a Funktiounen case-sensibel sinn.
Apaken!
Et gëtt vill méi zu Strings, déi mir lues a lues léieren wéi mir virukommen. Als nächst wäerte mir léieren arithmetesch Operatiounen am Python auszeféieren.
Hannerlooss eng Äntwert