美文网首页
python练习2

python练习2

作者: _Irving | 来源:发表于2022-06-09 17:03 被阅读0次
    1、编写一个程序,查找所有此类数字,它们可以被7整除,但不能是5的倍数(在2000和3200之间(均包括在内))。获得的数字应以逗号分隔的顺序打印在一行上。
    s=[]
    for i in range(2000,3201):
        if (i%7==0) and (i%5!=0):
            s.append(str(i))
    print(','.join(s))
    
    print(*(i for i in range(2000,3201) if (i%7==0) and (i%5!=0)),sep=',')
    
    2、编写一个程序,可以计算给定数字的阶乘,结果应以逗号分隔的顺序打印在一行上,假设向程序提供了以下输入:8然后,输出应为:40320
    n = int(input('输入阶乘的值:'))
    val = 1
    i = 1
    while i<=n:
        val=val*i
        i += 1
    print(val)
    
    n=int(input("输入阶乘的值:"))
    val=1
    for i in range(1,n+1):
        val=val*i
    print(val)
    
    from functools import reduce
    m=int(input("输入阶乘的值:"))
    val=reduce(lambda x,y:x*y,[i for i in range(1,m+1)])
    print(val)
    
    3、使用给定的整数n,编写程序以生成包含(i,ixi)的字典,该字典为1到n之间的整数(都包括在内)。然后程序应打印字典。假设向程序提供了以下输入:
    m=int(input("输入整数的值:"))
    val=dict(zip(range(1,m+1),[i*i for i in range(1,m+1)]))
    print(val)
    
    val1={i:i*i for i in range(1,m+1)}
    print(val1)
    
    val2=dict(enumerate([i*i for i in range(1,m+1)],1))
    print(val2)
    
    4、编写一个程序,根据给定的公式计算并打印该值:

    Q = [(2 *C * D)/ H]的平方根
    以下是C和H的固定值:
    C为50。H为30。
    D是变量,其值应以逗号分隔的顺序输入到您的程序中,例如,让我们假设以下逗号分隔的输入顺序被赋予了程序:

    from math import sqrt
    
    c,h=30,50
    def calc(index):
        return sqrt(2*c*index/h)
    
    print(*(str(round(calc(int(i)))) for i in (input("输入逗号分隔的数字:").split(','))),sep=",")
    
    mylist=input("输入逗号分隔的数字:").split(',')
    val=[str(round(calc(int(i)))) for i in mylist]
    print(','.join(val))
    
    def calc1(index):
        index=int(index)
        return str(int(sqrt(2*c*index/h)))
    
    mylist1=input("输入逗号分隔的数字:").split(',')
    
    val1=list(map(calc1,mylist1))
    print(','.join(val1))
    
    5、_编写一个程序,该程序将X,Y两位数字作为输入并生成一个二维数组。数组的第i行和第j列中的元素值应为i *j。

    注意:i = 0,1 …,X-1; j = 0,1,¡Y-1。假设将以下输入提供给程序:3,5
    然后,程序的输出应为:
    [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]

    import numpy as np
    x,y=map(int,input("输入两位逗号隔开的数字:").split(','))
    
    arr=np.fromfunction(lambda x,y:x*y,(x,y),dtype=int)
    print(arr)
    
    lst=[]
    for i in range(x):
        tmp=[]
        for j in range(y):
            tmp.append(i*j)
        lst.append(tmp)
    print(lst)
    
    lst1=[[i*j for j in range(y)] for i in range(x)]
    print(lst1)
    
    6、编写一个程序,该程序接受以逗号分隔的4位二进制数字序列作为输入,然后检查它们是否可被5整除。被5整除的数字将以逗号分隔的顺序打印。
    str = input("输入以逗号分隔的4位二进制数字序列:").split(',')
    str1 =list(filter(lambda x : int(x,2) % 5==0 ,str))
    print(str1)
    
    7、编写一个程序,查找所有介于1000和3000之间的数字(都包括在内),以使数字的每个数字均为偶数。获得的数字应以逗号分隔的顺序打印在一行上。
    def check(element):
        return all(ord(i)%2==0 for i in element)
    
    lst=[str(i) for i in range(1000,3001)]
    lst=list(filter(check,lst))
    print(','.join(lst))
    
    lst1=[str(i) for i in range(1000,3001)]
    lst1=list(filter(lambda i:all(ord(j)%2==0 for j in i),lst1))
    print(','.join(lst1))
    
    8、编写一个接受句子并计算字母和数字数量的程序。
    word=input()
    
    letter,digit=0,0
    for i in word:
        if i.isalpha():
            letter+=1
        if i.isnumeric():
            digit+=1
    print(f"LETTERS {letter}\n DIGITS {digit}")
    
    9、编写一个接受句子的程序,并计算大写字母和小写字母的数量。
    word = input()
    upper,lower = 0,0
    
    for i in word:
            lower+=i.islower()
            print(lower)
            upper+=i.isupper()
    
    print("UPPER CASE {0}\nLOWER CASE {1}".format(upper,lower))
    
    10、使用列表推导对列表中的每个奇数取平方。该列表由逗号分隔的数字序列输入。
    lst=[str(int(i)**2) for i in input(":").split(',') if int(i)%2]
    print(','.join(lst))
    
    11、网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码是否有效。

    以下是检查密码的标准:
    [az]之间至少1个字母
    [0-9]之间至少1个数字
    [AZ]之间至少1个字母
    [$#@]中的至少1个字符
    交易密码的最小长度:6
    交易密码的最大长度:12
    您的程序应接受逗号分隔的密码序列,并将根据上述条件进行检查。符合条件的密码将被打印,每个密码之间用逗号分隔。

    import re
    s=input(":").split(',')
    lst=[]
    
    for i in s:
        cnt=0
        cnt+=(6<=len(i) and len(i)<=12)
        cnt+=bool(re.search("[a-z]",i))
        cnt+=bool(re.search("[A-Z]",i))
        cnt+=bool(re.search("[0-9]",i))
        cnt+=bool(re.search("[@#$]",i))
        if cnt==5:  #如果只要求满足其三,就>3就可以了
            lst.append(i)
    
    print(",".join(lst))
    
    12、您需要编写一个程序来按升序对(名称,年龄,分数)元组进行排序,其中名称是字符串,年龄和分数是数字。元组由控制台输入。排序标准是:

    1:根据名称排序
    2:然后根据年龄排序
    3:然后按分数排序

    lst=[]
    while True:
        s=input("输入格式:姓名,年龄,分数:").split(',')
        if not s[0]:
            break
        lst.append(tuple(s))
    
    lst.sort(key=lambda x:(x[0],int(x[1]),int(x[2])))  #重点
    print(lst)
    
    13、机器人从原始点(0,0)开始在平面上移动。机器人可以按照给定的步骤向上,下,左和右移动。方向后的数字为步长。请编写一个程序,以计算一系列移动和原始点之后与当前位置的距离。如果距离是浮点数,则只需打印最接近的整数即可。
    from math import sqrt
    
    x,y=0,0
    
    while True:
        s=input("输入操作 距离:").split(' ')
        if len(s[0])==0:
            break
        if s[0] in ('UP','up'):
            y+=int(s[1])
        if s[0] in ('DOWN','down'):
            y-=int(s[1])
        if s[0] in ('LEFT','left'):
            x-=int(s[1])
        if s[0] in ('RIGHT','right'):
            x+=int(s[1])
    
    val=round(sqrt(x**2+y**2))
    print(x,y)
    print(val)
    
    14、编写一个程序来计算输入中单词的频率。在按字母数字顺序对键进行排序后,应输出输出。
    ss=input().split()
    word=sorted(set(ss)
    for i in word:
        print("{0}:{1}".format(i,ss.count(i)))
    
    ss=input().split()
    dict={}
    for i in ss:
        i=dict.setdefault(i,ss.count(i))
    dict=sorted(dict.items())
    for i in dict:
        print("%s:%d"%(i[0],i[1]))
    
    from collections import Counter
    
    ss=input().split()
    ss=Counter(ss)
    ss=sorted(ss.items())
    for i in ss:
        print("%s:%d" % (i[0], i[1]))
    

    相关文章

      网友评论

          本文标题:python练习2

          本文链接:https://www.haomeiwen.com/subject/pnqmmrtx.html