提问者:小点点

Python for beginners.range,排除特定数字


这里是Python的新手! 有人能帮我做个小任务吗? 我需要写一个算法,可以打印0到100之间的所有数字。 除了能被10整除的数,比如10,20,30,40……。 还有所有包含3的数字,如3,13,23,30,33.。。等等

我得到了可被10整除的部分,但是排除所有包含3的数字会让我卡住:(

请帮帮我!!!!

for i in range (1,100):
    if i %10 and i[0] != 3:
        pass
        print (i)

共3个答案

匿名用户

你可以试试

for i in range (1,100):
    if i %10 and '3' not in str(i):
        print(i)

此循环将不打印数字模10返回0的数字,它将把每个数字转换为字符串,以检查它是否包含3个init.
您可以在一行中执行此操作,并通过列表理解将列表解包为print语句。

print(*[i for i in range (1,100) if i %10 and '3' not in str(i)], sep="\n")

匿名用户

您对i[0]的使用是错误的,i是一个int对象,它不是Subscripble:

for i in range (1,100):
    if i %10 == 0 or '3' in str(i):
        continue
    print (i)

匿名用户

只需在数字字符串中搜索3,现在工作很酷

for i in range (1,100):
    if i %10 and str(i).find("3") == -1:
        pass
        print (i)