str在 python 中,您可以使用函数将任何数值转换为字符串表示形式。
所以,你可以这样做: -
num = 17
str_num = str(num)
然后,要测试最后一位不等于 7,您可以访问字符串的最后一个字符,并将其与'7'. 要访问最后一个字符,请使用str_num[-1].
所以,你需要的条件是: -
if str_num[-1] != '7':
# don't add it to list
此外,您的内部循环似乎不正确。您正在检查 的模数i,通过将其与 中的每个数字相除list,相反,您应该检查模数 until i ** 0.5。此外,您可以利用else部分for循环来避免使用boolean flag. 因此,您修改后的代码应如下所示
for i in range(2,100):
for num in range(2, int(i ** 0.5) + 1):
if(i % num == 0):
break
else:
if str(i)[-1] != '7':
my_list.append(i)
And elseoffor被执行,当for循环完成执行而没有任何中断时。
虽然与实际问题没有直接关系,但您可以考虑查看Sieve of Eratosthenes算法,以生成给定范围内的素数。