找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 385|回复: 6

[求助] 刚开始学Python关于字典的代码报错

1

主题

5

帖子

5

积分

贫民

积分
5
f200200g5 发表于 2017-12-20 00:02:14 | 显示全部楼层 |阅读模式
MAC上3.63版本
这是代码
people = {
    'Alice': {
        'phone': '2341',
        'addr': 'Foo drive 23'
    },
    'Beth': {
        'phone': '9120',
        'addr': 'Bar street 43'
    },
    'Cecil': {
        'phone': '3158',
        'addr': 'Baz avenue90'
    },
}
lables = {
    'phone': 'phone number',
    'addr': 'address'
    }
name = input('Name: ')
request = input('Phone Numnber(p) or Address(a)')
if request == 'p':
    key = 'phone'
if request == 'a':
    key = 'addr'
if name in people:
    print("%s's %s is %s.") % (name, lables[key],people[name][key])
这是运行报错
Name: Alice
Phone Numnber(p) or Address(a)p
%s's %s is %s.\
Traceback (most recent call last):
  File "/Users/kevin/Documents/试验.py", line 26, in <module>
    print("%s's %s is %s.") % (name, lables[key],people[name][key])
TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
回复

使用道具 举报

0

主题

297

帖子

297

积分

侠客

积分
297
sheeboard 发表于 2017-12-20 07:50:27 | 显示全部楼层
python2的话用raw_input
回复 支持 反对

使用道具 举报

7

主题

33

帖子

33

积分

贫民

积分
33
bigpang 发表于 2017-12-20 09:24:23 | 显示全部楼层
问题是出在print那里
print()是python3的用法,print “”是python2 的用法。
2中,应该是 print "%s,%s"%(a,b)这样。
3中,应该是,print("%s,%s"%(a,b))

回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
f200200g5  楼主| 发表于 2017-12-20 22:04:16 | 显示全部楼层
太感谢了,我一直没发现是括号的问题。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
f200200g5  楼主| 发表于 2017-12-20 22:05:46 | 显示全部楼层
bigpang 发表于 2017-12-20 09:24
问题是出在print那里
print()是python3的用法,print “”是python2 的用法。
2中,应该是 print "%s,%s"%( ...

太感谢了!!
回复 支持 反对

使用道具 举报

7

主题

33

帖子

33

积分

贫民

积分
33
bigpang 发表于 2017-12-22 09:30:59 | 显示全部楼层

不用谢
回复 支持 反对

使用道具 举报

7

主题

23

帖子

23

积分

贫民

积分
23
不言 发表于 2017-12-22 19:08:40 | 显示全部楼层
问题出在这里吧%s's %s is %s.  '和.是什么意思???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表