目录
一、输入
1、input()函数
2、单行输入
3、多行输入
4、循环输入
二、输出
1、print()函数
2、不同数据类型的变量输出
3、print()的不同用法
4、%格式字符类型
三、字符串的格式化
一、输入
1、input()函数
input([prompt])
prompt:可选参数,提示信息,为字符串类型
返回值:为字符串类型
s = input("请输入:")
>>>请输入:12
print(s)
>>>"12"
s = input()
>>>'abc'
print(s)
>>>"abc"
2、单行输入
有时候我们会碰到单行输入多个数据的情况,这个时候可以通过字符串分割的方式来获取每个数据
#要求输入的为整数,可以通过int()函数强行转成整型
a = int(input())
>>>1 #输入
print(a)
>>>1 #输出
#单行输入多个数据
a, b, c = input().split()
>>>1 2 3 #输入
print(a, b, c)
>>>'1' '2' '3' #输出
#如果输入的是多个数字,可以通过map函数
a, b, c = list(map(int, input().split()))
>>>1 2 3 #输入
print(a, b, c)
>>>1 2 3 #输出
print(a + b + c)
>>>6 #输出
3、多行输入
因为每个换行会作为input结束的标志,所以我们需要多行输入,就需要添加多个input()函数
#3组数据,分别3行,每组有2个数
for i in range(3):
a, b = list(map(int, input().split()))
print(a + b)
>>>1 2 #输入
3 4
5 6
>>>3 #输出
7
11
4、循环输入
有时候我们还会碰到无止境的输入,若干数据等等,则可以使用tyr...except...异常处理来解决,如何终止输入呢,只需要连续按两次回车即可,也就是当系统未检测到输入的时候会触发异常跑到except来结束循环
try:
while True:
s = input()
print(s)
except:
pass
二、输出
1、print()函数
print(*objects, sep=' ', end='\n', file=sys.stdout)
objects:可变参数,表示输出对象,可以有多个输出对象,之间用逗号分隔
sep:表示输出多个对象时,每个对象之间用什么进行分隔,默认为空格
end:表示输出结束后以什么结尾,默认为换行
file:写入文件对象
#输出数字
print(1)
>>>1
#输出字符串
print("hello world")
>>>hello world
#输出多个对象
a = 2
b = "hello"
print(a,b)
>>>2 "hello"
print(a,b,sep=",")
>>>2,hello
#重复输出多个元素
s = "abc"
for i in s:
print(i)
>>>a
b
c
#上面的输出会发现每次输出结束都会换行,所以可以利用end来改变输出结束时不换行
for i in s:
print(i,end="")
>>>abc
2、不同数据类型的变量输出
python支持各种数据类型的输出,整数、布尔型、列表、元组、字符串、字典等等
a = 12
print(a)
>>>12
a = "hello"
print(a)
>>>"hello"
a = [1, 2, 3, 4]
print(a)
>>>[1,2,3,4]
a = (1, 2, 3, 4)
print(a)
>>>(1,2,3,4)
a = {'a':1, 'b':2}
print(a)
>>>{'a':1, 'b':2}
3、print()的不同用法
python支持print()多种输出和格式化方式,以下将对自己使用过的进行一个总结
a = 1
b = "hello"
#第一种方法
print(a,b)
>>>1 "hello"
#第二种方法
print("%d %s" %(a, b))
>>>1 "hello"
#第三种方法
print("{}-{}".format(a, b))
>>>>>>1-"hello"
#第四种方法,此方法在py3.6以上适用
print(f"{a}{b}")
>>>1"hello"
4、%格式字符类型
官方文档:% (String Formatting Operator) — Python Reference (The Right Way) 0.1 documentation
格式为:
"...%[key][flags][width][.precision][length type]conversion type..."% values
%:必填,说明是占位符
key:可选,映射的键,由带括号的字符序列组成,一般用于字典中取对应Key的值
flags:可选,转换标志,包括'#','0' '-' ' ' '+',基本也是用不到的
width:可选,最小字段宽度,如果指定为'*',则实际宽度会从值
precision:可选,精度,写法为.precision,如.2f表示精度为2也就是保留两位小数
length type:可选,官网的解释是长度修改器,但是具体用法未找到合适的说明
conversion type:必选,转换类型,以下表格介绍
values:必填,替换转换类型的值
Conversion Types
类型 | 说明 |
d/i/u | 有符号整数十进制 |
o | 有符号八进制值 |
x/X | 十六进制 |
e/E | 浮点指数格式,精度默认为6 |
f/F | 浮点十进制格式,精度默认为6 |
g/G | 浮点格式,会去掉小数点后无效的0,当数值比较大的时候会自动以浮点指数格式输出,精度默认为6 |
c | 单个字符格式 |
s | 字符串格式 |
% | 输出%字符 |
a = 12
b = 12.0123
c = 1.5600
d = 5678.1234
e = "hello world"
f = 'A'
print("%d 0x%x %o" %(a,a,a))
>>>12 0xc 14
print("%f %.2f %g %e" %(c,b,c,d))
>>>1.560000 12.01 1.56 5.678123e+03
print("%s %c %%" %(e,f))
>>>hello world A %
一些示例key、flag、width的用法:
#0表示填充,3表示最小宽度width
a = 1
print("%03d" %a)
>>>012
#flag为‘-’表示左对齐,配合width使用
a = "hello"
print("%5s" %a)
>>>" hello"
print("%-5s" %a)
>>>"hello "
#flag为‘+’表示输出正负数,如果整数为整数在数字前面加+号,如果为负数,就加-号
a = 1
b = -1
print("%+d %+d" %(a,b))
>>>+1 -1
#flag为‘#’,作用为自动使用替代形式,比如十六进制输出,自动补全0x
a = 17
print("%#x" %a)
>>>0x11
#对于字典对应值的输出,可以用Key,输出对应key的值
d = {'a':1, 'b':2}
print("%(a)s" %d)
>>>1
三、字符串的格式化
{<参数序号>:<格式控制标记>}
:<填充><对齐><宽度><,><.精度><类型>
引导
符号
用于填充的
单个字符
<左对齐
>右对齐
^居中对齐
槽设定的输出宽度数字的千位分隔符
浮点数小数精度或
字符串最大输出长度
整数类型
b,c,d,o,x,X
浮点数类型
e,E,f,%
一些简单的示例,类型的方法和%的类型一致
#引导符号前面的数字控制输出顺序,如果不写则为默认{}的顺序输出
a = 1
b = 2
c = "hello"
print("{1} {0} {2}".format(a,b,c))
>>>2 1 hello
print("{0:=^20}".format("PYTHON"))
>>>'=======PYTHON======='
#当设置了宽度,并未选择对齐方式时,默认为左对齐
print("{0:10}".format("PYTHON"))
>>>'PYTHON '
print("{:,.2f}".format(12345.6789))
>>>'12,345.68'
print("{:%}".format(0.3))
>>>30.000000%