Lernaufzeichnungen von Python-Basisschleifen

高洛峰
Freigeben: 2017-03-21 09:46:27
Original
1693 Leute haben es durchsucht

1. while-Schleife

Wenn die Bedingung wahr ist, wiederholen Sie den gleichen Vorgang. Wenn die Bedingung nicht erfüllt ist, springen Sie aus der Schleife

 while-Schleifenbedingung:

 Schleifenoperation

(1) while-Schleifenbeispiel

Beispiel: Geben Sie die Testergebnisse von Wang Xiaomings 5 ​​Kursen ein und berechnen Sie die durchschnittliche Punktzahl

i=1                                            # 初始化循环计数器i
sum=0                                          # 初始化总成绩变量
while i<=5:                                    # 从i为1开始到5,重复执行一共5次接受考试成绩、求和的操作
        print (&#39;请输入第%d门课程的考试成绩&#39;%i)    # 提示用户输入成绩,其中用到了格式化输出,%d的取值随i的值显示,第1门课程,第2门课程……
        sum=sum+input()                        # 把用户输入的成绩赋值给sum,最后保存着5次成绩的和
        i=i+1                                  # 每次循环 i 都自增1,直到大于5跳出循环
avg=sum/(i-1)                                  # 当第五次执行完i=i+1时,i为6,跳出循环,计算出sum/(i-1)的值就是平均值,并赋值给avg
print (&#39;王晓明5门课程的平均成绩是%d&#39;%avg)          # 格式化输出avg的值,由于用了%d所以计算出的%avg的数值有小数也会省去,接收整数部分
Nach dem Login kopieren

(2) Einbettungsbeispiel einer while-Schleife

Nachdem die äußere Schleife die Bedingungen erfüllt, beginnt der Ausführungscode mit der Ausführung der inneren Schleife, wenn alle inneren Schleifen ausgeführt werden Wenn die Bedingungen weiterhin erfüllt sind, wird die äußere Schleife erneut ausgeführt usw., bis die äußere Schleife übersprungen wird.

Beispiel: Geben Sie die Noten von jeweils 5 Fächern von zwei Schülern ein und berechnen Sie jeweils die durchschnittliche Punktzahl

j=1                                         # 定义外部循环计数器初始值
prompt=&#39;请输入学生姓名&#39;                       # 定义字符串变量,在用户输入时调用此变量可以减少敲汉字的麻烦
while j<=2:                                 # 定义外部循环为执行两次
    sum=0                                   # 定义成绩初始值,之所以定义在这里,是为了当第二个学生输入成绩时可以让sum初始化为0,重新接收新学生的成绩和
    i=1                                     # 定义内部循环计数器初始值
    name = raw_input(prompt)               # 接收用户输入的学生姓名,赋值给name变量
    while i<=5:                             # 定义内部函数循环5次,就是接收5门课程的成绩
        print (&#39;请输入第%d门的考试成绩: &#39;%i)   #提示用户输入成绩,其中用到了格式化输出,%d的取值随i的值显示,第1门课程,第2门课程……
        sum= sum + input()                  # 接收用户输入的成绩,赋值给sum
        i+=1                                # i变量自增1,i变为2,继续执行循环,直到i等于6时,跳出循环
    avg=sum/(i-1)                           # 计算第一个学生的平均成绩 sum/(6-1),赋值给avg
    print name,&#39;的平均成绩是%d\n&#39;%avg         # 输出学生成绩平均值
    j=j+1                                   # 内部循环执行完毕后,外部循环计数器j自增1,变为2,再进行外部循环
print &#39;学生成绩输入完成!&#39;                     # 外部循环结束,提示输入完成!
Nach dem Login kopieren

2. for-Schleife

(1) Verwenden Sie die for-Anweisung , um alle Elemente zu durchlaufen, z. B. um Zeichen in einer Zeichenfolge einzeln auszugeben, Elemente in einer Liste, Elemente in einem Tupel und Elemente in einer Menge einzeln auszugeben (Bezahlung Achten Sie beim Zuweisen von Werten auf die Reihenfolge der einzelnen Elemente), Schlüssel im Wörterbuch...

for letter in &#39;Python&#39;:
  print letter结果:P
y
t
h
o
n
Nach dem Login kopieren
fruits=[&#39;西瓜&#39;,&#39;水蜜桃&#39;,&#39;葡萄&#39;]
for fruit in fruits:
    print fruit

结果:
西瓜
水蜜桃
葡萄
Nach dem Login kopieren

(2) Wiederholen Sie den gleichen Vorgang

Verwenden Sie den Bereich ()-Funktion zum Erstellen einer Liste von Zahlen

Wertebereich: von der Startzahl bis vor der Endzahl

for i in range(0,5):  #依次把0到4保存在变量i中
    print &#39;Mr.Mangood最酷!&#39;

结果:
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!
Mr.Mangood最酷!
Nach dem Login kopieren

Geben Sie die drei Testergebnisse von Wang Xiaoming ein und berechnen Sie den Durchschnittswert

subjects=(&#39;linux系统&#39;,&#39;Mysql数据库&#39;,&#39;Python语言&#39;)  # 定义一个元组,三个元素代表三门课程
sum=0                                            # 定义变量num为初始化成绩分数
for i in subjects:                               # 把元组里的每一个元素依次赋值给i,一共有三次
    print &#39;请输入%s的考试成绩&#39;%i                   # 提示输入成绩,运用了格式化字符串功能,用i每次取得的元素名表达出成绩名字,%s的意思是字符串
    score = input()                              # 接收用户输入的成绩赋值给score
    sum += score                                 # 把成绩赋给sum,相当于sum = sum + score
avg= sum / len(subjects)                         # 跳出for循环后,计算平均值,这里用函数len()来计算变量subjects的长度,因为subjects定义为一个元组,因此长度即为元素个数3
print &#39;王晓明的平均成绩为%d&#39;%avg                    # 输出平均成绩

结果:
请输入linux系统的考试成绩
87
请输入Mysql数据库的考试成绩
78
请输入Python语言的考试成绩
90
王晓明的平均成绩为85
Nach dem Login kopieren

(3) Einbetten Legen Sie eine for-Schleife fest

Geben Sie die Testergebnisse der beiden Studenten Huang Xiaoming und Yang Ying aus jeweils drei Kursen ein und berechnen Sie die durchschnittliche Punktzahl

student = (23&#39;黄晓鸣&#39;,&#39;杨影&#39;)                      #定义学生姓名的元组
subjects=(&#39;linux系统&#39;,&#39;Mysql数据库&#39;,&#39;Python语言&#39;)  #定义课程名字的元组
for j in student:                                #把j依次取两名学生的值进行两次循环
    sum=0                                        #初始化成绩的值
    print &#39;%s同学的考试成绩&#39;%j                     #打印出标题
    for i in subjects:                           #定义课程循环
        print &#39;请输入%s的考试成绩&#39;%i               #提示输入其中一名学生的考试成绩
        score = input()                          #接收考试成绩赋值给score
        if score<0 or score>100:                 #判断分数取值范围,做提醒
            print &#39;注意成绩大小&#39;    
        sum+=score                               #每次输入成绩后,sum值都累加
    avg= sum/len(subjects)                       #求出平均成绩
    print j,&#39;的平均成绩是%d\n&#39;%avg                 #打印平均成绩
print&#39;完成学生成绩录入工作&#39;                         #提示完成工作
Nach dem Login kopieren

3. Schleifensteuerung

SchleifeSteueranweisungkann die normale Ausführungsreihenfolge der Schleife ändern

Schleifensteuerungsanweisung

breakAnweisung: Aus dieser Schleife springen (Nur eine Schleifenebene springt aus der verschachtelten Schleife)

continueAnweisung: Die verbleibenden Anweisungen überspringen Testen Sie den Schleifenstatus des aktuellen Schleifenkörpers erneut und geben Sie die nächste Rundenschleife ein. Die Anzahl der Schleifen beträgt beispielsweise insgesamt 5 Mal. Wenn zum vierten Mal eine Fortsetzung auftritt, wird die Ausführung ausgeführt nicht fortfahren und die fünfte Schleifenbeurteilung wird direkt durchgeführt

4. Schleifensteuerung

Umfassender Fall

1. Anforderungsanalyse

Menü anzeigen

(N)neue Benutzeranmeldung

(E)Eingabe der Benutzeranmeldung

(Q)uit

Auswahl eingeben:

Hinweis: Geben Sie den Buchstaben N ein, um neue zu erhalten. Der Anmeldename und das Passwort werden im Wörterbuch gespeichert

Geben Sie den Buchstaben E ein Erhalten Sie den Anmeldenamen und das Passwort, suchen Sie und vergleichen Sie, ob die Benutzereingabe korrekt ist

Geben Sie zum Beenden den Buchstaben Q ein

2 , Ausführungsschritte

(1) Menü vorbereiten

(2) Verwenden Sie die while-Anweisung, um das Menü zu implementieren.

Einzelauswahl -Äußere Schleife

(3) Verwenden Sie die while-Anweisung, um den neuen Anmeldenamen zu erhalten – innere Schleife

(4) Verwenden Sie die if-Anweisung, um das Menü zu beurteilen und zugehörige Vorgänge auszuführen

3. Code

Architektur Abbildung

Lernaufzeichnungen von Python-Basisschleifen

4. Spezifischer Code

db={}           
prompt=&#39;&#39;&#39;         
    (N)ew user login
    (E)ntering user login
    (Q)uit
Enter choice:&#39;&#39;&#39;
while True:         
    choice = raw_input(prompt).strip()[0].lower()       #读取控制台输入的字符串,去除其首尾多余的空格后,将第一个字符串转换为小写字母
    print &#39;\n--You picked:[%s]&#39;%choice      
    if choice not in &#39;neq&#39;:
        print &#39;--invaild option:,try again--&#39;
    else:
        if choice == &#39;n&#39;:
            prompt1 = &#39;--login desired:&#39;
            while True:
                name = raw_input(prompt1)
                if db.has_key(name):            #判断字典里的键值是否已经有输入的name值,如果有的话触发continue重新执行while循环,因为触发continue前prompt1被重新定义了,所以执行了新的name = raw_input(prompt1)
                    prompt1 = &#39;--name taken,try another: &#39;
                    continue
                else:
                    break
            pwd = raw_input(&#39;password:&#39;)    #验证字典中的键没有输入的name值后,跳出循环,把用户输入的密码赋值给pwd
            db[name] = pwd      #把值传给字典db中的name键实现字典数据的完善
        elif choice == &#39;e&#39;:
            name = raw_input("login:")
            pwd = raw_input(&#39;password:&#39;)
            password = db.get(name)     #登录时,接收用户输入的登录名和密码后,把字典db中name键的值赋给password
            if password == pwd:     #比较字典中的密码password和用户输入的密码pwd是否一致
                print &#39;welcome&#39;,name
            else:
                print &#39;shibai&#39;
        else:
            print &#39;quit!&#39;
            break
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonLernaufzeichnungen von Python-Basisschleifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!