这个'的正确类型是什么?

时间:2015-04-02 03:53:58

标签: python

嗨,大家要通过一些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)

3 个答案:

答案 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,你会得到一个类型错误。