【Python】map(),split(),strip(),input()函数的两种输入方式详细解析

在Python编程中,处理用户输入是不可或缺的一部分。在做一些简单的OJ题时,分别是在处理数值计算或需要读取多个数据的情况下,想着如何高效、准确地获取用户输入显得尤为重要。分别为以下两种,本文会详细解释分析每种情况输入使用的方法和区别:

'''
第一种,接受一行数据,数据间以空格分格,分别赋值给两个变量
输入:3 7
把3的值赋值给a,把7赋值给b
'''
a,b = list(map(int,input().split()))


'''
第二种,接受两行数据,第一行数据赋值给a,第二行数据赋值给b
输入:
3
7
把3的值赋值给a,把7赋值给b
'''
a,b = list(int(input().strip()) for _ in range(2))

【第一种方法】输入一行数据,分别取出里面的数据

'''
第一种,接受一行数据,数据间以空格分格,分别赋值给两个变量
输入:3 7
把3的值赋值给a,把7赋值给b
'''
a,b = list(map(int,input().split()))

1.input()——首先要说明input()方法会接受用户输入的数据,默认保存为字符串,所以我们如果要接受数据一般都是进行强制类型转换,以接受一个整数为例:

#a = input()
#a = int(a)
a = int(input())

#input()内还可以接受字符串参数,用于在控制台输出的提示信息
a = int(input('请输入一个数字:'))
#运行后控制台会显示:请输入一个数字:(用户在此后输入)

2.split()——split()方法用于将字符串按照指定的分隔符(默认为空格)分割成一个列表

words = "a b c"
words.split()
#会返回 ['a', 'b', 'c']

3.map()——会根据提供的函数对制定序列做映射

我们本次输入样例中的map(int,...)即是上述eg5.

4.list()——用于将可迭代对象(如迭代器、元组等)转换为列表。

list_numbers = list(map(int, ["1", "2", "3"]))
#会返回 [1, 2, 3]

整合以上代码:

a, b = list(map(int, input().split()))
'''
这行代码首先通过 input() 获取用户输入
然后通过 split() 将输入字符串按空格分割成列表
接着使用 map(int, ...) 将每个字符串元素转换为整数
最后通过 list() 将结果转换为列表
并通过元组解包直接赋值给 a 和 b
'''

【第二种方法】接受两行数据,第一行数据赋值给a,第二行数据赋值给b

'''
第二种,接受两行数据,第一行数据赋值给a,第二行数据赋值给b
输入:
3
7
把3的值赋值给a,把7赋值给b
'''
a,b = list(int(input().strip()) for _ in range(2))

1.strip()——默认用于移除字符串两端的空白字符(包括空格、换行符\n等),是一个有些特殊的方法,接受参数的话只会移除两端的指定字符,被处理数据中间的指定字符无法被去除

words='###shdvdesha###djwdqwdqu###'
words.strip('###')
#输入:'shdvdesha###djwdqwdqu'

2.[ ... for _  in range(2)]:列表推导式

  • 列表推导式是Python中一种简洁的构建列表的方式。
  • for _ in range(2) 表示循环两次,_ 是占位符,表示循环变量在循环体中不会被使用。
  • 每次循环都会执行 list(input().strip()),从而读取并处理两行输入。

整合以上代码:

a,b = list(int(input().strip()) for _ in range(2))
'''
这行代码通过列表推导式读取两行输入
每行输入都经过 strip() 去除首尾空白字符
然后通过 split() 分割成列表
最终,列表推导式生成一个包含两个列表的列表
并通过元组解包分别赋值给 a 和 b。
'''

总结:

  • 第一种方式简洁高效,适合一次性读取并转换多个数值输入。
  • 第二种方式灵活性强,适合需要逐行读取和处理输入的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值