找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 240|回复: 3

[求助] 初学Python之json疑问,谢谢!

1

主题

3

帖子

3

积分

贫民

积分
3
py小白 发表于 2018-5-13 23:27:54 | 显示全部楼层 |阅读模式
  1. import json

  2. #存储用户名称
  3. def get_stored_username():
  4.        
  5.         filename = 'username.json'
  6.         try:
  7.                 with open(filename) as f_obj:
  8.                         username = json.load(f_obj)
  9.         except IOError:
  10.                 return None
  11.         else:
  12.                 return username

  13. #获取新的用户名称               
  14. def get_new_username():
  15.        
  16.         username = input("What's your name? ")
  17.         filename = 'username.json'
  18.         with open(filename, 'w') as f_obj:
  19.                 json.dump(username, f_obj)
  20.         return username
  21.        
  22. #问候用户       
  23. def greet_user():

  24.         username = get_stored_username()
  25.         if username:
  26.                 new_name = input(print("Is that your name? y/n "))
  27.                 if new_name == 'y':
  28.                         print("Welcome back, " + username.title() + "!")
  29.                 else:
  30.                         username = get_new_username()
  31.                         print("We will remember you " + username)


  32. filename = 'username.json'
  33. greet_user()
复制代码
这个程序为什么在运行的时候总是打印None呢?想不明白,求助各位!

回复

使用道具 举报

0

主题

7

帖子

7

积分

贫民

积分
7
wussrc 发表于 2018-5-14 10:57:02 | 显示全部楼层
粗心导致的.
new_name = input(print("Is that your name? y/n "))这行代码,input中直接写Is that your name? y/n就可以了.
你在input函数里加了一个print()这成了什么意思?成了input中的内容是print的返回值.但是print()函数并没有返回值,或者说返回值是None
所以会多出个None
回复 支持 1 反对 0

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
py小白  楼主| 发表于 2018-5-13 23:30:12 | 显示全部楼层
运行结果如下:
Is that your name? y/n
None
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
py小白  楼主| 发表于 2018-5-14 15:14:13 | 显示全部楼层
问题已解决,十分感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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