用户交互
毫无疑问,用户交互是软件产品使用体验中至关重要的一部分,所谓与用户交互,个人看来,就是程序与用户交换信息的过程。
正如以下这个例子:
1 print('------------100以内猜个数吧--------------\n') 2 res = '90' 3 guess = 0 4 while guess == 'Y' or guess == 'y' or guess == 0: 5 count = 0 6 while count < 3: 7 guess = input('请输入你猜的数字:') 8 if guess == res: 9 print('恭喜你猜对啦,真厉害!\n') 10 break 11 elif guess < res: 12 print('猜小了,不要气馁,再来一次~') 13 if count == 0: 14 print('还有两次机会哦~\n') 15 elif count == 1: 16 print('还剩有一次机会哦~\n') 17 else: 18 print('三次机会用完啦!\n') 19 else: 20 print('猜大了,再接再厉') 21 if count == 0: 22 print('还有两次机会哦~\n') 23 elif count == 1: 24 print('还剩有一次机会哦~\n') 25 else: 26 print('三次机会用完啦!\n') 27 count += 1 28 guess = input('是否还想再来一次呢(是请按Y/否请按N):')
------------50以内猜个数吧-------------- 请输入你猜的数字:50 猜大了,再接再厉 还有两次机会哦~ 请输入你猜的数字:15 猜小了,不要气馁,再来一次~ 还剩有一次机会哦~ 请输入你猜的数字:24 恭喜你猜对啦,真厉害! 是否还想再来一次呢(是请按Y):
这个例子中,就体现了使用者与程序交互的过程,我觉得关于用户交互至少需要注意以下几点:
1.能够引导用户应该做什么。(比如标题提示,以及结尾询问,并且实例应该输入什么)
2.让用户能够及时收到反馈。(比如会提示用户猜大了还是小了,并提示剩余机会)
关于python中的输入和输出
输入
python3中的输入
关键字:input()
python3中的input获取的用户输入统一全部存成字符串类型
>>> name = input('please input>>:') please input>>:bitten >>> type(name) <class 'str'>
>>> name = input('please input>>:') please input>>:[1,2,3,4,5] >>> type(name) <class 'str'>
>>> name = input('please input>>:') please input>>:89 >>> type(name) <class 'str'>
python2中的raw_input和python3中的input效果相同,会将用户输入的数据统一存为字符串形式。
Python 2.7.10 (default, Oct 6 2017, 22:29:07) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwinType "help", "copyright", "credits" or "license" for more information. >>> name = raw_input('please input>>:') please input>>:bitten >>> type(name) <type 'str'> >>> name = raw_input('please input>>:') please input>>:[1,2,3,4,5] >>> name '[1,2,3,4,5]' #输出形式是字符串形式 >>> type(name) <type 'str'> >>> name = raw_input('please input>>:') please input>>:'bitten' >>> type(name) <type 'str'>
python2中的input需要人为告诉input你输入的是什么类型
1 >>> name = input('please input>>:') 2 please input>>:bitten 3 4 Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> 6 File "<string>", line 1, in <module> 7 NameError: name 'bitten' is not defined #直接输入英文名,会报错说未定义 8 9 >>> name = input('please input>>:') 10 please input>>:'bitten' #以字符串的形式输入就没有问题 11 >>> type(name) 12 <type 'str'> 13 14 >>> name = input('please input>>:') 15 please input>>:[1,2,3,4,5] #这里是以列表形式输入 16 >>> type(name) 17 <type 'list'>
输出
格式化输出
#方法1 name=input('please input your username:') age=input('please input your age:') print('my name is',name,'my age is',age) #或者 print('my name is %s,my age is %s' %(name,age)) #结果是 my name is 输入的用户名,my age is 输入的年龄 #方法2 print('my name is %s my age is %s' %('bitten',18)) #或者 print('my name is %s my age is %d' %('bitten',18))
# 关于%s和%d print('my name is %s my age is %s' %('bitten',[1,2,3])) # %s可以接收任意类型的值 print('my name is %s my age is %d' %('bitten','xxx')) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: %d format: a number is required, not str # %d只能接收数字类型
补充:%04d:替换的数字要是4位,不足4位,用0补全,超过4位正常显示