For…else 语句的使用 | 学习笔记

简介: 快速学习 For…else 语句的使用

开发者学堂课程【Python 入门 2020年版: For…else 语句的使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10275


For…else 语句的使用

for…else语句的使用

 

1.写一个程序可以不断的输入数字,如果输入的数字是 0,打印程序结束后结束该程序。
运行效果:
请输入数字: 9

请输入数字: 762

请输入数字: 18

请输入数字: 0

程序结束
i =1
while True:
if i == 0:
break
i = int(input(‘请输入数字:’))

print(‘程序结束’)

#写一个程序可以不断的输入内容,如果输入的内容是 exit,打印程序结束后结束该程序。

while True:

content = input(‘请输入内容:’)

if content == ‘exit’:

Break

运行结果:

请输入内容:hi

请输入内容:helo

请输入内容:hello

请输入内容:good morning

请输入内容:Happy Valentine’s Day

请输入内容:exit

Process finished with exit code 0

只要有 exit 就会推出。

挑战题(选做)

2. 统计 101-200 中素数的个数,并且输出所有的素数。(素数又叫质数, 就是只能被 1 和它本身整除的数)

101 到 200:

for i in range(101,201):

print(i)

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05-字符

101

102

(一直到)

200

Process finished with exit code 0

#素数也叫质数,除了1和它本身以外,不能再被其他的任何数整除

怎么看是质数:比如 103,就拿比它小的数取余,1 没有比较的意义,从 2 开始除到 102,i 现为具体的数,i=103 时,

for i in range(101,201): #i=103 2~102

for j in range(2,i): # range( 2,103 )不能取到 103

if i % j ==0: #i除以某一个数,除尽了,i 是合数

把 i=103 改成 i=105:

for i in range(101,201): #i=105 2~104

for j in range(2,i): # range(2,105) 从 2 取到 104

if i % j ==0: #i除以某一个数,除尽了,i 是合数

105 除以 2 除不进,除以 3 除得尽。除到 4 就除不尽了。所以用 break。

for i in range(101,201): #i=105 2~104

for j in range(2,i): # range(2,105) 从 2 取到 104

if i % j ==0: # i 除以某一个数,除尽了,i 是合数

print(i,’是合数’)

break #break 放在内循环里,用来结束内循环。

这里用来结束j的循环,发现 105 是合数就不在判断,就不执行了。就从 106,106从 2 开始除,除尽了就停止了。就从 107 开始,直到 107 能除进。

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05-字符

102 是合数

177 是合数
Process finished with exit code 0

求质数:

for i in range(101,201): # i=105 2~104

for j in range(2,i): # range(2,105) 从 2 取到 104

if i % j ==0: # i 除以某一个数,除尽了,i 是合数

#print(i,’是合数’)

break # break 放在内循环里,用来结束内循环。

else:

print(i,’是质数’)

上面代码是有问题的,运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05-字符

101是质数

105是质数

107是质数

Process finished with exit code 0

105 不是质数,是和数。因为 i=105 时,是从 j 是 2 开始除,105 不能被 2 整除,不满足 if 的条件,就直接打印 else,105 是质数,105 只是除以 2 没有除尽,并不是质数。

因为在除以 3 就是质数了。判断质数:把 else 往前缩进,把 for 和 else 对其,for…else 语句,当循环里的 break 没有被执行的时候,就会执行 else。

举例:假设 101 是质数,不断地除以 2,一直除到 100,都有余数,没有余数后才会进到代码里面来,所以就不会进入 break,就会走 else。102%2 的结果是 0,0==0,直接走 break。Break 走了,就不会走 else。

105%2 不等于 0,所以不会走 if i % j == 0:但 105%3 时,直接 break。

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05-字符

101 是质数
103 是质数
107 是质数
109 是质数
113 是质数
127 是质数
131 是质数
137 是质数
139 是质数
149 是质数
151 是质数

157 是质数

163 是质数
167 是质数

173 是质数

179 是质数

181 是质数

191 是质数

193 是质数

197 是质数

199 是质数

Process finished with exit code 0

验证:求 2 到 100 的合数(1 既不是质数,也不是合数;2 是质数)

for i in range(2,101): # i=105 2~104

for j in range(2,i): # range(2,105) 从 2 取到 104

if i % j ==0: #i除以某一个数,除尽了,i 是合数

#print(i,’是合数’)

break # break 放在内循环里,用来结束内循环。

else:

#for…else 语句,当循环里的 break 没有被执行的时候,就会执行 else。

print(i,’是质数’)

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05-字符

101是质数
2是质数
3是质数
5是质数

Process finished with exit code 0

验证:百度质数表。

开根号:

for i in range(101,201): #i=105 2~104

for j in range(2,i **0.5): #range(2,105) 从 2 取到 104

if i % j ==0: #i除以某一个数,除尽了,i是合数

#print (i,’是合数’)

break #break 放在内循环里,用来结束内循环。

else:

#for…else 语句,当循环里的 break 没有被执行的时候,就会执行 else。

print(i,’是质数’)

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exeC:/Users/chris/Desktop/PythoDa05-字符

Traceback (most recent call last):

File "C: /Users/chris/Desktop/Python 基础/Day05-字符串/01-代码/04-求素数.py", line 5, in <module>

for j in range(2, i ** 0.5): # range(2,105) 从 2 取到 104 2 3
TypeError: " float’object cannot be interpreted as an integer
Process finished with exit code 1

出现报错,因为 range 开始和结束都要是整数,将开方换为整数,

for i in range(101,201): #i=105 2~104

for j in range(2,int(i **0.5)): #range(2,105) 从 2 取到 104

if i % j ==0:#i除以某一个数,除尽了, i 是合数

#print(i,’是合数’)

break #break放在内循环里,用来结束内循环。

else:

#for…else 语句,当循环里的 break 没有被执行的时候,就会执行 else。

print(i,’是质数’)

运行结果:C:Users\ chris\ AppData\Local\Programs\Python\Python37\python.exeC:/Users/chris/Desktop/PythoDa05-字符

101 是质数
103 是质数
107 是质数
109 是质数
113 是质数
127 是质数
131 是质数
137 是质数
139 是质数
149 是质数
151 是质数

157 是质数

163 是质数
167 是质数

173 是质数

179 是质数

181 是质数

191 是质数

193 是质数

197 是质数

199 是质数

Process finished with exit code 0

从结果上看是一样的,但是少除很多。比如 101,它没有从 2 除到 100,而是从 2除到了 101 的平方。

答案:
for i in range(101, 201):

for j in range(2, i):

if i % j == 0:
break

else:
print(i)

相关文章
|
3月前
|
C++ 容器
c++语句详细介绍(一)
前言 这篇简单介绍一下c++语句,主要有简单语句、语句作用域、条件语句、迭代语句以及异常处理机制
40 0
|
6月前
try - except 语句
try - except 语句
79 0
|
7月前
|
C语言
if语句介绍
if语句介绍
55 0
|
10月前
|
C++
学习笔记:C++语句实现分支结构
学习笔记:C++语句实现分支结构
|
11月前
|
Python
Python编程 条件判断语句
Python编程 条件判断语句
65 0
if...else语句
if...else语句
47 0
|
开发者 Python
While 语句练习 | 学习笔记
快速学习 While 语句练习
61 0
|
开发者 Python
If 语句注意点 | 学习笔记
快速学习 If 语句注意点
73 0
|
数据安全/隐私保护 开发者 Python
If…else 语句的使用 | 学习笔记
快速学习 If…else 语句的使用
79 0
|
知识图谱 开发者 Python
条件判断语句练习 | 学习笔记
快速学习 条件判断语句练习
114 0