如何从循环内的if条件返回值并在第一个循环中使用它

2024-10-04 01:22:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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(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)

#产量

040
041
042
043
1
044
2
044
45
047
048
049

它应该从这里继续第一次做45,不做045,它从046跳,所以这是正确的,但是

2
044
045
046
047
048
049

Tags: 代码inforifcountstartelsenum
3条回答

跳过条件满足的所有项目:

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

你是说像这样的事吗

# 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)

输出:

044
045
046
047
048
049

相关问题 更多 >