python入门之用户交互和格式化输出

基本输入input()

python3中使用input()函数用来接收用户通过键盘输入的数据,返回一个字符串类型的变量

name = input("请输入用户名:")	# name用来接收input收到用户输入的数据
print(name)

即使用户输入的是数字,input()函数返回的变量依旧是字符串数据类型的变量

age = input("请输入年龄:")	# 键盘输入 20
print(age, type(age))
# 输出:20 <class 'str'>

补充:

# python2中的raw_input() 和 input()
- python2中的raw_input()函数的功能和用法和python3中的input()函数完全相同;
- python2的input()会保留用户输入的数据类型,即输入int返回结果是int,输入列表返回列表,如果用户输入数据格式不对,会报错。
# 从用户是上帝的角度出发,python3直接优化了input()函数,只返回字符串类型数据

基本输出print()

python中使用print()函数可以打印输出任何数据类型的变量。

同时打印多个变量,用逗号隔开

name = "jack"
age = 20
print(name)			# 打印:"jack"
print(name, age)	# 打印:"jack" 20

自定制多个变量值的隔开方式,使用sep参数

# 可以在print()中使用参数sep=""
name = "jack"
age = 20
print(name, age)			# 打印:"jack" 20
print(name, age, sep=",")	# 打印:"jack",20

设置每行打印结束的标识符,使用end参数

name = "jack"
age = 20
print(name, end=',')
print(age)
# 输出:"jack", 20   两次打印在一行显示

格式化打印

格式化打印的三种基本方式:

# 三种基本格式化打印方法
#1 %
#2 str.format
#3 f-String

%(占位符)

# %占位符 是目前所有python版本都支持的格式化打印方式

#1 按照位置与%s一一对应,少一个不行,多一个也不行
res = 'my name is %s and i am %s' %('egon', '18')
res2 = 'my name is %s' % 'egon'

# output
# res = my name is egon and i am 18 
# res2 = my name is egon

#2 按照字典的形式传值,打破位置的限制
res = 'my name is %(name)s i am %(age)s' %{'age':'18', 'name':'egon'}
# output
# res = my name is egon and i am 18 


#3 补充:%s可以接收任意类型, %d只能接收int
# 
# print('my age is %s' %18)
# print('my age is %s' %[1,23])
# print('my age is %s' %{'a':333})
# print('my age is %d' %18) 		# %d只能接收int
# print('my age is %d' %"18")		# 报错

#4 打印符号 '%'
res = '成功的可能性是 %s%%' % 90
# res = 成功的可能性是 90%

str.format

# format的字符串的内置方法,好处:兼容性好;性能比%较优

#1 按照位置传值
res='我的名字是 {} 我的年龄是 {}'.format('egon',18)

#2 按照索引传值
res='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('egon',18)
#output:我的名字是 egonegonegon 我的年龄是 1818

#3 打破位置的限制,按照key=value传值
res = 'my name is {name} and i am {age}'.format(age=18, name='egon')
#output:my name is egon and i am 18

 

# 补充知识:

#3 填充与格式化
# 语法: 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]

#3.1 左对齐
res = '{0:*<10}'.format('打印内容')  # 冒号前必须是0,也可省略0,且不能有空格
# output: 打印内容******

#3.2 右对齐
res = '{0:*>10}'.format('打印内容')  
# output: ******打印内容

# 3.3 居中
res = '{0:*^10}'.format('打印内容')
# output: ***打印内容***

#4 精度与进制
print('{salary:.3f}'.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124
print('{0:b}'.format(123))  # 转成二进制,结果为:1111011
print('{0:o}'.format(9))  # 转成八进制,结果为:11
print('{0:x}'.format(15))  # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931

f-String

# python3.5以后才推出,用于插值计算;性能更优
# python3.6后推荐使用,但是用需要注意python解释器版本

#1 格式化插值
name = 'egon'
age = 18
res = f'我的名字是{name} 我的年龄是{age}'

# 支持花括号内计算和函数使用
age = 18
res = f'我的年龄是{age}, 去年我的年龄是{age-1}'

posted @ 2020-03-05 15:23  the3times  阅读(608)  评论(0编辑  收藏  举报