Python青少年简明教程:输入输出
Python的输入输出是编程中的基本操作。Python的标准输入输出主要通过内置的input()函数和print()函数来实现。这两个函数使得从用户那里接收输入和向用户展示输出变得非常简单。
输入(Input)函数
input()函数用于接收用户的输入。基本语法:
input([prompt])
prompt是可选参数,是在获取输入之前向用户显示的字符串。该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。
函数始终返回一个字符串(即使用户输入的是数字)。
input()函数用于接收用户的输入。这个函数会暂停程序的执行,等待用户输入一些文本,并在用户按下回车键后继续执行。input()函数可以接受一个字符串作为参数,这个字符串会显示给用户,作为输入提示。不过,无论用户输入什么内容,input()函数都会将其作为字符串返回。
输入示例:
user_input = input("请输入你的名字: ")
print("你好," + user_input + "!")
在这个例子中,程序会等待用户输入他们的名字,并在用户输入并按下回车键后,将输入的名字与问候语结合后打印出来。
注意,input() 接收的输入总是字符串类型。如果需要其他类型(如整数、浮点数),需要手动进行转换:
age = int(input("请输入你的年龄:"))
height = float(input("请输入你的身高:"))
input() 总是返回字符串。如果需要其他类型,你需要进行类型转换。如果你需要其他类型的数据(如整数、浮点数、布尔值等),你需要将 input() 返回的字符串转换为相应的类型。这可以通过使用内置的类型转换函数来实现,如 int(), float(), bool() 等。
input() 函数一般一次接收一个字符串输入。如果你想一次输入多个数据,循环逐个输入,直到输入指定的结束标志,例如:
data = []
while True:
# 提示用户输入数据
user_input = input("请输入数据(或输入'#'来停止输入): ")
# 如果用户输入'结束',就停止循环
if user_input.lower() == '#':
break
# 将输入的数据添加到列表中
data.append(user_input)
# 将数据打印出来
print(data)
运行效果如下图所示:
可以通过一些技巧来一次性输入多个数据。
最常用的是借用split()方法。用户输入多个数据,用空格(或其他分隔符)分隔,然后使用split()方法将输入分割成多个值。
【split() 是 Python 字符串对象的一个非常有用的方法。它用于将字符串分割成子字符串列表。基本语法:
str.split(sep=None, maxsplit=-1)
参数说明:
sep:分隔符。默认为 None,表示使用空白字符(包括空格、制表符、换行符)作为分隔符。
maxsplit:最大分割次数。默认为 -1,表示不限制分割次数。
示例:
# 默认使用空白字符分割
text1 = "Hello World Python"
result1 = text1.split()
print(result1) # ['Hello', 'World', 'Python']
# 使用指定分隔符
text2 = "apple,banana,orange"
result2 = text2.split(',')
print(result2) # ['apple', 'banana', 'orange']
】
借用split()方法变通使用input()一次输入多个数据,例如:
data = input("请输入多个数据,以空格分隔:")
data_list = data.split() # 以空格分割
print(data_list)
运行效果如下图所示:
默认是空格分隔,可以在 split() 方法中指定分隔符。例如,以逗号分隔:
data = input("请输入多个数据,以逗号分隔: ")
data_list = data.split(',') # 以逗号分割
print(data_list)
此例就不给出运行效果图了,你可以运行看看。
如果你需要将这些数据转换成其他数据类型(如整数),可以在 split() 后进行转换,例如:
# 让用户输入多个整数,以空格分隔
user_input = input("请输入多个整数,用空格分隔: ")
# 将输入的字符串分割成列表
data_str = user_input.split()
# 将列表中的每个字符串转换为整数
data_int = [int(item) for item in data_str]
# 将数据打印出来
print(data_int)
运行效果图如下:
关于input用法更多情况可见 https://blog.csdn.net/cnds123/article/details/115027082
输出(Output)函数
print()函数用于在屏幕上显示信息。语法格式:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
*objects:表示要打印的多个对象,它们之间默认以空格分隔。可以使用逗号分隔多个对象(其中* 符号是一个常见的 Python 语法特性,称为“可变参数”或“星号参数”,用于接收位置参数,这些参数会被打包成一个元组,允许你传递多个值)。
sep:指定对象之间的分隔符,默认为空格。
end:指定打印完所有对象后附加的字符串,默认为换行符\n。
file:指定输出流,默认为sys.stdout(即控制台)。
flush:是否立即刷新输出缓冲区,默认为False。
print()函数用于在屏幕上显示信息。它可以接受多个参数,并将它们转换为字符串(如果它们还不是字符串的话),然后将它们连接在一起,并在末尾添加一个新行符(默认情况下,print() 总是在末尾添加换行符,除非指定了 end 参数),最后将结果输出到标准输出设备(通常是屏幕)。print()函数总是返回None。
简单的输出示例:
print("Hello, World!") # 输出:Hello, World!
print("Hello", "World") # 输出:Hello World
print("Hello", "World", sep=", ") # 输出:Hello, World
print("Python", "令人惊叹!", sep="---") # 输出:Python---令人惊叹!
print("Hello", end="") # 输出Hello后不换行
print("World") # 接着上一行输出World
print() 函数可以输出多个对象:
print("Hello", "2024年", 123) # 输出:Hello 2024年 123
print() 函数可以用于显示各种数据类型如字符串、整数、浮点数(表示带小数部分的数)、列表等。不同数据类型的输出有一些细微的差别和注意事项。
浮点数可能显示不期望的精度。
print(0.1 + 0.2) # 输出: 0.30000000000000004
这是由于二进制浮点数的限制造成的。你可以通过格式化字符串来控制浮点数的显示精度:
print(f"{0.1 + 0.2:.1f}") # 保留1位小数:0.3
print()可以同时打印多种类型,会自动转换为字符串。
print("1 + 2 =",1 + 2) # 输出:1 + 2 = 3
提示,print() 函数在输出变量和字符串时的使用方法和区别
输出字符串,直接将字符串放在 print() 函数的括号中:
print("Hello, World!") # 输出: Hello, World!
【字符串用于表示文本数据,可以包含字母、数字、符号以及其他字符,需要用单引号、双引号或三引号(半角引号)包起来。详见“字符串”一节】
输出变量,直接将变量名放在 print() 函数的括号中:
x = 10
print(x) # 输出: 10
【变量是用来存储数据的容器。你可以把它想象成一个带标签的盒子,里面可以放置各种类型的数据。详见“变量”一节】
当需要更复杂的输出格式化时,考虑使用字符串的format()方法或f-字符串。
格式化字符串(格式化字符串字面值,简称为 f-字符串),,从Python 3.6开始引入,这是一种非常方便且易于阅读的格式化字符串的方法。通过在字符串前加上f或F,并在字符串内部使用大括号{}包围变量名,Python会自动将变量值插入到字符串中。如:
name = "Alice"
age = 30
print(f"名字是{name},年龄{age}岁。") # 输出:名字是Alice,年龄30岁。
格式化字符串字面值(formatted string literals)通过在字符串前添加 f 或 F,并在字符串内部使用花括号 {} 包裹表达式,可以直接在字符串中嵌入 Python 表达式的值。
比传统的 % 格式化和 format() 方法更简洁直观。
可以嵌入任意表达式,包括函数调用和复杂的运算。
在 f-strings 中可以直接嵌入表达式,包括变量、函数调用、运算等。如:
x = 10
y = 5
formatted_string = f"{x} + {y} = {x + y}"
print(formatted_string) #输出:10 + 5 = 15
格式化选项简介
可以使用格式说明符对数值进行格式化(“格式规格”),例如控制小数点、填充和对齐等。例如:
pi = 3.1415926
print(f"π 约等于 {pi:.2f}") # 输出:π 约等于 3.14
使用多行字符串(使用三重引号 """ 或 ''')时,可以在每一行中使用 f-strings。例如:
name = "Alice"
age = 30
info = f"""
姓名:{name}
年龄:{age}
"""
print(info)
输出:
姓名:Alice
年龄:25
格式化规范提供了极大的灵活性,允许您精确控制输出的外观。
格式化规范的基本语法是:
f"{value:[填充][对齐][符号][#][0][宽度][,][.精度][类型]}"
选项解释:
☆填充和对齐
<: 左对齐
>: 右对齐
^: 居中对齐
可以指定填充字符,默认是空格
例如:
name = "Alice"
print(f"{name:>10}") # ' Alice'
print(f"{name:<10}") # 'Alice '
print(f"{name:^10}") # ' Alice '
print(f"{name:*^10}") # '**Alice***'
☆符号
+: 总是显示符号(正数和负数)
-: 只显示负数的符号(默认)
: 正数前加空格,负数前加减号
例如:
num = 42
print(f"{num:+}") # '+42'
print(f"{num: }") # ' 42'
print(f"{-num:+}") # '-42'
☆#符号用于指定数字的进制表示(即十六进制、八进制和二进制):
#x:表示以十六进制的形式输出数字,并在前面添加0x前缀
#o:表示以八进制的形式输出数字,并在前面添加0o前缀
#b:表示以二进制的形式输出数字,并在前面添加0b前缀
例如:
print(f"{42:#x}") # '0x2a'
print(f"{42:#o}") # '0o52'
print(f"{42:#b}") # '0b101010'
☆宽度和精度
宽度: 指定字段的最小总宽度
精度: 用于浮点数,指定小数点后的位数
例如:
pi = 3.14159
print(f"{pi:10.2f}") # ' 3.14'
☆千位分隔符
使用 , 添加千位分隔符
例如:
big_num = 1000000
print(f"{big_num:,}") # '1,000,000'
☆类型指定
s: 字符串格式(默认)
d: 十进制整数
f: 定点数
e 或 E: 科学计数法
%: 百分比
例如:
num = 123.456
print(f"{num:d}") # '123'
print(f"{num:.2f}") # '123.46'
print(f"{num:.2e}") # '1.23e+02'
print(f"{num:.2%}") # '12345.60%'
提示,这些规范可以组合使用,例如:
value = 1234.5678
print(f"{value:+10,.2f}") # ' +1,234.57'
附录、Python的输入函数input()和输出函数print()详解 https://blog.csdn.net/cnds123/article/details/118638607