Discuss / Python / d.get('Thomas', -1)与>>> d.get('Thomas')的区别?

d.get('Thomas', -1)与>>> d.get('Thomas')的区别?

Topic source

懒某人

#1 Created at ... [Delete] [Delete and Lock User]

d.get('Thomas') d.get('Thomas', -1)

这两句话好像作用都是一样的。 get中有无“-1”都会显示正确数值,那这里写入数值,在编程中有何特殊作用呢?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你要改改参数试试:

d.get('Exist?')
d.get('Exist?', 999)

懒某人

#3 Created at ... [Delete] [Delete and Lock User]

d.get('Exist?', 999) 返回自己指定的value,这个我不太明白,并不能证明dict中Exist是否存在,实际运用中能举个通俗易懂的例子吗?

d.get('Thomas') #若Thomas不存在,则返回None

d.get('Thomas', -1) #若Thomas不存在,则返回-1,-1是自己指定的值,可以运行下面的代码理解下:

在此插入代码

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} print(d.get('Michael', 'abc')) print(d.get('ABCDEF', 'abcdef'))

懒某人

#5 Created at ... [Delete] [Delete and Lock User]

明白了 比如 d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} print(d.get('Michael', '此学生不存在'))

豆约卜环

#6 Created at ... [Delete] [Delete and Lock User]

看了你们的对话 想到这样的作用了

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} qwer = input('输入姓名进行查询:') s = d.get(qwer, '此学生不存在') print(s)

豆约卜环

#7 Created at ... [Delete] [Delete and Lock User]

但是有一个问题 我又不懂了! 我这个程序运行起来是没问题的,如果不是dict中录入的名字就会返回 此学生不存在 如果是录入的就会打印出“相应的值!”

问题就出在“相应的值”

因为要从dicth中get出一个key的值 是这样的 d.get('Bob') 需要双引号 如果不加双引号 d.get('Bob')是get不出来的 会出错

可是我前面的代码里是加不了双引号的

'qwer' = input('输入姓名进行查询:') 这一句加会出错 大概不能让字符串去指向一个值

s = d.get(‘qwer’, '此学生不存在') 如果这一句加的话qwer就不是一个变量了 和上一句的没有关联了。也不能达到查询的目的。

问题就是我的代码里没有给 d.get(qwer,‘此学生不存在’) 这句里的qwer加双引号为什么不出错?? 可能有点绕 但是你们应该明白我的意思的。求解,不明白我今天睡觉都不安生!!!!!!

豆约卜环

#8 Created at ... [Delete] [Delete and Lock User]

还有 还有 d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} print(d.get('%s, 此学生不存在') % n = input('请输入姓名进行查询'))

最早我是打算这样弄的 但是是错的

我自己能感觉到这个代码有问题 但是改了很多次 都是出错0.0.!!!555

半江月明

#9 Created at ... [Delete] [Delete and Lock User]

在交互模式里执行:

qwer = input('name: ')

然后随便输入一个名字,比如 Bob

然后再输入 qwer

就会显示 'Bob'

懂了么,qwer 是个变量,指向字符串 'Bob'

上面的操作就相当于给变了 qwer 赋值 'Bob'

qwer = 'Bob'

d.get(qwer) 就相当于 d.get('Bob'),所以可以不给 qwer 加引号

建议你回去看一下变量那一章

至于你最后一个问题,正确的姿势是这样的

s = d.get('%s' % input('姓名: '), '学生不存在')

豆约卜环

#10 Created at ... [Delete] [Delete and Lock User]

爱你!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


  • 1
  • 2

Reply