Python的基本输入和输出

学习目标

  • 掌握Python的基本输入和输出

基本内容

  • Python的基本输入
  • Python的基本输出

数据的输入与输出

(1)标准输入

  • input("提示字符串")
  • 程序执行到input函数时先在屏幕上显示提示字符串,然后停下来等待用户的键盘输入,函数接收从键盘输入的任意一个字符串,将所有输入默认为字符串处理。
x = input("Please enter your input:")
type(x)
Please enter your input:5

str
  • input()函数返回结果都是字符串实际使用时需要将其转换为相应的类型再进行处理
x = int(input("Please enter your input:"))
type(x)
Please enter your input:5


int

(2)标准输出

  • print()函数的格式如下:
    • print([objects][,sep=' '][,end='\n'][,file=sys.stdout][,flush=False])
    • objects是输出的对象,多个对象之间用英文逗号分割;
    • sep是对象之间插入的分隔符,默认是空格;
    • end是添加在输出文本最后的一个字符,默认是换行符;
    • file指定输出内容发送到的文件,默认是显示器;
    • flush指定输出的内容是否立即写文件。
  • 参数说明:
  1. [object1, ...]待输出的对象,表示可以一次输出多个对象,输出多个对象时,需要用“,”分隔,会依次打印每个object,遇到逗号“,”会输出一个空格。
a1, a2, a3 = "aaa", "bbb", "ccc"
print(a1, a2, a3)
aaa bbb ccc
  1. sep=""用来间隔多个对象,默认是一个空格,还可以设置成其它字符。
a1, a2, a3 = "aaa", "bbb", "ccc"
print(a1, a2, a3, sep = "***")
aaa***bbb***ccc
  1. end="\n"参数用来设定以什么结尾,默认值是换行符,也可以换成其它字符串,用这个选项可以实现不换行输出,如使用end=""。
a1, a2, a3 = "aaa", "bbb", "ccc"
print(a1, end = "@")
print(a2, end = "@")
print(a3)
aaa@bbb@ccc
  1. 参数file设置把print中的值打印到什么地方,可以是默认的系统输出sys.stdout,即默认输出到终端,可以设置file=文件储存对象,把内容存到该文件中。
# 以写的方式打开文件a.txt
f = open('a.txt', 'w')
print('python is good', file = f)
# 关闭文件
f.close()
x, y = 5, 9
print(x, y, sep = ',', end = '!')
5,9!
out = open("test.txt", "w")
print("Helloworld", file = out)
out.close()

(3)格式化输出

  1. %格式化运算符
  2. format()函数
  3. Raw字符串
  • 字符串格式化%输出:字符串格式化表达式用%表示,%之前是需要进行格式化的字符串,%之后是需要填入字符串中的实际参数。语法如下:"%格式控制符"%实际参数
  • print()函数可使用一个字符串模版进行格式化输出。
  • 模版中有格式符,这些格式符为真实值输出预留位置,并说明真实数值应该呈现的格式
x = 520
print("sum = %d" % x)
sum = 520
  1. 格式化输出:字符串格式化%
符号 说明
%s 字符串
%c 字符
%d (十进制)整数
%u 无符号整数
%o 八进制数
%x 十六进制数
%X 十六进制数(大写)
%e 用科学记数法表示浮点数
%E 同%e
%f 浮点数,可指定小数点后的精度
%g 采用%f和%e较短者输出
%G 采用%f和%E较短者输出
%p 以十六进制数格式化变量地址
%% 字符“%”
  • Python用一个元组将多个值传递给模版,每个值对应一个格式符
print('名字:%s,年龄:%d' % ('张三', 20))
名字:张三,年龄:20
  • "%s speak plainer than %s."为格式化输出时的字符串模版。
  • %s为一个格式符,表示一个字符串。元组('Facts', 'words')的两个元素'Facts'和'words'为分别替换第一个%s和第二个%s的真实值。
  • 在模版和元组之间,有一个%号分隔,它代表了格式化操作。
print("%s speak plainer than %s." % ('Facts', 'words'))
Facts speak plainer than words.
  • 此外,格式化操作符还有如下辅助命令:
    • m.n:m是数字的总宽度,n是小数位数;
    • -:用于左对齐;
    • +:在正数前面显示加号;
    • 0:显示的数字前面填充'0'取代空格。
print('%f' % 3.1415926)
print('%20.2f' % 3.1415926)
3.141593
                3.14
  • 附加格式说明符:可以用如下的方式,对输出的格式字符进行进一步的控制:

    • '%[(name)][flags][width].[precision]type' % x
      • name可为空,对格式符进行命名,其为键名。
      • flags可以有+、-、''或0。+在正数前面显示加号。-表示左对齐。''为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充空位。
      • width表示显示的宽度。
      • precision表示小数点后精度。
      • type表示数据输出的格式类型。
  • 字符串辅助操作符

符号 说明
* 字符串
- 左对齐
+ 在正数前面显示加号
# 在八进制数前面显示0,在十六进制数前面显示0x(或0X)
0 显示的数字前面填充0而不是默认空格
m.n m是最小总宽度,n是小数点后位数
year = 2021
month = 1
day = 15
print('%04d-%02d-%02d' % (year, month, day))
2021-01-15
print('这个商品的价格是 ¥%.2f' % 7.8)
这个商品的价格是 ¥7.80
value = 8.123
print('%06.2f' % value)
print('%02x' % 10)
print('%.2e' % 1.2888)
print('%6.3f%%' % 2.3)
008.12
0a
1.29e+00
 2.300%
  1. 字符串的format方法
  • str.format()函数提供了比%方式更为强大的格式化方式,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’

  • str.format()格式化输出使用花括号{}包围替换字段,也就是待替换的字符串。而未被花括号包围的字符会原封不动地出现在输出结果中

  • <模板字符串>.format(<逗号分隔的参数>)

    • <模板字符串>是由一系列的占位符组成,用来控制字符串中嵌入值的出现位置及格式,<逗号分隔的参数>按照序号顺序替换到<模板字符串>的占位符处。占位符如何被替换取决于每个格式说明符,格式说明符“:”作为其前缀来表示。
    • 占位符用大括号{}括起来,如果大括号中没有序号,则按照位置顺序替换。除了通过序号来指定填充的参数外,还可以通过关键字参数下标字典的key对象的属性来填充。
  • 字符串的format方法示例:

print('{}:计算机{}的CPU占用率为{}%.'.format('2019-01-30', 'Python', 10))
2019-01-30:计算机Python的CPU占用率为10%.
  • ① 使用位置(序号)索引
    • 以下两种写法是等价的:
print("Hello, {} and {}!".format("John", "Mary"))
print("Hello, {0} and {1}!".format("John", "Mary"))
Hello, John and Mary!
Hello, John and Mary!
  • 花括号内部可以写上待输出的目标字符串的索引,也可以省略。如果省略,则按format后面的括号里的待输出的目标字符串顺序依次替换
print('{1}{0}{1}'.format('言', '文'))
文言文
  • 使用"{序号:格式说明符}"形式的格式说明符:
print("{0:.2f},{1}".format(3.1415926, 100))
3.14,100
  • 使用"{序号/键:格式说明符}"形式的格式说明符:
print("{0},pi={x}".format("圆周率", x = 3.14))
圆周率,pi=3.14
  • ② 使用关键字索引:
    • 除了通过位置来指定待输出的目标字符串的索引,还可以通过关键字来指定待输出的目标字符串的索引。
print("Hello, {boy} and {girl}!".format(boy = "John", girl = "Mary"))
print("{a}{b}".format(b = "3", a = "Python"))
Hello, John and Mary!
Python3
  • ③ 使用属性索引:
    • 在使用format()来格式化字符串时,通常将目标字符串作为参数传递给format方法,此外还可以在格式化字符串中访问参数的某个属性,即使用属性索引。
c = 3 - 5j
print(('复数{0}的实部为{0.real},虚部为{0.imag}。').format(c))
复数(3-5j)的实部为3.0,虚部为-5.0。
  • ④ 使用下标索引:
coord = (3, 5, 7)
print('X:{0[0]}; Y:{0[1]}; Z:{0[2]}'.format(coord))
X:3; Y:5; Z:7

posted @ 2024-07-30 08:59  KenWan  阅读(1337)  评论(0编辑  收藏  举报