Python中while语句的一般形式:
while 判断条件:
语句
同样需要注意冒号和缩进,另外在Python中没有do…while循环
下面的实例计算1到100总和
##calc.py n = 100sum = 0 counter = 1 while counter <= n:sum = sum + countercounter += 1print("total from 1 to 100 : %d",sum)
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3.5 calc.py
total from 1 to 100 : %d 5050
while循环中使用else语句
在while…else在条件语句为false时执行els语句块
#while.py count = 0 while count < 5:print(count," < 5")count = count + 1 else :print(count ," >= 5")
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3.5 while.py
0 < 5
1 < 5
2 < 5
3 < 5
4 < 5
5 >= 5
for循环:
Python for循环可以遍历任何序列的项目,如一个列表或一个字符串
for循环的 一般格式如下
for <variable> in <sequence>:<statement> else:<statement>
实例:
break语句用于跳出当前循环体:
##break.py sites = ["Baidu","Google","Runoob","Taobao"] for site in sites:if site == "Runoob":print("cainiao!")breakprint("loop data " + site) else:print("Having no loop data!") print("loop end!")
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3.5 break.py
loop data Baidu
loop data Google
cainiao!
loop end!
range()函数
如果你需要遍历数字序列,可以使用内置的range()函数,它会生成数列,例如:
也可以使range以指定数字开始并指定不同的增量,(甚至可以是负数,有时这也叫步长)
负数:
也可以结合range()和len()函数以遍历一个序列的索引:
还可以使用range()函数来创建一个列表:
break和continue语句及循环中的else子句
break语句可以跳出for和while循环体,如果你从for或while循环终止,任何对应的循环else块将不执行:
#else.py for letter in 'Runoob':if letter == 'b':break;print('the current letter : ',letter)print("the next example")var = 10 while var > 0:print('the current variable : ',var)var = var - 1if var == 5:break; print("GOOF bye!")
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3 else.py
the current letter : R
the current letter : u
the current letter : n
the current letter : o
the current letter : o
the next example
the current variable : 10
the current variable : 9
the current variable : 8
the current variable : 7
the current variable : 6
GOOF bye!
continue语句被用来Python跳出当前循环块的剩余语句,然后继续下一轮循环。
循环语句可以有else子句,它在穷尽列表(for循环)或条件变为false(以while循环)导致循环终止时被执行,但循环被break终止时不执行。
下列是查询质数的循环例子:
##prime.py for n in range(2,10):for x in range(2,n):if n % x == 0:print(n," == ",x, '*', n//x )breakelse:print(n," is prime")
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3 prime.py
2 is prime
3 is prime
4 == 2 * 2
5 is prime
6 == 2 * 3
7 is prime
8 == 2 * 4
9 == 3 * 3
pass语句
Python pass是空语句,是为了保持程序结构的完整性。
pass不做任何事情,一般用作占位语句:
#pass.py for letter in 'Runoob':if letter == 'o':passprint('execute pass block')print('the current letter : ',letter)print("Good bye!")
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3 pass.py
the current letter : R
the current letter : u
the current letter : n
execute pass block
the current letter : o
execute pass block
the current letter : o
the current letter : b
Good bye!
pass只是为了防止语法的错误
pass就是一条空语句,在代码段中或定义函数时,如果没有内容,或者就先不做任何处理,直接跳过,就可以先使用pass
十进制转换:
#translate.py while True:number = input('please input a integer(enter Q exit ):')if number in ['q','Q']:breakelif not number.isdigit():print("input error,please continue input : ")continueelse:number = int(number)print("decimal --> hexadecimal: %d -> 0x%x"%(number,number))print("decimal --> octonary: %d -> 0x%o"%(number,number))print("decimal --> binary: %d -> "%number,bin(number))
运行结果:
robot@ubuntu:~/wangqinghe/python/20190826$ python3 translate.py
please input a integer(enter Q exit ):9
decimal --> hexadecimal: 9 -> 0x9
decimal --> octonary: 9 -> 0x11
decimal --> binary: 9 -> 0b1001
please input a integer(enter Q exit ):18
decimal --> hexadecimal: 18 -> 0x12
decimal --> octonary: 18 -> 0x22
decimal --> binary: 18 -> 0b10010
please input a integer(enter Q exit ):q