1

我需要制作一个程序,要求用户输入城市,然后输入那里的温度。城市和温度被一个空间隔开。当用户输入“停止”时,程序停止请求输入并报告最冷的城市。您始终可以假设用户输入了一个城市,然后是一个空格,然后是温度。

Sample Output:

Enter city followed by temperature > Edmonton -2
Enter city followed by temperature > Toronto 3
Enter city followed by temperature > Vancouver -1
Enter city followed by temperature > Ottawa -3
Enter city followed by temperature > stop
{'Toronto': 3, 'Edmonton': -2, 'Vancouver': -1, 'Ottawa': -3}
The coldest city is Ottawa -3

我遇到的问题是如何将输入的项目放入字典表单中。我不明白它如何与输入项目中的空间一起工作。我还有其他三个遵循这种格式的程序,输入包括空格,我真的无法弄清楚/找到如何解决它。任何帮助,将不胜感激。

PS:我正在上初学者的计算科学课程..是啊..

4

3 回答 3

1

您需要使用该方法将输入拆分为键和值部分split()

于 2013-04-02T00:25:34.833 回答
0

一个示例 ipython 会话:

In [1]: a = raw_input('City temp: ')
City temp: Edmonton -2

In [2]: a
Out[2]: 'Edmonton -2'

In [3]: d = {}

In [4]: a = a.split()

In [5]: d[a[0]] = a[1]

In [6]: d
Out[6]: {'Edmonton': '-2'}

显然有更多的pythonic方法可以做到这一点。您可以通过阅读文档来解决它们

祝你好运!

于 2013-04-02T00:29:20.153 回答
0

你想使用string.split()

d = {}
for i in range(5):
    user = input('Enter city followed by temperature') 
    # use raw_input(prompt) if using Python 2.x
    data = user.split()
    d[data[0]] = int(data[1])

或者,您可以将每对作为元组附加到列表中,然后使用以下dict()函数:

dataPoints = []
for i in range(5):
    user = input('Enter city followed by temperature')
    data = user.split()
    dataPoints.append((data[0], int(data[1])))
d = dict(dataPoints)
于 2013-04-02T00:30:21.713 回答