Python3中实现一行输入多个数字并进行赋值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27283619/article/details/88832064


参考学习后给出两个解决办法。

1. input()和str.split()

首先input()函数返回的是一个字符串,如果你需要的不是数字,而是赋值字符串的话,你可以这样写:a,b,c = input().split()
具体解释如下

>>> a = input()   # input()返回的是字符串
121332
>>> a
'121332'  # 返回的是字符串
# 所以要多个赋值的话,需要对字符串进行分割,并返回列表,再进行赋值
# 我们采用str.split()方法进行分割,返回列表,如果不给出str.split()参数,默认是空格切割
>>> f = 'abcdabcdabcd'
>>> f.split('c')  # 以字符‘c'为切割标志,返回一个列表
['ab', 'dab', 'dab', 'd']
# 最后就是多重赋值了,a,b,c = ['1','2','3'] 相当于 a = '1'; b = '2'; c = '3'
>>> a,b,c = input().split()
1 2 3 
>>> print(a,b,c)
1 2 3

2. map(fun,seq)和列表推导式

接下来解决我们的问题,要变为数字赋值,解决方案也比较简单,就是把字符串变为int。
这里给出两种方法:

方法一:利用map(fun,seq)函数(推荐)

a,b,c = map(int, input().split())
map(fun,seq)方法简单的说就是用fun这个功能函数去依次作用于序列seq中的每个元素,然后返回一个可迭代对象。

>>> a,b,c = map(int, input().split())
1 2 3
>>> print(a,b,c)
1 2 3

方法二:利用列表推导式

a, b,c = [int(x) for x in input().split()]
简单的解释这个列表推导式就是把input().split()返回的列表中的每一个元素通过遍历,依次用int()函数处理。

>>> a, b,c = [int(x) for x in input().split()]
1 2 3
>>> print(a,b,c)
1 2 3

注意以上的int,int()都可以用其他需要的数据类型替代,如float,float()等。

猜你喜欢

转载自blog.csdn.net/qq_27283619/article/details/88832064
今日推荐