【程序 1】 题目:有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? count=0for a in range(1,5): for b in range(1,5): for c in range(1,5): if a!=b and a!=c and b!=c: print('%d%d%d'%(a,b,c)) count+=1print('一共有%s个'%count) 【程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) : 低于或等于 10 万元时,奖金可提 10%; 高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可提成 7.5%; 20 万到40 万之间时,高于 20 万元的部分,可提成 5%; 40 万到60 万之间时,高于 40 万元的部分,可提成 3%; 60 万到100 万之间时,高于 60 万元的部分,可提成 1.5%, 高于 100 万元时, 超过 100 万元的部分按 1%提成, 从键盘输入当月利润 I ,求应发放奖金总数? mon=float(input('请输入利润金额:'))mm=0.0#奖金if mon>0 and mon<=10: mm=mon*0.1elif mon<20: mm=1+(mon-10)*0.075elif mon<40: mm=1+0.75+(mon-20)*0.05elif mon<60: mm=1+0.75+1+(mon-40)*0.03elif mon<=100: mm=1+0.75+1+1.2+(mon-60)+0.015elif mon>100: mm=1+0.75+1+1.2+(mon-100)*0.01else: print('输入错误')print('您的奖金为:%s'%mm)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
【程序 3】 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数, 请问该数是多少? i=1while 1: if (i+100)**0.5%1==0 and (i+168)**0.5%1==0: print(i) break; i+=1 【程序 4】 题目:输入某年某月某日,判断这一天是这一年的第几天? # 思路:先判断是否为闰年,这关系到 2 月份的天数。# 之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。dat = input('请输入某年某月某日,格式为 yyyy-mm-dd :')y = int(dat[0:4]) #获取年份m = int(dat[5:7]) #获取月份d = int(dat[8:]) #获取日ly = Falseif y%100 == 0: #若年份能被100整除 if y%400 == 0: #且能被400整除 ly = True #则是闰年 else: ly = Falseelif y%4 == 0: #其它情况下,若能被4整除 ly = True #则为闰年else: ly = Falseif ly == True: #若为闰年,则2月份有29天 ms = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]else: ms = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]days = 0for i in range(1, 13): #从1到12逐一判断,以确定月份 if i == m: for j in range(i-1): #确定月份i之后,则将ms列表中的前i-1项相加 days += ms[j] print('%s是该年份的第%s天。' % (dat, (days + d))) #最后再加上“日”,即是答案# 方法二import datetimey = int(input('请输入4位数字的年份:')) #获取年份m = int(input('请输入月份:')) #获取月份d = int(input('请输入是哪一天:')) #获取“日”targetDay = datetime.date(y, m, d) #将输入的日期格式化成标准的日期print(targetDay - datetime.date(targetDay.year-1, 12, 31)) #减去上一年最后一天,可得解# 方法三import datetimey = int(input('请输入4位数字的年份:')) #获取年份m = int(input('请输入月份:')) #获取月份d = int(input('请输入是哪一天:')) #获取“日”targetDay = datetime.date(y, m, d) #将输入的日期格式化成标准的日期dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) #减去上一年最后一天print('%s是%s年的第%s天。'% (targetDay, y, dayCount.days))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
【程序 5】 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 a=int(input('请输入A的值:'))b=int(input('请输入B的值:'))c=int(input('请输入C的值:'))if a>b: a,b=b,aif a>c: a,c=c,aif b>c: b,c=c,bprint(a,b,c) 【程序 6】 题目:用*号输出字母 C 的图案。 def printC(): print(' ***** ') print(' ** * ') print(' ** ') print(' ** ') print(' ** * ') print(' ***** ')printC()
【程序 7】 题目:输出特殊图案,请在 c 环境中运行,看一看, Very Beautiful! a=176b=219print('%c%c%c%c%c'%(b,a,a,a,b))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(a,a,b,a,a))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(b,a,a,a,b)) 【程序 8】 题目:输出 9*9 口诀表。 for i in range(1,10): for j in range(1,i+1): print(f'{j}*{i}={i*j}',end=' ') print()
【程序 9】 题目:要求输出国际象棋棋盘。 for i in range(8): for j in range(8): if((i + j) % 2 == 0): print(chr(219)*2,end='') #因为要连续打印一行,所以不能使用默认的print函数 else: print(' ',end='') print('') 【程序 10】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 #看不懂题
【程序 11】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到 第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? while True: try: i = eval(input('请输入月份:')) if type(i) == int and i <= 24: if i == 1 or i == 2: print('有2只兔子') break else: f1 = 1 f2 = 1 for f in range(3, i+1): f2, f1 =f1, f1 + f2 print('%d' % (f1*2)) break else: print('请输入大于0的正整数') except: print('您输入的是字符非法,请重新输入:') continue - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
【程序 12】 题目:判断 101-200 之间有多少个素数,并输出所有素数。 l=[ ]for i in range(101,200): for j in range(2,i-1): if i % j==0: break else: l.append(i)print(l)print('总数为:%d'%len(l))
【程序 13】 题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立 方和等于该数本身。例如: 153 是一个“水仙花数”,因为 153=1 的三次方+5的三次方 +3的三次方。 for i in range(100,1000): a=int(i/100) b=int((i-(a*100))/10) c=int(i%10) if i==(a**3+b**3+c**3): print(i) 【程序 14】 题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2* 3 * 3 * 5 。 #将一个正整数分解质因数。例如:输入 90, 打印出 90=2* 3 * 3 * 5 。a=int(input('请输入一个数:'))l=[]i=2print(a,'=',end='')if a<1: print('输入数字错误.')else: while 1: if a%i==0: print(i,'*',end='') l.append(i) a=a//i i=2 elif i==a-1: print(i+1) l.append(i+1) break else: i+=1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
【程序 15】 题目:利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A 表示,60-89 分 之间的用 B 表示,60 分以下的用 C表示。 a=int(input('请输入您的成绩:'))if a>=90 and a<=100: print('A')elif a>60: print('B')elif a>0: print('C')else: print('输出错误') 【程序 17】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 s=input('请输入一个字符串:')dic={'letter':0,'integer':0,'space':0,'other':0}for i in s: if i > 'a' and i < 'z' or i > 'A' and i < 'Z': dic['letter'] += 1 elif i in '0123456789': dic['integer'] += 1 elif i == ' ': dic['space'] += 1 else: dic['other'] += 1print('统计字符串:',dic)print(dic)for i in dic: print('%s='%i,dic[i])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
【程序 18】 题目:求 s=a + aa + aaa + aaaa + aa…a的值,其中 a 是一个数字。例如2+22+222+2222+22222(此时,共有 5 个数相加) ,几个数相加有键盘控制。 a=int(input('请输入基数:'))b=int(input('请输入个数:'))sum=0for i in range(b): sum+=a a=a+a*10print(sum) 【程序 19】 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3。编 程找出 1000 以内的所有完数。 for i in range(1,1001): sum = 0 l=[] for m in range(1,i): if i%m==0 and i!=m: sum+=m l.append(m) if sum==i: print(i,'its factors are',l) l=[]
【程序 20】 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10 次落地时,共经过多少米?第 10 次反弹多高? a=100sum=100for i in range(1,10): sum+=a a/=2print(sum) 【程序 21】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一 天剩下的一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘 了多少。 dl=1df=0for i in range(10): df = 2 * (dl + 1) dl = dfprint('第一天摘了%d个桃子:',df)
【程序 22】 题目:两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已 抽签决定比赛名单。 有人向队员打听比赛的名单。 a 说他不和 x 比,c 说他不和 x,z 比, 请编程序找出三队赛手的名单。 import itertoolsfor i in itertools.permutations('xyz'): if i[0] != 'x' and i[2] != 'x' and i[2] != 'z': print('a vs %s, b vs %s, c vs %s' % (i[0], i[1], i[2])) 【程序 23】 题目:打印出如下图案(菱形) nu = 1 # 开始值k = 2 # 变量值while nu >= 0: print(int((7 - nu) / 2) * ' ' + '*' * nu) nu += k if nu == 7: k = -k
【程序 24】 题目:有一分数序列: 2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13… 求出这个数列的前 20 项 之和。 m=1n=2sum=0for i in range(20): sum+=n/m k=n n+=m m=kprint(sum) 【程序 25】 题目:求 1+2!+3!+…+20! 的和 def num(n): if n==1: return 1 return n*num(n-1)sum=0for i in range(1,5): sum+=num(i)print(sum)
【程序 26】 题目:利用递归方法求 5! 。 def num(a): if a==1: return 1 return a*num(a-1)print(num(5)) 【程序 27】 题目:利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。 string =input('请输入一个字符串 :')def f(x): if x == -1: #当变量的长度是-1时,返回 return '' else: #否则返回字符串的位置向后移1位,直到变量的长度为-1 return string[x] + f(x-1)print(f(len(string)- 1))
【程序 28】 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。 问第 4 个人岁 数,他说比第 3 个人大 2 岁。 问第三个人,又说比第 2 人大两岁。 问第 2 个人,说比第1个人大两岁。 最后问第一个人,他说是 10 岁。请问第五个人多大? def age(s): if s==1: return 2 else: return 2+age(s-1)print(age(4)+10) 【程序 29】 题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 def ben(num): if num//10000!=0: print('输入错误') else: while num!=0: n=num%10 l.append(n) num//=10num=int(input('请输入一个不多于 5 位的正整数:'))l=[]ben(num)print(l)
【程序 30】 题目:一个数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位 与千位相同。 def hui_wen(s): # 基线条件 if len(s) < 2 : # 字符串的长度小于2,则字符串一定是回文 return True elif s[0] != s[-1]: # 第一个字符和最后一个字符不相等,不是回文字符串 return False # 递归条件 return hui_wen(s[1:-1])print(hui_wen('abcdefgfedcba')) 【程序 31】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 w={'m':'Monday', 'tu':'Tuesday', 'w':'Wednesday', 'th':'Thursday', 'f':'Firday', 'sa':'Saturday', 'su':'Sunday', 't':'Tuesday/Thursday', 's':'Saturday/Sunday' }a=input('请输入首字母或者2个字母:')if a in w.keys(): print(w[a])else: print('没有此星期')
【程序 32】 题目:Press any key to change color 【程序 33】 题目:学习 gotoxy() 与clrscr() 函数。 略
【程序 34】 题目:练习函数调用 def hanshu(): print('调用函数')hanshu() 【程序 35】 题目:文本颜色设置 开头部分: \033[显示方式;前景色;背景色m + 结尾部分:\033[0m 注意: 开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。 对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。 数值表示的参数含义: **显示方式: ** 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显) 前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色) 背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色) 常见开头格式: \033[0m 默认字体正常显示,不高亮 \033[32;0m 红色字体正常显示 \033[1;32;40m 显示方式: 高亮 字体前景色:绿色 背景色:黑色 \033[0;31;46m 显示方式: 正常 字体前景色:红色 背景色:青色 print('\033[1;31;40m您输入的账号或密码错误!\033[0m')
【程序 36】 题目:求 100 之内的素数 import mathfor i in range(1,101): k=int(math.sqrt(i)) for j in range(2,i): if i%j==0: break if j>k: print(i) break 【程序 37】 题目:对 10 个数进行排序 l=[12,34,62,41,74,45,25,74,26,73]l.sort()print(l)
【程序 38】 题目:求一个 3*3 矩阵对角线元素之和 sum=0n=[ [1,2,3], [2,3,4], [3,4,5]]for i in range(3): sum+=n[i][i]print(sum) 【程序 39】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 l=[12,25,26,34,41,45,62,73,74]m=44for i in range(1,len(l)): if m<l[i]: l.insert(i,m) breakprint(l)
【程序 40】 题目:将一个数组逆序输出。 l=[12,34,62,41,74,45,25,74,26,73]for i in range(1,len(l)+1): print(l[-i],end=' ')
|