如何设置一个等于输入部分的变量?

时间:2014-11-10 03:57:46

标签: python variables declaration

学习python并且对如何将变量设置为等于输入的一部分感兴趣。

例如

x = int(input("Input a 4 digit number"))
b = int(first 2 letters of x)
c = int(last 2 letters of x)
print b+c 

离。如果他们输入2051,则会打印71。

在b和c中我需要用什么表示法来完成这个,或者我需要一些完全不同的东西?

7 个答案:

答案 0 :(得分:4)

在将字符串分成两半后,您可以转换为int

x = raw_input("Input a 4 digit number")
b, c = int(x[:2]), int(x[2:])
print b+c

我使用切片表示法,您可以阅读更多有关in the Python docs的内容。简而言之,最简单的语法形式是string[start:end],其中省略start默认为0(字符串的开头)并省略end将默认为结束的字符串。因此,[2:]会将索引2中的字符带到结尾。

注意:从您的print表示法看,您似乎正在使用Python 2.因此,我已将input更改为raw_input,因为在Python 2中,{{ 1}}会自动调用输入中的input,而eval会为您提供字符串。

答案 1 :(得分:1)

分割字符串比分割int更容易,你可以通过转换为in(x)选择左,右2位数来转换它

x = input("Input a 4 digit number")
b = x[:2]
c = x[2:]
print int(b)+int(c)

如果你想使用数字,你可以使用div,modulo来选择前两个,前几个数字。

x = int(input("Input a 4 digit number"))
b = x%100
c = x//100
print b+c

答案 2 :(得分:1)

如果您的输入是整数,divmod可用于实现您的目的

x = input("Input a 4 digit number")
b,c = divmod(x, 100)
print b + c

注意 divmod会在此处首选,因为您可以在数学上有效地处理字符串和数字之间进行切换。 divmod,除以数字并返回商和余数。这是你想要实现的目标的要点,除非你总结它们。

你甚至可以冒险一点,可以简单地将商和余数相加而无需额外的步骤

print sum(divmod(x, 100))

答案 3 :(得分:1)

将用户的输入保持为字符串,然后验证它,然后将每个部分转换为整数:

# Use a loop to re-prompt the user if their input is invalid
while True:
    user_input = raw_input("Input a 4 digit number: ")

    # Verify it is a number
    try:
        _ = int(user_input)
    except ValueError:
        print 'Invalid input given'
        continue

    # Verify it is 4 digits
    if len(user_input) != 4:
        print 'Input not 4 digits'
        continue

    # Parse the input into two separate values
    b = int(user_input[0:2])
    c = int(user_input[2:4])

    # Get out of this loop - the user has given valid input
    break

print 'First part:', b
print 'Second part:', c

答案 4 :(得分:1)

试试这个,它会从中间分割字符串:

x = int(input("Input a 4 digit number"))
b = str(x)[:len(str(x)) / 2]
c = str(x)[len(str(x)) / 2:]
print b+c 

答案 5 :(得分:0)

然后使用切片sum函数:

x = input("INput 4 digit number: ")
sum([int(x[:2]),int(x[2:])])

sum函数将为您提供列表元素的总和

答案 6 :(得分:0)

你在第 4 行忘记了括号

x = raw_input("Input a 4 digit number")

b, c = int(x[:2]), int(x[2:]) 打印 b+c