1. 程式人生 > >2018.1.16學習python第三天01【迴圈while、for】

2018.1.16學習python第三天01【迴圈while、for】

while迴圈:

#while 條件:
    #執行語句;
#當 條件 成立,重複/迴圈執行迴圈體內的 執行語句。
# 1.輸出1-100的偶數和
n=1;sum=0;jishu=0;
while n<=100:#當n《=100時,重複執行下列語句。
    if n%2==0:
        sum+=n;
    else:
        jishu+=n;
    n+=1;#迭代部分;需要讓‘n’每執行一次就+1,使n最後大於100,若n的值不變化則整個迴圈將變為死迴圈
# 2.請使用者輸入數字,求和,直到輸出0退出。
num=10;sum=0;
while num>0:
    sum+=num;
    num-=1;
print(" 1-10 和:{}".format(sum))
小練習:用到迴圈語句、取餘、比較運算子、格式化輸出、分支語句。
小練習:在1-100中
1、遇到3 和 5的倍數輸出:當前值+是3 和 5的倍數
2、遇到5的倍數輸出:當前值+是五的倍數   。
3、遇到3的倍數輸出:當前值+是3的倍數 

while else:當本次迴圈正常結束後便會執行else裡面的語句;當while後面的表示式結果為False時執行else裡面的語句。

i=0;
while i<10:
    print('i小於10,i=',i);
    i+=1;
else:
    print('結束迴圈;i等於10');

for迴圈:可以遍歷任何序列的專案,如一個列表或者一個字串

#for迴圈的一般格式如下:
for <variable> in <sequence>:
    <statements>
else:
    <statements>
languages = ["C", "C++", "Perl", "Python"] 
for x in languages:
    print (x)
#執行結果:
C
C++
Perl
Python
在for/while迴圈的 執行語句 中插入 break可以結束迴圈。
for letter in 'Runoob':     # for迴圈例子
   if letter == 'b':
      break
   print ('當前字母為 :', letter)
var = 10                    # while迴圈例子
while var > 0:              
   print ('當期變數值為 :', var)
   var = var -1
   if var == 5:
      break
print ("Good bye!")

在for/while迴圈的 執行語句 中插入 continue 可以結束本次迴圈,進入下一輪迴圈。

for letter in 'Runoob':     # for迴圈例子
   if letter == 'o':        # 字母為 o 時跳過輸出
      continue
   print ('當前字母 :', letter)
 
var = 10                    # while迴圈例子
while var > 0:              
   var = var -1
   if var == 5:             # 變數為 5 時跳過輸出
      continue
   print ('當前變數值 :', var)
print ("Good bye!")

range():此函式會生成有序數列;range(5);生成有序五位數列,從0開始。[0,1,2,3,4];

for i in range(5):#一個有序數列,包含五個數,從0開始。
    print(i)
range()函式 也可以指定區間
for i in range(5,9):#從5開始,到9結束,但不包含9。
    print(i);
#生成的有序數列從5開始,到9結束,但不包含9.
range()函式 也可以使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做'步長'):
for i in range(0, 10, 3):#從0開始,到10結束,但不包含10;有序數列中 前一個數+3生成後一個數。
    print(i);#第三個引數為負數會倒敘排列數列。

range()可以結合len()函式以遍歷一個序列的索引,如下所示:

a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'];
for i in range(len(a)):
    print(i, a[i]);
可以使用range()函式來建立一個列表:
list(range(5));#list()函式是建立一個列表,range()函式往列表裡新增5個數字。
例子:迴圈巢狀:for迴圈裡再巢狀一個for迴圈;for迴圈裡再巢狀一個while迴圈。
for i in range(5):
    for j in range(5):
        print("*",end="");#,end=""是使輸出結果不自動換行,print()函式有自動換行特性。
    print();#輸出五行五列‘*’。
for i in range(5):
     n=0;
     while n<5:
        print("*",end="")
        n+=1;
     print();#輸出五行五列‘*’
例子:輸出直角三角形(輸出結果是用'*'拼成直角三角城):
for n in range(1,6):
    for j in range(n):
        print("*",end="")
    print();
小練習:

1、用for迴圈輸出九九乘法表:使用到迴圈巢狀、加減乘除、格式化輸出。

2、用for迴圈輸出一個用"*"拼成的等腰三角形;
3、用while迴圈。請使用者輸入成績統計各區間的人數,超出0 - 100重新輸入正確詢問是否繼續:使用到分支語句、輸入函式、比較運算子。

4、用for迴圈統計3個班級 中每個班級3個學生的成績: 大於80的人數幾個:用到迴圈巢狀、分支語句、continue、比較運算子。