flag表示是不是遇到可以整除的
其实这种写法是从C语言带过来的
Python根本不需要,Python支持for ... else,如果循环退出,走else
给你写一个“地道的”Python的写法,特别注意 for ... else
其中 else 分支表示在 for 循环正常执行完毕后执行的语句,而非循环被中途 break 中断。如果循环被 break 中断,则 else 分支不会被执行。
num = int(input("请输入一个正整数:"))
if num > 1:
for i in range(2, num):
if num % i == 0:
print(num, "不是素数")
break
else:
print(num, "是素数")
else:
print(num, "不是素数")
就相当于给个标志位,默认为1,也就是默认素数,然后循环 ,如果不是素数赋值为0表示直接break跳出循环,最终判断flag值,0表示素数,1表示不是素数
flag初始为1,表示素数。然后对输入的数n,从2开始取模,如果模为0表示n不是素数,将flag设置为0。如果循环完了,flag仍为1,说明n是素数。
仅先列举一个 re.I
>>> import re
>>> pat=re.compile(r'abc')
>>> pat.match('ABC123456').group()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
pat.match('ABC123456').group()
AttributeError: 'NoneType' object has no attribute 'group'
>>>
在pattern中加入flag匹配模式 re.I
相当于加上了re.I 就能大小写都可以匹配了
>>> import re
>>> ptn=re.compile(r'abc',re.I) 此时的ptn是一个str类型
>>> ptn.match('abc').group()
'abc'
>>> ptn.match('ABC').group()
'ABC'
>>>
flag=0通常是用来表示一个条件是否成立的标志位,常见于循环结构中。当flag=0时,表示条件不成立,循环不执行;当flag=1时,表示条件成立,循环执行。以下是一个示例代码:
flag = 0
while flag == 0:
num = input("请输入一个数字:")
if num.isdigit():
print("您输入的数字是:", num)
flag = 1
else:
print("您输入的不是数字,请重新输入!")
在这个例子中,flag被初始化为0,表示条件不成立,即用户还没有输入数字。当用户输入数字后,flag被赋值为1,条件成立,循环结束。