文章目录
一、输入
1.input()函数
input()可以读取用户键盘输入的值,并以字符串的形式赋值给我们随意定义的变量中。我们可以设置提示语句,以便用户使用该程序更加清晰。
a = input("请输入长度:")
print(type(a))
运行结果如下:
2.eval()函数
由于input()函数赋值的时候是使用字符串,我们在后期使用的时候会遇到麻烦。我们直观可以想到的方法是使用数据类型的强制转换,将input传来的值更改为我们想要的数据类型。但是这也有麻烦,我们需要了解输入的数据类型,根据不同的数据类型进行不同的强制转换。这里我们引入eval()函数。它的功能是无论输入的数据类型是什么,我都以该数据类型赋值。输入的是字符串,就赋值字符串;输入的是整型,就赋值整型。
a = int(input("请输入长度:"))#数据类型强制转换
print(type(a))
b = eval(input("请输入长度:"))#eval()函数
print(type(b))
运行结果如下:
3.多个变量的输入
(1)split()函数
我们可以使用split()函数将输入的字符串通过指定的分隔符进行拆分,将他们依次赋值给我们随意定义的n个变量中。我们可以指定分隔符为任意字符,未填写时,默认为空格。
name,sex,age = input("输入用户信息:").split()#默认分隔符为空格
print(name,sex,age)
name,sex,age = input("输入用户信息:").split(",")#设置分隔符为逗号
print(name,sex,age)
print(type(name),type(sex),type(age))#输出变量的数据类型
运行结果如下:
(2)map()函数
多个变量输入无法使用eval()函数,因此无法将数据按原数据类型赋值给变量。这里我们引入map()函数,用split()函数将输入的数据分割成多个数据并放置于列表中,用map()函数中的int()等函数处理为原数据类型,最后依次赋值给变量。
a,b,c = map(int,input("请输入三角形的三个边长:").split())
print(a,b,c)
print(type(a),type(b),type(c))#输出变量的数据类型
运行结果如下:
二、输出
1.print()函数
该函数主要以四个参数组成,参数之间用逗号分隔。第一个参数是我们输出的变量名;第二个参数是分隔符,输出形式中对象之间的分隔符号,默认为空格;第三个参数是结束符,输出语句的结尾符号,默认为换行;第四个参数是输出目标,你输出在什么文件里,默认为显示器。
语法格式:
print(value1,value2,...[.sep=' '][,end='\n'][,file=sys.stdout])
对象1,对象2, 分隔符 结束符 文件名
举例:
print('apple','banana','grape')#除对象名之外的参数均默认,若想实现输出字符串之间无空格,可使用字符串的连接
print('apple','banana','grape',sep='|',end='啥都爱吃')#分隔符为|,结束符为‘啥都爱吃’,输出目标为默认显示器
运行结果如下:
2.字符串格式化format()方法
一个输出语句实现多个数据类型的数据输出,可以省略常变量输出的复杂格式。
语法格式:
<string>.format(<参数列表>)
各形式的代码:
#参数列表直接存放数据,可多次输出
print('这个卖{0}块{1}个,买{1}块不?'.format(2,3))#依次输出参数
print('这个卖{1}块{0}个,买{1}块不?'.format(2,3))#改变参数位置,从而改变输出顺序
print('这个卖{}块{}个,买{}块不?'.format(2,3,3))#省略编号,默认从0开始排序
#参数列表存放变量,可多次输出
name='calm_down'
age=19
print('我的名字是{0},年龄是{1}。'.format(name,age))
#参数列表存放关键词,可多次输出
print('我的名字是{name},年龄是{age}。'.format(name='calm_down',age=19))
#数据格式化输出
#":"表示获取format方法中的参数
#".nf"表示保留n位小数
print('{:.2f}'.format(3.1415926))#保留两位小数,四舍五入
#"m>nd"表示以m作为补充字符,达成输出数据宽度为n,在数据左边填充
print('{:*>5d}'.format(15))
#".n%"表示保留n位小数,输出形式为百分比
print('{:.2%}'.format(25))#首先化为百分比形式,乘上100,再保留2位小数
运行结果如下:
数据 | 输出形式 | 输出 | 备注 |
---|---|---|---|
20000000 | {:,} | 20,000,000 | 逗号分隔输出 |
20000000 | {:.1e} | 2.0e+07 | 指数形式输出 |
20 | {:b} | 10100 | 二进制输出 |
20 | {: o} | 24 | 八进制输出 |
20 | {:d} | 20 | 十进制输出 |
20 | {:x} | 14 | 十六进制输出 |
20 | {:#X} | 0X14 | 带前导符,十六进制大写输出,其他进制也可这么表示 |
20 | {:#x} | 0x14 | 带前导符,十六进制小写输出,其他进制也可这么表示 |
20 | {:x<5d} | 20xxx | 在数据左边填充字符x,以达到5的宽度 |
20 | {:^8d} | 20 | 宽度为8,中间对齐 |
3.字符串格式化占位符%
变量的类型和占位符要求匹配。
符号 | 备注 |
---|---|
%u | 无符号整型输出 |
%s | 字符/字符串输出 |
%o | 八进制输出 |
%d | 十进制输出 |
%x | 十六进制小写输出 |
%X | 十六进制大写输出 |
%e | 指数输出 |
%E | 科学计数法形式输出 |
%f | 浮点数输出 |
name = 'calm_down'
num = 3.14159265358
#占位符和变量的数据类型要匹配
#浮点型数据默认保留6位小数
print('我的名字是:%s,圆周率为:%f。'%(name,num))
#%.nf保留n位小数
print('我的名字是:%s,圆周率为:%.3f。'%(name,num))
运行结果如下: