Python学习总结【连载】(四)
2018.06.15 Juttachen
概述
+ 14 break
- 概念与使用
- 用while和break实现用户输入程序
+ 15 continue
- 概念与使用
+ 16 else
+ 17 多重循环
- 格式与执行过程
十四、break
1. 概念与使用
break是一个让循环提前结束的关键字,如果在for循环或者while循环中遇到了break,那么循环就在break的位置直接结束。结束后程序执行循环后面的代码。
练习:找到1000-9999中的第一个能够被13整除的数(打印)
for x in range(1000,10000):
print(x)
if x % 13 == 0:
print(x)
break
print('循环结束后')
练习:打印1到49
for x in range(1,100):
if x == 50:
break #在这个地方结束循环,直接跳出循环执行后面的语句
print(x) #1,2 ,3...49
大练习
判断101-200之间有多少个素数,并输出所有素数。
# 第一个循环将 101-200中的所有的数取出来。
num = 0
for x in range(101,201):
# x = (101~200),拿到x后,判断2~x-1中有没有一个数可以被x整除。如果2~x-1中没有一个能被x整除
# 就说明x是素数,只要有一个被x整除,x就不是素数。
count = 0 #统计2~x-1中能够被x整除的数的个数
for y in range(2,x):
if x % y == 0:
# 说明不是素数
print(x,'不是素数')
count += 1
break
if count == 0:
print(x,'是素数')
num += 1
print(num)
2. 用while和break实现用户输入程序
用while循环实现:不断的让用户去输入数字,直到用户输入的数字为0为止。最后在打印之前输入的数的和。
注意:input函数:程序执行到input函数的时候,程序就会停下来,等待用户从键盘输入并且以回车结束,然后才会往下执行。
sum1 = 0
while True: # 如果不知道用户会输入多少次,就把循环定为死循环,这样才能做到用户一直输入。
num = int(input(">>>")) #获取键盘输入的内容,并且转换成int类型
sum1 += num #将当前输入的数字加起来
if num == 0: #判断输入的数字是否是0,如果是就让循环结束
break
print(num)
print(sum1)
注意:break只能写在循环中
例子:
猜数字:随机生成一个整数,用户输入数字。如果用户输入的数字大于这个随机数就提示:“大了”,如果用户输入的数小于随机数就提示“小”了。知道用户输入的数和随机数的大小一样,游戏就结束。
产生随机数:random模块是python内置的用来生成随机数的模块,里面提供了很多产生随机数的函数
randint(m,n):产生一个m到n的随机整数
import random
num = random.randint(0,100) #产生一个1~100的随机数
count = 0
while True:
num1 = int(input(">>>"))
if num1 > num:
print("大了")
count += 1
elif num1 < num:
print("小了")
count += 1
else:
break
print(count)
for循环和while循环的选择:
for循环的特点:次数有限且确定,可以在序列中取数据。
while循环的特点:很灵活,可以解决循环次数不确定的。
十五、continue
- 概念与使用
continue: 结束当次循环,进入下次循环。
例子
for x in range(1,10):
print("=")
continue #遇到continue就不再执行循环体后面的内容,直接进入下一次循环的判断
print(x)
求1~100中所有奇数的和
sum1 = 0
for x in range(1,101):
if x % 2 == 0:
continue
sum1 += x
打印100到999中除了十位为三的数
for x in range(100,1000):
if x // 10 % 10 == 3:
continue
print(x)
统计输入的数字中,偶数的个数。如果输入0,就结束。
sum1 = 0
while True:
# 输入数据
inputValue = int(input('>>>'))
# 判断是否是奇数
if inputValue % 2 != 0:
continue
elif inputValue == 0:
break
# 偶数个数相加
sum1 += 1
print(sum1)
十六、else
python中循环语句后面可以加else语句。这个else语句会在循环结束后执行。
for 变量 in 序列:
循环体
else:
循环结束后会执行的语句块
例子:1乘到10
sum1 = 1
for x in range(1,11):
sum1 *= x
print(x)
else:
print(sum1)
注意:如果在循环中使用break,那么else预计不会执行!
例子:一到十相乘,当乘积大于一万就不再继续乘
sum1 = 1
for x in range(1,11):
#!!!在给sum1赋值前先判断乘的结果是否大于10000
if sum1 * x > 10000:
break
#只有在乘积不大于10000的时候才去乘积去赋值
sum1 *= x
else: #循环中如果执行了break(continue不会有这个问题),这个时候else是不会执行的
print(sum1)
十七、 多重循环
1.格式与执行过程
在循环体里面可以其他的循环语句.
格式:
for 变量 in 序列:
for 变量1 in 序列2:
循环体2
其他的循环语句
for 变量 in 序列:
其他的循环语句
while 条件语句:
循环体2
其他的循环语句2
while 条件语句1:
其他的循环语句
while条件语句2:
循环体2
其他的循环语句2
例子:
如果 n=5,打印:
1
1+2
1+2+3
1+2+3+4
1+2+3+4+5
#x控制是第几行
#y控制获取当前行里所有的数值
#外循环控制行数,内循环控制列数
n = 3
for x in range(1,n+1):
for y in range(1,x+1):
print(y,end ='')
print()