def oneAction(self):
coinsaccepted = ("insert 50","insert 25","insert 10","insert 5")
selectlist = ("select 1","select 2","select 3","select 4","select 5")
print("Product List: all 35 cents, except bouillon (25 cents)")
print("1=black,2=white,3=sweet,4=white & sweet, 5=boullion")
print("Sample commands: insert 25, select 1")
x = input("Your command : ")
if x == "quit":
return False
elif x in coinsaccepted:
return True
elif x in selectlist:
return True
elif x == "cancel":
print("Returning x cents")
elif x not in coinsaccepted:
print("We only take half-dollars, quarters, dimes, and nickels. Coin(s) returned.")
elif int(x) <= 0:
print("Invalid Command")
else:
print("Invalid Command")
所以这里的问题是我的程序需要输入的不仅仅是整数,我也需要输入字符串。
例如,程序将打印出插入50,插入25,选择1或选择2。
输入将不仅是25、50或1或2。输入将是插入50,或者选择1,等等。
我将程序设置为仅将其作为字符串接收。但是,我需要在插入后和选择后返回数字。
我可以将“插入50”之类的字符串转换为整数吗?在这种情况下,我只需要整数就可以是50。
非常感谢您的帮助。
答案 0 :(得分:0)
您将要解析输入。您可以使用.split
(可以在字符串上使用)非常简单地做到这一点。
x = input("Your command : ")
command, value = x.split(' ')
value = int(value)
print(command, value)
如果您提供insert 25
作为输入,command
将等于'insert'
,而value
将包含25
(作为int
)。 / p>
.split
接受一个字符串,并将其分成多个字符串,这些字符串由提供的子字符串分隔(在这种情况下为单个空格)。在等号的左侧,我们有两个变量:这两个变量是从拆分操作返回的第一个和第二个值中提取的。
请注意,如果您提供的值包含更多(例如insert 25 cents
)或更少(例如insert
)字,则会出错。如果第二个单词不可解析为int
,它也会引发ValueError
。您可以通过显式测试.split(' ')
的输出长度并在解析ValueError
时捕获int
异常来处理这些情况。
答案 1 :(得分:0)
使用python的split方法拆分输入部分并转换为:
a = "insert 25"
query,value = a.split(' ')
value = int(value)
在这里,将使用空格作为分隔符来分割字符串
答案 2 :(得分:0)
elif x in coinsaccepted:
res = x.split()
string = res[0]
integer = int(res[1])
示例:拆分字符串“ insert 50”-[“ insert”,“ 50”]
将字符串更改为整数。