可以将每个字符串中都有一个单词的字符串转换为整数

时间:2020-03-05 04:26:30

标签: python

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。

非常感谢您的帮助。

3 个答案:

答案 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”]

将字符串更改为整数。

相关问题