一、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i != j and i!=k and k != j:
print(i,j,k,end='|')
print('\n')
二、一个数如果恰好等于它的因子之和,这个数就称为"完数"。如:6=1+2+3
for i in range(1,1000):
s=0
for k in range(1,i):
if i%k==0:
s=s+k
if i==s:
print(i)
三、请编程实现一个投票统计程序,运行程序,分别输入“班长”,“学习委员”,“文化书记”,“纪律委员”,代表投给班长、学习委员、文化书记、纪律委员一票,输入“结束”终止投票。
分别算出票数最多是谁,和得票为零的班委。
# 初始化班委的票数为零,用字典储存
d = {'班长':0,'学习委员':0,'文化书记':0,'纪律委员':0}
i = 1
while i == 1:
str = input('请输入投票的班委:')
if str == '结束':
# 跳出循环
break
else:
ss = d.get(str)
# 输入班委不在字典中提示错误
if ss == None:
print('请输入正确的班委!!!')
else:
d[str] += 1
# 判断得票为零的学委
for key,value in d.items():
if value == 0:
print(key,'的票数为0')
# 对票数进行排序
d1 = sorted(d.items(),key=lambda x:x[1],reverse=True)
print(d1)
# 判断票数最多的学委
list = []
a = d1[0][1]
for i in range(len(d1)):
if d1[i][1] >= d1[0][1]:
list.append(d1[i][0])
print('票数最多的是:',list)
四、编程求出:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
# 导入模块
import math
for z in range(10000):
x = int(math.sqrt(100+z))
y = int(math.sqrt(268+z))
if (x*x == (100+z)) and (y*y == (z+268)):
print(z)
五、输入一个字符串判断其中英文字符、空格字符、数字、其他字符个多少个。
s = input('请输入一个字符串:')
# 初始化每个字符的个数
a = 0
b = 0
c = 0
d = 0
for i in s:
if i.isdigit():
a += 1
elif i.isspace():
b += 1
elif i.isalpha():
c += 1
else:
d += 1
print('英文=%d,空格=%d,数字=%d,其他字符=%d'%(c,b,a,d))
六、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标(下标即列表元素的索引) 的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)
import random
l1=[]
for i in range(20):
l1.append(random.randint(0,100))
print('随机列表:',l1)
for i in range(0,len(l1),2):
for u in range((i+2),len(l1),2):
# 防止下标越界
if i < (len(l1)-2):
if l1[i] < l1[u]:
l2 = l1[i]
l1[i] = l1[u]
l1[u] = l2
print('排序后:',l1)
七、输入某年某月某日,判断这一天是这一年的第几天?
all_day = 0
print('===请输入年份格式为,年/月/日===')
while True:
month = [31,28,31,30,31,30,31,31,30,31,30,31]
year = input(">>>")
y,m,d = year.split("/")
y = int(y)
m = int(m)
d = int(d)
if y%400 == 0 or y%4 == 0 and y%100 != 0:
month[1] = 29
if m>0 and m<=12:
if d>0 and d<=month[m-1]:
for i in month[0:m-1]:
all_day += i
all_day = all_day+d
else:
print("超出范围请重试")
else:
print("超出范围请重试")
break
else:
if m>0 and m<=12:
if d>0 and d<=month[m-1]:
for i in month[0:m-1]:
all_day += i
all_day = all_day+d
else:
print("超出范围请重试")
else:
print("超出范围请重试")
break
print('这是%s的第%s天'%(y,all_day))
八、实现100-200里面所有的质数字,打印这些质 数并且求出个数
# 空列表用于储存所有的质数
a = []
for i in range(100,201)
count = 0
for x in range(2,i-1)
if i%x == 0:
count += 1
if count == 0:
a.append(i)
print(a)
九、从键盘输入一行字符串,判断是否是回文数,例如:abcdcba,12321
# 方法一
str = input('请输入:')
str1 = list(reversed(str))
if list(str) == str1:
print('是回文')
else:
print('不是回文')
#方法二
s1 = input('请输入字符串:')
count = 0
for i in range(0,int(len(s1)/2)):
if s1[i] == s1[len(s1)-i-1]:
count = 1
else:
count = 0
if count == 1:
print('是回文')
else:
print('不是回文')
十、假设两粒骰子分别为A、B,用Python编程实现,输出所有满足A、B点数之和为 7 点时,A、B各自的点数情况
count = 0
print('序号'+'\t'+'A的点数'+'\t'+'B的点数'+'\t'+'点数和')
print('-------------------------------')
for i in range(1,7):
for x in range(1,7):
if x+i == 7:
count += 1
print(count,'\t \t',i,'\t\t',x,'\t\t',i+x)
十一、从score.txt文件中进行读取,用函数的形式完成下列读取学生的成绩,当输入主函数的参数给数学时,可以打印所有学生的数学成绩,并且可以进行升序排序
请完成一下操作。
score文档内容:
学生姓名 语文 数学 外语
张三 56 96 92
李四 90 56 90
王五 88 85 89
章六 77 88 99
注意:字符串之间的分隔符
方法一:
# 读取问价内容
f = open('score.txt','r',encoding='utf-8')
str1 = f.read()
print(str1)
# 将字符串分割存入列表
list = str1.split('\n')
print(list)
# 定义有参函数
def fun(ss):
# 空字典储存
d = {}
for i in range(len(list)):
str1 = list[i]
if ss == '数学':
strs = str1[8:10]
elif ss == '语文':
strs = str1[5:7]
elif ss == '外语':
strs = str1[11:13]
else:
print('输入错误')
exit(0)
print(str1[0:4], strs)
d[str1[0:4]] = strs
ll = sorted(d.items(), key=lambda x: x[1], reverse=False)
print('<<<<<<<<<<<<<<排序后>>>>>>>>>>>>>>>>>')
print(' '.join(ll[len(ll) - 1]))
for x in range(len(ll) - 1):
t1 = '\t'.join(ll[x])
print(t1)
qq = input('输入科目:')
fun(qq)
方法二:
f=open('score.txt','r',encoding='utf-8')
li=f.readlines()
print(li)
lt=[]
def main(str):
for i in li:
i=i.replace('\n','')
i=i.split('\t')
lt.append(i)
print(lt)
dic={}
for dex,i in enumerate(lt):
print('dex',dex,'i',i)
for index,item in enumerate(i):
print('dex2',index,'item',item)
if item==str:
d=index
if dex!=0:
dic[i[0]+' '+str+':']=i[d]
lis=sorted(dic.items(),key=lambda i:i[1])
print(lis)
main('语文')