循环语句
While语句的使用
循环就是让一件事情重复做多次,python里的循环分为while和for循环,
python不支持do......while循环
python里没有自增自减运算符
while循环的基本使用,
while判断条件:条件成立时执行代码
x = 0
while x < 2:
print('Hello World')
x = x+1
# result:
Hello World
Hello World
while循环练习题
求1~100的所有整数之和
i = 0
result = 0 # 定义一个变量用来保存所有数字之和
while i < 100:
i += 1
result += i
print(result)
# result: 5050
for......in循环
python里的for循环指的是for......in 循环。和C语言里的for不一样
range内置类用来生成指定区间的整数序列
注意:
in的后面必须是一个可迭代对象,目前接触的可迭代对象:字符串、列表、元组、字典、集合、range
for i in range(1,11):
print(i)
# result:
1
2
3
4
5
6
7
8
9
10
break和continue关键字的使用
break和continue在python里只能用在循环语句里
break:用来结束整个循环
i = 0
while i < 5:
if i==3:
i+=1
break
print(i)
i += 1
# result:
0
1
2
当i等于3时,break会结束整个循环,所以3以后的数字不会输出
continue:用来结束本轮循环,开启下一轮循环
i = 0
while i < 5:
if i==3:
i+=1
continue
print(i)
i += 1
# result:
0
1
2
4
当i等于3时continue结束本轮循环开启下一轮循环,所以3不会输出
练习题
- 不断询问用户,我爱你,你爱我吗?只要回答不是爱,就一直问,知道答案是爱
answer=input('我爱你,你爱我吗?')
while answer !='爱':
answer=input('我爱你,你爱我吗?')
# result:
我爱你,你爱我吗?滚
我爱你,你爱我吗?不爱
我爱你,你爱我吗?爱过
我爱你,你爱我吗?爱
-
不断的让用户输入用户名和密码,只要用户名不是zhangsan密码不是123,就一直让用户输入
while True: userName=input('请输入用户名:') passWord=input('请输入密码:') if userName=='zhangsan' and passWord == '123': break # result: 请输入用户名:lisi 请输入密码:123 请输入用户名:zhangsan 请输入密码:111 请输入用户名:wangwu 请输入密码:145 请输入用户名:zhangsan 请输入密码:123
嵌套循环
打印三角形
python里可以使用一层循环直接打印三角形
i = 0
while i < 5:
i += 1
print('*'*i)
# result:
*
**
***
****
*****
打印矩形
# 外循环用来控制行数,内循环用来控制每一行的列数
# 这一大段代码,是用来打印五行五列星星的
i = 0
while i < 5:
i += 1
# 本段代码是打印五个星星并且换行
j=0
while j<5:
j+=1
print('*',end=' ') # 打印一个星星,不换行
print() # 用来换行
# result:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
打印九九乘法表
i = 0
while i < 9:
i += 1
j = 0
while j < i:
j += 1
print(j, '*', i, '=', j*i, sep='', end='\t')
print()
# result:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

浙公网安备 33010602011771号