Python-Studiennotizen (vier) -Prozesskontrolle

Was ist der Zweck des Lernens des Kontrollprozesses? Der Steuerungsfluss kann eine sehr komplexe Codelogik realisieren, er kann intelligentere Funktionen realisieren

Bedingte Anweisungen

Python-bedingte Anweisungen sind grundsätzlich dieselben wie in anderen Sprachen, und der auszuführende Codeblock wird durch das Ausführungsergebnis (True oder False) einer oder mehrerer Anweisungen bestimmt.

Die Programmiersprache Python gibt alle Werte ungleich Null und ungleich Null als True und 0 oder Null als False an.

Grundform der if-Anweisung

In Python lautet die Grundform einer if-Anweisung wie folgt:

if 判断条件:
    执行语句……
else:
    执行语句……

Für die Python-Sprache gelten strenge Einrückungsanforderungen. Daher müssen Sie hier auch auf die Einrückung achten und den Doppelpunkt nicht verpassen :

Die Beurteilungsbedingung der if-Anweisung kann ausgedrückt werden durch> (größer als), <(kleiner als), == (gleich),> = (größer als oder gleich) und <= (kleiner als oder gleich).
Beispiel:

results=59
if results>=60:
    print ('及格')
else :
    print ('不及格')
 
 运行结果:
 不及格

Wie oben erwähnt, werden Nicht-Null-Werte, nicht leere Zeichenfolgen, nicht leere Listen usw. als wahr beurteilt, andernfalls ist es falsch. So kann es auch so geschrieben werden:

num = 6
if num:
    print('Hello Python')
    
运行结果:
Hello Python

Was ist, wenn wir es numin eine leere Zeichenfolge geändert haben?

if '':
    print('hello python')

Offensichtlich ist eine leere Zeichenfolge False, die Anweisung erfüllt nicht die Bedingungen und führt den print('Hello Python')Code nicht aus.

Hinweis: Im Doppelpunkt des Bedingungsbeurteilungscodes :muss der Inhalt der nächsten Zeile eingerückt werden. Wenn Sie nicht einrücken, wird eine Fehlermeldung angezeigt. Doppelpunkt und Einrückung ist eine Art Syntax. Es wird Python helfen, die Ebenen zwischen Codes zu unterscheiden und die Logik und die Reihenfolge der bedingten Ausführung zu verstehen.

Die Form der Mehrfachbeurteilungsbedingungen in der if-Anweisung

Manchmal können wir nicht nur zwei Urteilssätze haben, und manchmal brauchen wir mehr als einen. Wenn zum Beispiel im obigen Beispiel der Wert größer als 60 ist, müssen wir beurteilen, dass der Wert größer als 90 ausgezeichnet ist. und der Wert zwischen 80 und 90 ist gut.

Zu diesem Zeitpunkt sind mehrere Beurteilungsbedingungen der if-Anweisung erforderlich.

Syntaxformat:

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

Beispiele:

results = 89

if results > 90:
    print('优秀')
elif results > 80:
    print('良好')
elif results > 60:
    print ('及格')
else :
    print ('不及格')
运行结果:
良好

Wenn Aussage mehrere Bedingungen gleichzeitig beurteilt werden

Was sollen wir tun, wenn wir manchmal auf mehrere Bedingungen stoßen?

Wenn beispielsweise die Testergebnisse von Java und Python mehr als 80 Punkte betragen müssen, wird dies als ausgezeichnet angesehen. Was soll ich zu diesem Zeitpunkt tun?

Zu diesem Zeitpunkt können wir kombinieren orund andverwenden.

oder (oder) bedeutet, dass die Bedingung erfolgreich ist, wenn eine der beiden Bedingungen erfüllt ist

und (und) bedeutet, dass nur dann, wenn zwei Bedingungen gleichzeitig erfüllt sind, die Beurteilungsbedingung erfolgreich ist.

Z.B:

java = 86
python = 68

if java > 80 and  python > 80:
    print('优秀')
else :
    print('不优秀')

if ( java >= 80  and java < 90 )  or ( python >= 80 and python < 90):
    print('良好')
    
输出结果:
不优秀
良好

Hinweis: Wenn mehrere Bedingungen vorliegen, können Sie die Reihenfolge der Beurteilung in Klammern unterscheiden. Die Beurteilungen in Klammern werden zuerst ausgeführt. Außerdem ist die Priorität von und und oder niedriger als die Beurteilungssymbole wie> (größer als). , <(kleiner als), dh größer als und kleiner als, wenn keine Klammern vorhanden sind, wird zuerst beurteilt als und oder.

wenn verschachtelt

Was bedeutet Verschachteln?

Genau wie die wörtliche Bedeutung bedeutet dies, dass if-Anweisungen in if-Anweisungen verschachtelt werden können.

Zum Beispiel kann das oben erwähnte Beispiel auch mit wenn verschachtelt geschrieben werden.

Beispiel:

a = 81
b = 20

if a > 80:
    if b > 90:
        print('优秀')
    else:
        print('及格')
else:
    print('差')

输出结果:
及格

Dies soll natürlich nur veranschaulichen, ob bedingte Anweisungen verschachtelt werden können. Wenn dies erforderlich ist, wird die Verwendung beim Verschachteln auf diese Weise nicht empfohlen, da die Codemenge zu groß und die Verschachtelung zu groß ist und das Lesen des Codes nicht bequem ist.

Standardmäßig wird es von oben nach unten ausgeführt, und der gesamte Scan wird zuerst ausgeführt, und es wird ausgeführt, wenn kein Syntaxfehler vorliegt.

Codebeispiel:

a=int(input('请输入您的身高(cm):'))
if a>=179:
    print('男神身高')
elif a == 178:
	print('标准身高')
elif 160 < a < 178:
	print('中等身高')
else:
	print('身高不可说')

运行示例:
请输入您的身高(cm)181
男神身高

Trinokularoperation (syntaktischer Zucker)

Syntaktischer Zucker: Zuckerbeschichtete Grammatik Der britische Informatiker Peter John Landa kann im Allgemeinen die Lesbarkeit des Programms verbessern, wodurch die Wahrscheinlichkeit von Programmcodefehlern verringert wird.

Syntaxformat: 值1 if 判断语句 else 值2
(Erläuterung: Die Anweisung enthält den Ausführungswert 1 enthält nicht den Ausführungswert 2)

a = 4
if a > 5:
    print(True)
else:
    print(False)
    
# 三目运算符 
print(True) if a>5 else print(False)
b = True if a > 5 else False

执行结果:
False
False

# 糖->节省代码格式
# 装饰器

Schleifenanweisung

Allgemeine Programmiersprachen haben Schleifenanweisungen. Warum?
Dann fragen Sie sich, was machen wir mit dem Programm?
Es muss sein, unsere Arbeit zu erleichtern und unsere Arbeitseffizienz zu optimieren. Computer unterscheiden sich von Menschen. Computer haben weder Angst vor Schwierigkeiten noch sind sie müde, noch müssen sie sich ausruhen. Sie können es die ganze Zeit tun. Sie müssen wissen, dass Computer sich am besten wiederholen können. Zu diesem Zeitpunkt müssen wir also Schleifenanweisungen verwenden. Mit Schleifenanweisungen können wir eine Anweisung oder Anweisungsgruppe mehrmals ausführen.

Python bietet Schleife und while-Schleife.
Hier gibt es ein weiteres Problem: Was soll ich tun, wenn ich möchte, dass es nach hundertmaligem Ausführen aufhört?
Zu diesem Zeitpunkt müssen Sie einige Anweisungen verwenden, um die Schleife zu steuern:

Schleifensteuerungsanweisung Beschreibung
Unterbrechung Beenden Sie die Schleife und springen Sie aus der gesamten Schleife heraus
fortsetzen Beenden Sie die aktuelle Schleife, springen Sie aus dieser Schleife heraus und führen Sie die nächste Schleife aus
bestehen pass ist eine leere Anweisung, um die Integrität der Programmstruktur aufrechtzuerhalten

Diese Steueranweisungen dienen dazu, dem Programm mitzuteilen, wann die Schleife gestoppt und wann nicht ausgeführt werden soll.

while-Schleife

Die Funktion der while-Schleife ist dieselbe wie die der for-Schleife.

Schauen wir uns zunächst an, wie die While-Schleifenanweisung aussieht.

# 计算1-100 的和。高斯求和
count = 1
sum1 = 0
while count<=100:
    sum1 = sum1+ count
    count = count + 1
print(sum1)

执行结果:
5050

while-Schleife verschachtelte Syntax

while expression:
   while expression:
      statement(s)
   statement(s)

Manchmal möchten wir nur die Summe der ungeraden Zahlen zwischen 1 und 100 zählen. Das heißt, wenn die Anzahl gerade ist, dh gerade, müssen wir aus der aktuellen Schleife herausspringen und möchten sie nicht hinzufügen. Zu diesem Zeitpunkt können wir break verwenden.

count = 1
sum = 0
while (count <= 100):
    if ( count % 2 == 0):  # 双数时跳过输出
        count = count + 1
        continue
    sum = sum + count
    count = count + 1
print(sum)

执行结果:
2500

für Iterationsschleife

Grundlegendes Syntaxformat:

for iterating_var in sequence:
   statements(s)
#sequence:可迭代对象

Dann können wir ein Beispiel schreiben, um es nach diesem grundlegenden grammatikalischen Format zu testen:

for i in 'hello':
    print(i)

执行结果:
h
e
l
l
o

Aus den Druckergebnissen wird helloein gedrucktes Zeichen gezogen.

Was ist, wenn wir die Zeichenfolge in ein Wörterbuch ändern?

dict1 = {
    
    'name':'李四','age':'18','from':'福建'}
for i in dict1:# i 是key
    print(i+':',dict1[i])

执行结果:
name: 李四
age: 18
from: 福建

zum Durchlaufen der Liste zur Doppelelementinstanz:

#取列表值——遍历列表
#双元素
l = [(1, 2), (3, 4), (5, 6)]
for x, y in l:
    print(x, y)

l = [(1, 2), (3, 4), (5, 6)]
for x, y in enumerate(l):
    print(x, y)

执行结果:
1 2
3 4
5 6
0 (1, 2)
1 (3, 4)
2 (5, 6)

für verschachtelte Schleifensyntax

Beispiele:

for num in range(10,15):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 是一个合数' % num)
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print ('%d 是一个质数' % num)

执行结果:
10 是一个合数
11 是一个质数
12 是一个合数
13 是一个质数
14 是一个合数

Natürlich wird dort auch die for … elseAussage verwendet.

Tatsächlich unterscheiden sich die Anweisungen in der for-Schleife nicht von normalen Anweisungen. Die Anweisungen in der else-Schleife werden ausgeführt, nachdem die Schleife normal ausgeführt wurde (dh die Anweisungen in der else-Schleife werden nicht ausgeführt, wenn die for-Schleife beendet wird Unterbrechung).

Natürlich for … elsewird es das geben while … else. Sie alle bedeuten dasselbe.

range () Funktion

Die Schleife oder wird häufig in Verbindung mit der Funktion range () verwendet.

Wenn Sie die range () - Funktion nicht kennen, können wir sie direkt über ein Programm verstehen.

for i in range(3):
    print(i)

执行结果:
0
1
2

Mit der Funktion range (x) können Sie eine Folge von Ganzzahlen von 0 bis x-1 generieren.

Wenn es sich um range(a,b)eine Funktion handelt, können Sie eine Folge von Ganzzahlen generieren, die links und rechts geschlossen sind.

In dem Beispiel, in dem range(3)es geschrieben werden kann range(0,3), ist das Ergebnis dasselbe.

Tatsächlich verwenden wir die Funktion range (), um einen Code n-mal wiederholt auszuführen.

Hier ist eine Frage: Sie beobachten sorgfältig die Funktion range (). Was sind die gemeinsamen Merkmale der oben genannten Ein-Parameter- oder Zwei-Parameter-Funktionen?

Ich weiß nicht, ob Sie herausgefunden haben, dass es jedes Mal um 1 erhöht wird.

range(3) Das heißt, 0, 1, 2 und jedes Mal um 1 erhöhen.

range(3,6) Das heißt, 3, 4 und 5 werden jedes Mal um 1 erhöht.

Kann es nicht jedes Mal um 1 erhöht werden?

Zum Beispiel möchte ich um 2 erhöhen?

Bei der Vorbereitung des Programms werden Sie auf jeden Fall auf eine solche Nachfrage stoßen. Und seit der Entwicklung von Python wird die Range-Funktion sicherlich diese Art von Funktion haben.

Die Bereichsfunktion hat also auch drei Parameter.

Zum Beispiel range(0,10,2)bedeutet dies: Zählen von 0 bis 10 (ohne 10) mit einem Intervall von jeweils 2.

Der Unterschied zwischen for-Schleife und while-Schleife

Wie bereits erwähnt, müssen nicht zwei Grammatiken verwendet werden, wenn eine Grammatik eine Funktion ausdrücken kann.

Da es sich bei beiden um Schleifen handelt, müssen Unterschiede zwischen for-Schleifen und while-Schleifen bestehen.

Wann verwenden Sie for-Loops und while-Loops?

  • Die for-Schleife wird hauptsächlich verwendet, wenn über ein iterierbares Objekt iteriert wird.
  • Die while-Schleife wird hauptsächlich bei wiederholter Ausführung verwendet, die bestimmte Bedingungen erfüllen muss, um wahr zu sein. (Endlosschleife + Unterbrechungsausgang usw.)
  • In einigen Fällen können for-Schleifen und while-Schleifen austauschbar verwendet werden.

Beispiele für for und while können austauschbar verwendet werden:

for i in range(0, 10):
    print(i)


i = 0
while i < 10:
    print(i)
    i = i + 1

Fallstudie

1. Drucken Sie die Neun-Neun-Multiplikationstabelle

# 打印九九乘法表
for i in range(1, 10):
        for j in range(1, i+1):
            # 打印语句中,大括号及其里面的字符 (称作格式化字段) 将会被 .format() 中的参数替换,注意有个点的
            print('{}x{}={}\t'.format(i, j, i*j), end='')  
        print() #这里有换行的意思

Ergebnisse der:

1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81	

2. Bestimmen Sie, ob es sich um ein Schaltjahr handelt

# 判断是否是闰年
year = int(input("请输入一个年份: "))
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
    print('{0} 是闰年' .format(year))
else:
     print('{0} 不是闰年' .format(year))

Ergebnisse des Ausführungsbeispiels:

请输入一个年份: 2020
2020 是闰年

Ich denke du magst

Origin blog.csdn.net/qq_46485161/article/details/115269418
Empfohlen
Rangfolge