python基础(五):与用户交互、格式化输出

一、与用户交互

交互的本质就是输入、输出

1、输入

# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:') 
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:') 
请输入您的密码:123 # password = "123"

# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>

为什么python3的print变成输入什么都存成字符串类型呢,python2的输入什么类型存成什么类型不是更简单、更好吗?

答:python2中的输入什么类型,存成什么类型,那只是对程序猿来说,对用户来说体验就非常不好

例如:
在这里插入图片描述用户输入,会报语法错误,这样用户体验不好,不可能让用户去学python语法嘛,所以就取消了这种print,不论什么都存成字符串,交给程序猿去处理,和返回信息,这样用户体验是非常好的。

2、输出

>>> print('hello world')  # 只输出一个值
hello world
>>> print('first','second','third')  # 一次性输出多个值,值用逗号隔开
first second third

# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

二、格式化输出

1、%号

%号格式化字符串的方式从Python诞生之初就已经存在,时至今日,python官方也并未弃用%号,但也并不推荐这种格式化方式。

# 1、格式的字符串(即%s)与被格式化的字符串(即传入的值)必须按照位置一一对应
# ps:当需格式化的字符串过多时,位置极容易搞混
print('%s asked %s to do something' % ('egon', 'lili'))  # egon asked lili to do something
print('%s asked %s to do something' % ('lili', 'egon'))  # lili asked egon to do something

# 2、可以通过字典方式格式化,打破了位置带来的限制与困扰
print('我的名字是 %(name)s, 我的年龄是 %(age)s.' % {'name': 'egon', 'age': 18})

kwargs={'name': 'egon', 'age': 18}
print('我的名字是 %(name)s, 我的年龄是 %(age)s.' % kwargs)

2、str.format(兼容性好)

​ 该format方法是在Python 2.6中引入的,是字符串类型的内置方法。因为str.format的方式在性能和使用的灵活性上都比%号更胜一筹,所以推荐使用
三种格式化:
(1)按照位置一一对应

print('{} asked {} to do something'.format('egon', 'lili'))  # egon asked lili to do something
print('{} asked {} to do something'.format('lili', 'egon'))  # lili asked egon to do something

(2)使用索引

# 使用索引取对应位置的值
print('{0}{0}{1}{0}'.format('x','y')) # xxyx

(3)使用关键字参数or字典

# 可以通过关键字or字典方式的方式格式化,打破了位置带来的限制与困扰
print('我的名字是 {name}, 我的年龄是 {age}.'.format(age=18, name='egon'))

kwargs = {'name': 'egon', 'age': 18}
print('我的名字是 {name}, 我的年龄是 {age}.'.format(**kwargs)) # 使用**进行解包操作

3、f-Strings

str.format() 比 %格式化高级了一些,但是它还是有自己的缺陷。当需要传入的字符串过多时,仍然会显得非常冗长。与在Python 3.6中引入 了f-strings,不仅比str.format更简洁,性能上也更胜一筹

​ f-string是以f或F开头的字符串, 核心在于字符串中符号{}的使用

(1){}中可以是变量名
name = '吴晋丞'
age = 18
print(f'我的名字是{name},今年{age}岁')

在这里插入图片描述
其他使用情况和方法后续学到再继续更新。

原创文章 209 获赞 153 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_44571270/article/details/105777541