学习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中我需要用什么表示法来完成这个,或者我需要一些完全不同的东西?
答案 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