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


    首先讲解以下map函数

    一般用法为map(function,iterator)

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

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

    1. def add(a):
    2. a+=1
    3. return a
    4. b=[1,2]
    5. c=map(add,b)#对b中每个元素进行add运算并返回一个迭代器
    6. print(c,type(c))
    7. for i in c:
    8. print(i, end=' ')
    9. '''
    10. 输出
    11. 2 3
    12. '''

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

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

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

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

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

    在升级一下:

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

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

    1. def add(x):
    2. return x**2 #计算x的平方
    3. lists = range(11) #创建包含 0-10 的列表
    4. a = map(add,lists) #计算 0-10 的平方,并映射
    5. print(a) # 返回一个迭代器:
    6. print(list(a)) # 使用 list() 转换为列表。结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    7. # 使用lambda匿名函数的形式复现上面的代码会更简洁一些
    8. print(list(map(lambda x:x**2,range(11)))) # 结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    单行输入

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

    多个输入

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

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

    1. n=input().strip().split()
    2. print(n,type(n))
    3. '''
    4. 12 w 3
    5. ['12', 'w', '3']
    6. '''

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

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

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

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

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

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

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

  • 相关阅读:
    【异常检测】【PaDiM】论文简单梳理与代码实现
    康耐视深度学习ViDi-ViDi四大工具之一蓝色定位工具/Locate
    【附源码】Python计算机毕业设计七七美食汇
    统计学习---第一章
    【计算机网络笔记】什么是网络协议?
    【Ansible自动化运维实战】使用Ansible部署WordPress应用
    广度搜索图、树优化以及通用模板
    c++ qt 渐变
    调味品行业数据分析
    MySQL和Oracle数据库引擎
  • 原文地址:https://blog.csdn.net/qq_37891604/article/details/126731213