嗨,大家要通过一些python代码,我遇到了这一行(if语句行)。在我检查语句后的's'类型后,它仍然是'str type'。如何int(s [0])%2 == 0)影响's'。它首先切片's',然后将获得的值转换为int类型?。代码的相关部分:
values = []
for i in range(1000, 3001):
s = str(i)
if (int(s[0])%2==0):
#print type(s) #type str
values.append(s)
print ",".join(values)
答案 0 :(得分:2)
当您撰写int(x)
时,它会占用x
的任何值,并将其转换为integer
。它不会改变变量x
的类型。
这称为Casting,您可以获得更多信息here
如果你没有在那里包含施法操作,那么当你试图对一个字符串值进行模数运算时会导致错误,这将是一个非法的操作。
因此,您将获取s [0]所持有的值,将其转换/转换为整数,然后执行模数运算。
答案 1 :(得分:0)
您的代码将包含一个数字,例如1782
,并将其转换为字符串,以便您可以从该数字中获取第一个字符。因此,我们将从上述数字中获得"1"
。然后,它转换为整数,以便它可以计算数字上的模块%
,如果数字是奇数则返回1
,如果是偶数则返回0
。因此,if num == 0
或伪代码if num is even
,我们继续。
实际上,如果数字if
的第一个数字是偶数,代码将输入i
语句。
答案 2 :(得分:0)
如果你没有输入int(s [0]),你将无法检查字符串s中的第一个字符是否是偶数(这是int(s [0])%2 == 0正在做什么)。所以试试吧:取消int,你会得到一个类型错误。