欢迎各位旅行者,这篇要细致的讲讲Python的输入和输出😊
一,输入
1.input()输入函数
单纯的input()不加任何修饰的话,你输入了什么都是字符串的类型(字母、数字、标点符号或其他特殊字符的组合,不能进行数字运算等其他操作)同时你的输出也一样是字符串的类型。因为input函数是让用户输入的可以加一些提示:
(1)int,float,str修饰input
可以用int(整数),float(小数),str(字符串)函数来进行修饰input(就是将输入的字符串转换为其他形式)。例子如下:
注意!!!要是int函数你输入了除数字意外的东西,则会报错。float同理。
通过转换形式之后,就可以对输入数据进行正确操作了。
(2)input函数+split函数
如果我们有个特殊要求,就是一次性输入几个数据,并且在输入的时候每个数据以空格为分隔,这该怎么办呢???————查米游社吧!!!(开玩笑的)
为解决这个问题我们就要用到split函数了。
split基本语法:
str.split(separator, maxsplit)
separator
是用于指定分隔符的字符串,如果不指定,默认情况下会使用空格作为分隔符。maxsplit
是一个可选参数,用于指定最大分割次数,即最多分割出几个子字符串。如果不指定或为负数,则会分割所有可能的子字符串。
那么将split函数+input函数会出现什么色彩呢?请看下面:
通过以上方式可以完成目标(一次性输入几个数据,并且在输入的时候每个数据以空格为分隔)
其中split函数()中默认是以空格为分割,要是想以逗号为分割可以这么写。如下
还有别的形式吗?自己试试吧。
(3)input函数+split函数+map函数+其他修饰函数
map函数是什么?八级萌新可能会说:
map()
函数是 Python 中的一个内置函数,它用于对可迭代对象(如列表、元组等)中的每个元素应用一个指定的函数,然后返回一个包含所有函数返回值的迭代器。map()
函数的基本语法如下:
map(function, iterable)
function
是要应用于每个元素的函数。iterable
是一个或多个可迭代对象,如列表、元组等
我知道刚来到提瓦特大陆的你们看到这个就像看到圣遗物一样懵,给个例子来讲讲吧。
a,b = map(int,input().split())
print(a,b)
这段代码的意思是:用户将会输入两个数,它们分别以空格为分隔,每个数据都会进行int来修饰(这就是map的用法)就是迭代输入可以迭代的数据,并且用上文提到的function(函数)应用于每个函数。
通过input函数+split函数+map函数+其他修饰函数就可以实现输入多个数据以什么格式分隔,并且转换每个数据的数据类型。
(4)差点忘掉的eval函数🤣
eval函数可以去除字符串的双引号和单引号,也就是说如果一个数字在里面的类型是字符串,用了eval函数去除左右引号或者双引号后,它就成为了它自己(数字成为真的数字,但是符号和字母不行它必须是字符串形式,否则去除后会报错。)
(5)其他常用更加高级的输入
这里仅提供一些例子,大家可以自己试试。
1. 多行输入:
使用循环逐行读取输入:
lines = []
while True:
line = input()
if not line:
break
lines.append(line)
2.使用列表推导式简化多行输入:
lines = [input() for _ in range(n)]
二,输出
1.print函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects
:要打印的对象,可以是字符串、变量、表达式等。sep
:用于分隔多个对象之间的字符串,默认是空格。end
:用于在打印内容结尾添加的字符串,默认是换行符\n
。
print函数可以输出数字,字母(字符串类型),符号(字符串类型)
sep和end用法。
sep 和 end还有些更加特殊的用法,本文不做介绍,喜欢探索的旅行者们可以开始森林书之旅啦。
2. % 的方法控制输出形式
# 使用 % 运算符格式化字符串
name = "Alice"
age = 30
print("Hello, %s! You are %d years old." % (name, age))
在上面的例子中,%s
表示字符串格式,%d
表示整数格式。在 print
语句中,%
后面的元组中的变量会按顺序替换对应的格式化字符串。
另外,还有其他格式化字符可以使用,例如:
%s
:字符串%d
:十进制整数%f
:浮点数 其中 %.nf表示为保留n位小数%x
:十六进制整数%o
:八进制整数%r
:使用repr()
函数进行字符串转换
3.format的方法控制输出形式
由于方法太杂,种类太多,这里就引用一位写的全的大佬的博客文章http://t.csdnimg.cn/YrN6v作者是在下周周ovo-CSDN博客
4. f-string 的语法
name = "Alice"
age = 30
print(f"Hello, {name}! You are {age} years old.")
在上面的示例中,f"Hello, {name}! You are {age} years old."
是一个 f-string。在这个字符串中,{name}
和 {age}
是表达式,会被替换为相应的变量的值。f-string 可以包含任何有效的 Python 表达式,并且可以在大括号 {}
中使用变量、函数调用等。
例子如下:
1. 表达式计算:
x = 10
y = 20
print(f"The sum of {x} and {y} is {x + y}.")
2. 调用方法:
name = "Alice"
print(f"Hello, {name.upper()}!") # 调用字符串方法
3. 格式化数字:
pi = 3.14159
print(f"The value of pi is {pi:.2f}.") # 保留两位小数
4. 使用字典:
person = {"name": "Bob", "age": 25}
print(f"Name: {person['name']}, Age: {person['age']}")
5. 多行字符串:
message = (
f"Hello, {name}!\n"
f"Welcome to the program.\n"
f"Enjoy your stay!"
)
print(message)
6. 嵌套表达式:
x = 10
y = 20
print(f"The result is {x + y if x > 5 else x - y}")
三,sys库
sys的库中有两个函数sys.stdin.readline()和sys.stdout.write()他们可以实现输入和输出,本文不做讲解,感兴趣的旅行者们可以研究一下。
以上是我对于输入和输出的认识,如有不全,希望指出改正。感谢各位旅行者们的阅读。
祝大家十连双金!!!