学习Python的day.13

本文详细介绍了Python中的输入和输出操作,包括从键盘的标准输入获取数据,如何通过`input()`和`eval()`进行类型转换,以及使用不同的方法进行输出,如`print()`函数的格式化输出,包括设置宽度、对齐方式和填充符号。文章还对比了旧式和新式的字符串格式化方法,以及`str.format()`的用法。
摘要由CSDN通过智能技术生成

输入和输出

一、输入

标准输入:从键盘输入

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()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值