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)

相关文章
|
6月前
使用if语句
使用if语句
50 2
|
6月前
|
Serverless C++
8语句
8语句
44 1
|
6月前
|
C语言
if语句的使用
该内容是关于C语言中的条件判断语句`if`的介绍。`if`语句用于根据表达式的真假来决定是否执行特定的语句,当表达式为真(非零值)时执行语句,否则不执行。在C语言中,0被认为是假,非0被认为是真。示例包括判断输入整数是否为奇数。此外,还提到了`if...else...`语句,用于在表达式不成立时执行另一组语句。当有多条语句需要执行时,可以使用花括号`{}`来包围。内容中还包括了嵌套`if`语句的例子,用于判断输入的整数是0、正数还是负数,以及如何避免悬空`else`的问题。
72 1
|
6月前
|
C++
c++语句详细介绍(二)
c++语句详细介绍(二)
57 0
|
自然语言处理 程序员 Python
耐人寻味的 for...else...语句
耐人寻味的 for...else...语句
80 0
|
编译器 C++
一文带你搞定C++语句
一文带你搞定C++语句
174 0
一文带你搞定C++语句
|
开发者 Python
If 语句注意点 | 学习笔记
快速学习 If 语句注意点
|
数据安全/隐私保护 开发者 Python
If…else 语句的使用 | 学习笔记
快速学习 If…else 语句的使用
|
C语言 开发者
if 语句|学习笔记
快速学习 if 语句
128 0
if 语句|学习笔记
|
C语言 数据安全/隐私保护 开发者
while 语句和 do...while 语句|学习笔记
快速学习 while 语句和 do...while 语句
128 0
while 语句和  do...while 语句|学习笔记