Python 输入函数 input函数,map函数

首先讲解以下map函数

一般用法为map(function,iterator)

意思是对可迭代对象iterator进行迭代使用function

对于返回类型,要么返回一个具有n个样本的可迭代容器,要么返回n个样本

def add(a):
    a+=1
    return a
b=[1,2]
c=map(add,b)#对b中每个元素进行add运算并返回一个迭代器
print(c,type(c))
for i in c:
    print(i, end=' ')
'''
输出
<map object at 0x000001580381AEE0> <class 'map'>
2 3 
'''

不仅可以返回迭代器,还可以这样写

def add(a):
    a+=1
    return a
b=[1,2]
c,d=map(add,b)#对b中每个元素进行add运算并返回一个迭代器
print(c,type(c),d,type(d))

 现在进行复杂点的操作,如果function需要的参数不止一个呢?

 我们来构造一个具有两个参数的函数add()来查看一下:

def add(a,b):
    return a+b
a=(1,2)
b=(3,4)
c,d=map(add,a,b)#a,b对应位置的元素执行add函数
print(c,d)#输出4 6
aa=[1,2]
bb=[3,4]
cc,dd=map(add,aa,bb)
print(cc,dd)#输出4 6

在升级一下:

def add(a,b):
    return a+b
a=(1,2,4)
b=(5,6,7)
c,d,e=map(add,a,b)#a,b对应位置的元素执行add函数
print(c,d,e)#输出6 8 11
aa=[1,2,4]
bb=[5,6,7]
cc,dd,ee=map(add,aa,bb)
print(cc,dd,ee)#输出6 8 11

lambda匿名函数以及将结果转为列表 

def add(x):
    return x**2			#计算x的平方

lists = range(11)       #创建包含 0-10 的列表
a = map(add,lists)      #计算 0-10 的平方,并映射
print(a)                # 返回一个迭代器:<map object at 0x0000025574F68F70>
print(list(a))          # 使用 list() 转换为列表。结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


# 使用lambda匿名函数的形式复现上面的代码会更简洁一些
print(list(map(lambda x:x**2,range(11))))   # 结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

单行输入

n=input()#默认返回字符串,input输入返回的就是字符串
print(n,type(n),len(n))
'''
输入:ww 2 rr
输出:ww 2 rr <class 'str'> 7
n的长度是7,中间的空格也是这个字符串的一部分,是一个整体的字符串
'''
n=input('请输入身高:')#注意,因为input返回的是字符串,所以这个数字是字符串类型
name=input("请输入姓名:")#有提示性语句的输入
print(n,type(n),name)
'''
请输入身高:165
请输入姓名:zjx
输出:165 <class 'str'> zjx
'''
n=int(input())#将输入转换为整型.注意此时只能输入一个数
print(n)
'''
输入:1 2 3会报错
'''
'''如果一行中有多个数据的话,
则需要使用split()进行切割。split()切割后返回一个列表'''
a = input().split() # split()默认以空格为分隔符
print(a)
'''输入为: 1 2 3 4 5
a = ['1', '2', '3', '4', '5'],注意输出的每个为字符'''
b=int(input().split())
print(b)
# 输入为:1,2,3,4,5
#会报错,input().split()返回的是一个列表
# 不能对整个列表使用int呀
b = input().split(',') # 以逗号为分隔符
# b = ['1', '2', '3', '4', '5']

多个输入

a = int(input()) # 单个转换
	  
# 输入为:1 2 3 4 5
b = input().split() # b = ['1', '2', '3', '4', '5']
c = [int(i) for i in b] # 使用列表进行批量转换 c = [1, 2, 3, 4, 5]
d = [int(i) for i in input().split()] # 当然可以一步倒位
a, b = input().split(" ")#输入以空格分隔
print(a,type(a),b)
'''
112 ww
输出:112 <class 'str'> ww
'''
a,b,c=eval(input())
#输入三个值(任何类型)中间由逗号分隔,注意输入字符串,需要打单(或双)引号
print(a,b,c)
'''
1,'ww',2
输出:1 ww 2
'''
input().strip().split()

input().strip().split(), strip()将输入的序列中首尾的空格去掉,split()方法可以将这个字符串,根据指定的字符分割,然后形成一个列表,比如这儿分割符就是空格。

n=input().strip().split()
print(n,type(n))
'''
12 w 3
['12', 'w', '3'] <class 'list'>
'''

 map(int, input().strip().split())

 这段代码的意思就是:将输入以空格作为分隔符,构成一个列表,然后遍历列表中每一个元素,每一个元素都用int函数处理一下

迭代器结果可以通过列表,元组,集合打印

a=map(int,input().split())
list(a)
[12, 13]
a=map(int,input().split())
tuple(a)
(12, 13)
a=map(int,input().split())
set(a)
{12, 13}
c =list(map(eval, input().split())) #输入三个值(任何类型)中间(空格)分隔
#eval返回数据本身的类型
print(c)
'''
12 'r' 3
输出:[12, 'r', 3]
'''

有多组输入数据,但没有具体的告诉你有多少组

while True:#多行输入,输入未指定个数的用例
    try:
        a = [int(i) for i in input().split()]
        print(a[0] + a[1])
    except:
        break
  • 输入一个整数,告诉我们接下来有多少组数据,然后在输入每组数据的具体值
  • tcase=int(input().strip())
    for case in range(tcase):
    	a,b=map(int,input().strip().split())
    
  • 有多组输入数据,没有具体的告诉你有多少组,但是题目却告诉你遇见什么结束
  • while True:
    	a,b=map(aint,input().strip().split())
    	if a==0 and b==0:
    		break
    

  • 这次的输入实现输入一个整数,告诉我们有多少行,在输入每一行。对于每一行的输入,有划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。
  • 
    tcase = int(input().strip())
    for case in range(tcase):
        data = list(map(int, input().strip().split()))
        n, array = data[0], data[1:]    
        sum = 0
        for i in range(n):
            sum += array[i]
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值