美文网首页
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]))

相关文章

  • 笨办法学C 练习2:用Make来代替Python

    练习2:用Make来代替Python 原文:Exercise 2: Make Is Your Python Now...

  • Python练习2

    把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中 分...

  • Python练习2

    Python练习----通过匹配提取符合要求的DataFrame的子集 import pandas as pd i...

  • python练习(2)

    python学习的第二周,这周学习继续学习python基础,主要是生成器、函数式编程、模块。部分练习如下: 下周将...

  • python练习2

    1、编写一个程序,查找所有此类数字,它们可以被7整除,但不能是5的倍数(在2000和3200之间(均包括在内))。...

  • Python-100 练习题 02

    练习题2 的网址: http://www.runoob.com/python/python-exercise-ex...

  • 2019-01-20 数据蛙第二周学习总结 Python入门 B

    本周完成:课程中视频及《Python从入门到实践》2-6章,Python练习完成5道。 练习题进度不足,MySQL...

  • 菜鸟编程学习(python‘++’--016)

    Python 练习实例25 Python 100例 题目:求1+2!+3!+...+20!的和。 程序分析:此程序...

  • python编程练习2

    题目:明明的随机数原题目的表述有点复杂,我理解下来就是有一组随机数,对其去重之后按升序排序,自己写了下面的代码,进...

  • [python]练习笔记2

    filter和列表生成器的区别1.列表生成器接受的是序列,string、tuple、range、set、list、...

网友评论

      本文标题:python练习2

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