Python基础练习代码持续更新。。。。。。。

一、有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('语文')

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值