使用原始输入并在python中进行计算

时间:2015-02-02 04:18:39

标签: python input

因此,对于我正在进行的部分工作,我向用户询问他们的地址(包括街道名称),并从68开始减去。

到目前为止,我有:

streetName = raw_input("Please enter your address: ")

说用户输入地址为668 Rickman Street,我应该拿668并从68减去它,将打印的是 “你的密码是-600”

显然-600显然是68-668的计算 但是我不知道如何从原始输入中取出668并将其计入计算中。

4 个答案:

答案 0 :(得分:0)

如果您确定数字和街道名称之间有空格,则可以检查并尝试投射每个拆分字符串

streetName = raw_input("Please enter your address: ")
names = streetName.split(' ')
secret_code = -1
for name in names :
    try :
        secret_code = 68 - int(name)
    except ValueError :
         continue


# Thanks to Jon Clements
if secret_code > 68 :
    print 'something went wrong , check your address'
else
    print secret_code

答案 1 :(得分:0)

您可以使用streetName循环遍历for并在找到第一个空格的地方停止,存储索引并从0开始提取一个子字符串到计算的索引,然后将其解析为整数。 示例代码:

stringVar = "123 Hello world"
subStringVar = a[0:3]
stringParsed = int(subStringVar)

所以现在stringParsed123,然后只需做一个简单的操作68 - stringParsed

答案 2 :(得分:0)

您可以在空白分隔符上分割输入字符串:

>>> int("668 Rickman Street".split()[0])
668

答案 3 :(得分:0)

我认为首先要做的是了解您将使用哪些数据结构 得到你的最终答案。请留意有关字符串和列表理解的示例。

让我们说street_name是一个字符串。如果地址出现在street_name中的相同索引中,则可以在访问第一个单词后遇到循环,或者在686之后遇到第一个空格。

或者您可以将字符串转换为列表。

street_name_lst = street_name.split()

其中street_name_lst => ['668','Rickman','街']

现在您只需使用第一个索引访问第一个元素。

address = street_name_lst[0]

现在str_address => '686',但这是字符串(不兼容的类型,为您的情况做任何处理与Integer类型),所以让我们转换字符串地址 到整数类型。

int_add = int(str_address)

现在你有int_add => 686现在你可以对它进行进一步的计算。

记住任何语言的数据结构和类型系统都很重要。 另请参阅PEP8标准,以检查命名变量的良好惯例。

https://www.python.org/dev/peps/pep-0008/#id38

安装ipython可能会有所帮助。检查http://ipython.org/