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]))
网友评论