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

Using raw input and doing calculations in python

所以对于我正在做的部分作业,我询问用户他们的地址(包括街道名称)并将其从 68 中减去。

到目前为止我有:

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

假设用户在那里输入的地址是 668 Rickman Street,我应该取 668 并从 68 中减去它,打印出来的是 "your secret code is -600"

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

如果您确定您的电话号码和街道名称之间有空格,您可以检查并尝试转换每个拆分的字符串

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

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

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

那么现在stringParsed就是123,那就简单的操作一下68 - stringParsed.

您可以在空格分隔符上拆分输入字符串:

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

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

假设 street_name 是一个字符串。如果该地址出现在 street_name 中的同一索引中,那么一旦访问了第一个单词或遇到第一个空白 space 后 686.

就可以退出循环

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

street_name_lst = street_name.split()

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

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

address = street_name_lst[0]

现在 str_address => '686' ,但这是字符串(不兼容类型,无法针对您的情况使用 Integer 类型进行任何处理),所以让我们转换 String 地址 为整数类型。

int_add = int(str_address)

现在您有 int_add => 686,现在您可以对其进行进一步计算。

记住任何语言的数据结构和类型系统都很重要。 还要查看 PEP8 标准以检查命名变量的良好约定。

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

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