输入和输出
一、输入
标准输入:从键盘输入
input(prompt=None)
# prompt: 输入的提示符,可以为空
Read a string from standard input --- 译为:从标准输入读入一个字符串,输入读取的一定是字符串,返回值就是一个字符串
那我们怎么在程序中判断输入结束了呢?
一般的情况是敲击Enter键结束
从输入获取一个你想要的类型,你必须对在输入中拿到的字符串进行强制类型转换,或者就使用eval()自动识别输入的类型。
获取输入函数帮助(获取其中的参数和详解):有相同的可以鼠标中键直接点击input(注释中不行)
help(input)
以下是一个示例:
data = input("请输入字符串:")
print(data, type(data))
从输入中获取一个整数:
#将输入的字符串进行类型转换
data = input("请输入一个整数: ")
print(data, type(data))
int_data = int(data)
print(int_data, type(int_data))
#或者直接使用eval()
data = eval(input("请输入一个整数: "))
print(data, type(data))
从输入中获取一个列表:
data = input("请输入一个列表: ")
print(data, type(data))
list_data = data.split(",")
print(list_data, type(list_data))
二、输出
标准输出:输出到屏幕上
help(print)
格式化输出:在日常使用打印的时候,我们就直接输出了。但是为了控制我们打印出来的内容简洁美观。所以要进行格式的规定。
(1)打印变量
(2)设置打印宽度,宽度为5,打印一个字符,他所占的宽度是5
(3)设置对齐方式,左对齐,右对齐,居中对齐
(4)设置填充符号,其他空白的地方默认使用空格填充,也可以使用其他符号来填充
print(f"整型为{data:*^10}, 浮点型为{data2:*^10}, 字符串为{data3:*^10}")
1、老式的格式化输出
常用的占位符输出:
%d:digit-整型
%s:str-字符串
%f:float-浮点型
data = 1
data2 = 1.1
data3 = "222"
print(data, data2, data3)
# 整型为 1, 浮点型为 1.1, 字符串为 222
print("整型为", data, "浮点型为", data2, "字符串为", data3)
# 打印变量
print("整型为%d, 浮点型为%f, 字符串为%s" % (data, data2, data3))
# 设置宽度
print("整型为%4d, 浮点型为%4.2f, 字符串为%4s" % (data, data2, data3))
# 对齐方式: 默认的对齐方式是:向右对齐
# 向左对齐:
print("整型为%-4d, 浮点型为%-4.2f, 字符串为%-4s" % (data, data2, data3))
# 填充符号:
print("整型为%04d, 浮点型为%05.2f, 字符串为%04s" % (data, data2, data3))
输出结果展示:
2、新式的格式化输出
在打印的字符串前加f/F, 要么加f, 要么加F,大写和小写的意思都是Format
(1)打印变量
f/F"{variable_name}"
(2)设置打印宽度
f/F"{variable_name:宽度}"
(3)设置对齐方式:
<:向左对齐
>:向右对齐
^:居中对齐
f/F"{variable_name:对齐方式宽度}"
(4)设置填充符
f/F"{variable_name:填充符对齐方式宽度}"
data = 1
data2 = 1.1
data3 = "222"
print(40 * "*", "新的格式化输出", "*" * 40)
# 打印变量:
print(f"整型为{data}, 浮点型为{data2}, 字符串为{data3}")
# 设置宽度: 数字向右对齐,字符串向左对齐
print(f"整型为{data:4}, 浮点型为{data2:4}, 字符串为{data3:4}")
# 对齐方式
print(f"整型为{data:<4}, 浮点型为{data2:<4}, 字符串为{data3:<4}")
print(f"整型为{data:>4}, 浮点型为{data2:>4}, 字符串为{data3:>4}")
print(f"整型为{data:^10}, 浮点型为{data2:^10}, 字符串为{data3:^10}")
# 填充符
print(f"整型为{data:*<4}, 浮点型为{data2:*<4}, 字符串为{data3:*<4}")
print(f"整型为{data:*>4}, 浮点型为{data2:*>4}, 字符串为{data3:*>4}")
print(f"整型为{data:*^10}, 浮点型为{data2:*^10}, 字符串为{data3:*^10}")
输出结果展示:
(5)字符串的format方式
格式:"".format(参数)
字符串:是你们要打印的格式
参数: 你们里边要打印的变量的实际的值
(1)打印变量
""中写的是我们打印的格式
{}:不加的内容,他代表的是从format的参数中顺序去取
例:
"{} x {} = {}".format(i, j , i * j)
那么第一个{} 去对应第一个参数i,第二个{} 去对应第二个参数j,第三个{} 去对应第三个参数 i * j
{n}:n: 从0开始, {0} {1}....
加了n:代表的是format后边参数的索引(1, 2, 3) => 0, 1, 2
例:
"{2} x {1} = {0}".format(i * j, j , i)
实际要打印的是 i x j = i * j,可以认为format的参数是一个序列
假设:我现在向format传递了一个列表 [1, 2, 3],"list的第一个元素为{0[0]}".format([1, 2 ,3 ]){key}:key:认为他是字典中的key
加了key之后,他就会根据key去format后的参数中去查找对应key的值
例:
"{key1} x {key2} = {key3}".format(key1=i, key2=j, key3=i * j)
根据{key1} => format中key1 = i 去获取i的值
(2)设置宽度
"".format() --->>> "{:宽度}".format
例:
format_str = "{0:4} x {1:4} = {2:4}, {0} x {1} = {2}"
print(format_str.format(1, 2, 1 * 2))
(3)对齐方式
"".format() --->>> "{:对齐方式宽度}".format
对齐方式:
①左对齐:<
②右对齐:>
③居中对齐:^
(4)设置填充符
"".format() --->>> "{:填充符对齐方式宽度}".format()
底下是一些代码示例:
# 打印变量
format_str = "{} x {} = {}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0} x {1} = {2}, {0} x {1} = {2}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0[0]} x {0[1]} = {0[2]}, {0[0]} x {0[1]} = {0[2]}"
print(format_str.format([1, 2, 1 * 2]))
# print("{0[0]}".format([1, 2, 3]))
format_str = "{i} x {j} = {mul}, {i} x {j} = {mul}"
print(format_str.format(i=1, j=2, mul=1 * 2))
# 设置宽度
format_str = "{0:4} x {1:4} = {2:4}"
print(format_str.format(1, 2, 1 * 2))
# 设置对齐方式
format_str = "{0:<4} x {1:<4} = {2:<4}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0:>4} x {1:>4} = {2:>4}"
print(format_str.format(1, 2, 1 * 2))
format_str = "{0:^4} x {1:^4} = {2:^4}"
print(format_str.format(1, 2, 1 * 2))
# 填充符
format_str = "{0:-<4} x {1:-<4} = {2:-<4}"
print(format_str.format(1, 2, 1 * 2))
打印的结果:
注:字符串中有一些方法也可以完整格式化
# 左对齐
ljust(width, fillchar=' ')
width: 宽度
fillchar: 填充字符
# 右对齐
rjust(width, fillchar=' ')
width: 宽度
fillchar: 填充字符
# 居中对齐
center(width, fillchar=' ')
代码示例:
str_data = "1"
#左对齐
#ljust(self, width, fillchar=' ', /)
print(str_data.ljust(4))
print(str_data.ljust(4, "*"))
# str_data.ljust()
#右对齐
# rjust(self, width, fillchar=' ', /)
print(str_data.rjust(4))
print(str_data.rjust(4, "*"))
# str_data.rjust()
#居中对齐
# center(self, width, fillchar=' ', /)
print(str_data.center(4))
print(str_data.center(4, "*"))
# str_data.center()