Python 如何从循环内的if条件返回值并在第一个循环中使用它
我有一个for循环来创建付费号码,比如040-050,下面是代码Python 如何从循环内的if条件返回值并在第一个循环中使用它,python,python-3.x,Python,Python 3.x,我有一个for循环来创建付费号码,比如040-050,下面是代码 start_num = 40 end_num = 50 painumreturn = '' count = 0 for painum in range(start_num, end_num): if not painumreturn: painumbe = painum else: painumbe = painumreturn painumber = str(pa
start_num = 40
end_num = 50
painumreturn = ''
count = 0
for painum in range(start_num, end_num):
if not painumreturn:
painumbe = painum
else:
painumbe = painumreturn
painumber = str(painumbe).zfill(3)
if painumber == '044':
if count == 2:
painumreturn = ''
count == 0
painumber = int(painumbe) +1
else:
painumreturn = painumber
count = count +1
print(count)
print(painumber)
#输出
它应该从这里继续第一次做45,不做045,它从046跳,所以这是正确的,但是
2
044
045
046
047
048
049
你是说像这样的事吗
# intialize varibales:
start = 40
end = 50
# iterate over given range:
for number in range(start, end):
# skip values less than 44:
if number < 44:
continue
# use zfill to format number:
formatted_number = str(number)
formatted_number = formatted_number.zfill(3)
# print result:
print(formatted_number)
跳过条件满足的所有项目:
start_num = 40
end_num = 50
for painum in range(start_num, end_num):
if painum < 44:
continue
print(f"{painum:03.0f}")
start_num = 40
end_num = 50
for painum in range(start_num, end_num):
if painum >= 44:
print(f"{painum:03.0f}")
如果您乐于将结果存储为列表,则可以使用列表理解在一行中完成任务
numbers = [str(num).zfill(3) for num in range(start, stop) if num >= 44]
#['044', '045', '046', '047', '048', '049']
print(*numbers, sep='\n')
#044
#045
#046
#047
#048
#049
打印一个元素两次:
start_num = 40
end_num = 50
painumreturn = ''
for p in range(start_num, end_num):
if p == 44:
print(f"{p:03.0f}")
painumreturn = f"{p:03.0f}"
print(f"{p:03.0f}")
输出:
040
041
042
043
044
044
045
046
047
048
049
040
041
042
043
044
044
046
047
048
049
这就是解决方案:
start_num = 40
end_num = 50
painumreturn = ''
count = 0
for painum in range(start_num, end_num):
if not painumreturn:
painumbe = painum
else:
painumbe = painumreturn
painumber = str(painumbe).zfill(3)
if painumber == '044':
if count == 1:
painumreturn = ''
count == 0
else:
painumreturn = painumber
count = count +1
print(painumber)
输出:
040
041
042
043
044
044
045
046
047
048
049
040
041
042
043
044
044
046
047
048
049
谢谢
向您致意。您的问题很难理解。发生了什么(输出),应该发生什么/显示什么?编辑问题以显示它。我编辑它查看它如果条件已经满足,您可以使用附加变量来标记(
True
或False
)。在另一个if
-子句中,您可以检查此标志并根据标志打印数字(或不打印)。范围内p的输出(开始数,结束数):打印(f“{p:03.0f}”)之间有什么区别
以及您想要作为输出的内容?在条件正确后,是否所有值都是044
?我宁愿将代码放在if中,特别是当我们可以只使用一行打印它,但使用continue
也绝对是一个不错的选择。将painumreturn的值从空更新为当前值将painumreturn的值从空更新为当前值的想法将painumreturn的值从空更新为当前值的想法价值这与您所寻找的结果不一致吗<代码>从044开始并迭代到结束。这似乎是一个非常合乎逻辑、易于阅读的方法,可以达到你的目标。您需要它以这种方式运行有什么具体原因吗?是的,如果您之前知道painumreturn
是044
,我想使用它来满足某些条件,为什么你不只是循环44-50?对,但它应该继续打印,不只是设置后从044增加的数字,现在开始:)好,但我的意思是,再增加一次,然后它喜欢检查这是第二次还是第一次,如果它是第一次从值开始增加,那么我们不打印“044”?我们把它打印出来,就像我们做了一件好事一样