Python中while语句的一般形式:
while 判断条件:
语句
同样需要注意冒号和缩进,另外在Python中没有do…while循环
下面的实例计算1到100总和
##calc.py n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("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!") break print("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 - 1 if 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 ) break else: 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': pass print('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']: break elif not number.isdigit(): print("input error,please continue input : ") continue else: 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