Python——输入(Input)输出(Output)

文章讲述了Python中如何接收用户输入,如何判断变量类型,以及如何使用map()和split()进行数据处理,还介绍了字符串格式化的多种方法,包括f-string和传统方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入Input

使用**<变量> = input()**

print("请输入你的名字:")
name = input()
print(name)
print("请输入一个数字")
num = input()
print(num)
请输入你的名字:
稻米哟
稻米哟
请输入一个数字
2
2
Process finished with exit code 0

上述语句可以进行简化
<变量> = input(“<提示性语句>”)

name = input("请输入你的名字")
print(name)
num = input("请输入一个数字")

我们可以通过**type( )**进行查询变量的类型,如

print(type(name))
<class 'str'>

可以得到‘name’是一个字符串类型的变量
那么‘num’是字符串还是整型呢?

请输入你的名字稻米哟
稻米哟
请输入一个数字
2
2
<class 'str'>
<class 'str'>

可以看到num也是一个字符串类型,即无论用户输入的是字符串还是变量,input()函数同意按照字符串形式输出
如果我们希望得到一个数字,可以通过类型转换得到,如
int() float()

num = int(input("请输入一个数字"))
print(type(num))
num = float(input())
print(type(num))
请输入一个数字
200
<class 'int'>
12
<class 'float'>

有时候,我们也会使用**eval(<字符串>)**函数将输入的字符串转变为Python语句,如:

print("请输入一个数字")
num = input()
print(type(eval(num)))
请输入一个数字
5
<class 'int'>

也可以将字符串中特定位置转换为数字

s = input()
print(eval(s[0:3]))
print(type(eval(s[0:3])))
102102
<class 'int'>

获得多个输入

.split() 是字符串方法,用于将字符串按照默认的分隔符(空格)或指定的分隔符拆分成多个部分,并返回字符串部分的列表。

a, b, c = map(int,input().split(' '))

获得一行数据存入一个数据容器

实际应用中,经常会出现将用户输入的一行不同数据存入某一个数据容器,此时我们可以使用**<变量> = input(“<提示性语句>”).split(“<分割标志>”)**

如,用户输入一行以空格为分割数字

num = input("请输入你的生日").split(" ")
print(num)
请输入你的生日2015 08 17
['2015', '08', '17']

用户输入一行**以,**为分割数字

num = input("请输入你的生日").split(",")
print(num)
请输入你的生日wome,54,零零
['wome', '54', '零零']

很显然获得了一个字符串列表,我们是否可以用上面的知识将它转换为数字?我们来尝试一下

num = int(input("请输入你的生日").split(" "))
print(num)
    num = int(input("请输入你的生日").split(" "))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'

很显然不行,因为int()函数要求待转换的内容必须是字符串字符串对象数字,而不是一个列表。我们只能寻求其他方法——map()

map()函数

map()作用是将一个函数应用于一个可迭代对象(例如列表、元组等)的每个元素,并返回一个包含应用函数后结果的新的可迭代对象(通常是一个列表),提供了一种方便的方式来对可迭代对象中的每个元素进行同一操作,并返回处理后的结果。

语法如下:
map(function, iterable)
function:要应用于可迭代对象的函数。可以是内置函数、自定义函数或 lambda 函数。
iterable:可迭代对象,如列表、元组等。

我们将该函数应用于上述代码:

num = map(int, input("请输入你的生日").split(" "))
print(num)
请输入你的生日2015 08 17
<map object at 0x000001DFF1BEA620>

返回结果却不是我们希望的那般,这是因为需要注意的是,map() 函数会返回一个迭代器对象,所以我们需要使用 list() 函数将其转换为列表类型,方便打印和操作。
我们可以将其转换为列表list()之后在进行打印。

num = list(map(int, input("请输入你的生日").split(" ")))
print(num)
请输入你的生日2015 08 17
[2015, 8, 17]

将一行输入拆分多个部分存入不同的数据容器

如我们获得一行学生姓名和学科成绩的输入,将它存入姓名列表和成绩列表中

name, *line = input().split()
scores = list(map(int, line))
print(name)
print(scores)
张三 87 89 98
张三
[87, 89, 98]

注:
*line 是一个特殊的语法,用于将剩余部分作为列表存储在 line 变量中。 表示可变数量的位置参数,它将多个元素打包成一个元组或列表,这里它将拆分后的字符串的剩余部分作为一个列表存储在 line 中。

输出Output

直接输出具体内容

print(具体内容)

print(1)
print(True)
print("好的")
print(2+3)
print("长白轮转"+"十五秋")
1
True
好的
5
长白轮转十五秋

直接输出变量

输出一个变量
print(<变量名>)

n = 3
print(n)
name = '张三'
print(name)
list1 = {0, 'a', 8, '张三'}
print(list1)

输出多个变量
print(<变量名1>,<变量名2>,…)

print(n, name, list1)
3 张三 {0, 'a', '张三', 8}
name = "吴邪"
address = "河坊街西泠印社边上的吴山居"
print("我叫" + name + ",家住在" + address)
我叫吴邪,家住在河坊街西泠印社边上的吴山居

输出不变行

默认的print语句输出内容会自动变行
我们可以采用
print(语句, end=’ ')

print('张三')
print('李四')

print('张三', end=' ')
print('李四', end=' ')

张三
李四
张三 李四 

格式化输出

字符串格式化
在这里插入图片描述
多个变量占位,变量须用括号括起来(括号前加上%),并按占位的顺序填入

subject = "AI"
class_num = 57
avg_salary = 25641.25
message = "%s火爆学科,北京%d期,毕业平均工资%f" %(subject,class_num,avg_salary )
print(message)
AI火爆学科,北京57期,毕业平均工资25641.250000

精度控制
通过m.n控制数据的宽度和精度
m:控制宽度,要求是数字,设置宽度应该大于数字本身(补空格)
n:控制小数点精度,要求是数字,对小数进行四舍五入
eg: %5.2f %5d(不限制精度) %.2f(不限制宽度)

message = "%s火爆学科,北京%d期,毕业平均工资%.2f" %(subject, class_num, avg_salary)
print(message)
AI火爆学科,北京57期,毕业平均工资25641.25
快速格式化方法

不限数据类型,不做精度控制

formate()

formatted_string = "Text with {} placeholders".format(value1, value2, ...)

在这个基本语法中,{}是占位符,可以用来接收要填充的值。format()方法的参数会按照顺序依次填充到占位符中。

name = "Alice"
age = 25
message = "My name is {} and I'm {} years old.".format(name, age)
print(message)
#输出:My name is Alice and I'm 25 years old.

#可以指定要填充的占位符的位置```python
name = "Alice"
age = 25
message = "Hi, {1}! I heard you're {0} years old.".format(age, name)
print(message)
#输出:Hi, Alice! I heard you're 25 years old.

f "内容{变量} "

name = "吴邪"
address = "河坊街西泠印社边上的吴山居"
num = "0817"
print(f"我叫{name},家住在{address},门牌号是{num}")
print("1*1 的结果是:%d" % (1*1))
print(f"1*1 的结果是:{1*1}")
print("字符串在Python中的类型名是:%s" % type("字符"))

码字不易,给个👍~我们下一篇博客见!

才疏学浅,个人理解难免有错,欢迎指正。

### Python 字典的输入输出Python 中,字典是一种非常重要的内置数据结构,用于存储键值对。可以通过多种方式完成字典的输入输出。 #### 输入字典 当需要从外部获取一个字典时,通常会以字符串形式接收并将其转换为实际的字典对象。这可以通过 `eval()` 或者更安全的方式——`ast.literal_eval()` 实现[^1]: ```python import ast # 用户输入的是一个表示字典的字符串 input_str = input("请输入一个字典类型的字符串:") # 使用 ast.literal_eval 安全地解析字符串为字典 dict_obj = ast.literal_eval(input_str) print(dict_obj, type(dict_obj)) ``` 如果希望手动构建字典,则可以直接通过花括号 `{}` 创建或者利用字典推导式生成[^2]: ```python manual_dict = {"key1": "value1", "key2": "value2"} comprehension_dict = {f"key{i}": f"value{i}" for i in range(3)} ``` #### 输出字典 对于字典的输出,最常见的方式是直接打印其内容或将它序列化为 JSON 格式的字符串以便于传输或保存到文件中[^3]。 ##### 打印字典 简单地使用 `print()` 函数即可展示整个字典的内容: ```python example_dict = {'a': 1, 'b': 2} print(example_dict) # 输出: {'a': 1, 'b': 2} ``` ##### 序列化为JSON 为了与其他编程语言兼容或便于网络通信,可以借助 `json` 模块将字典转化为标准的 JSON 格式字符串: ```python import json data_dict = {"name": "Alice", "age": 25} # 将字典转成 JSON 字符串 json_string = json.dumps(data_dict, ensure_ascii=False) print(json_string) # 输出: {"name": "Alice", "age": 25} ``` 另外,在某些情况下可能还需要处理特殊字符的转义问题,比如双引号 `" "` 需要在字符串内部被正确表达出来[^2]: ```python escaped_output = '你好,\"小李\"!' raw_output = r'你好,"小李"!' print(escaped_output) # 输出带转义后的效果 print(raw_output) # 原始字符串不进行任何转义 ``` 以上就是关于 Python 中字典输入输出的主要方法介绍。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值