数字组合

题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析 遍历全部可能,把有重复的剃掉。

total=0
for i in range(1,5):for j in range(1,5):for k in range(1,5):if ((i!=j)and(j!=k)and(k!=i)):total+=1#美化打印的结果if (total%6==0):print(i,j,k)else:print(i,j,k,end="|")print(total)

1 2 3|1 2 4|1 3 2|1 3 4|1 4 2|1 4 3
2 1 3|2 1 4|2 3 1|2 3 4|2 4 1|2 4 3
3 1 2|3 1 4|3 2 1|3 2 4|3 4 1|3 4 2
4 1 2|4 1 3|4 2 1|4 2 3|4 3 1|4 3 2
24

内置模块排列方式`

import itertools
sum2=0
name=[]
a=[1,2,3,4]
for i in itertools.permutations(a,3):name.append(i)
print(name[:6])
print(name[7:13])
print(name[14:20])
print(name[20:])

[(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3)]
[(2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2)]
[(3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3)]
[(4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]

在itertools.permutations不在字符格式转化期间
美化只能用切片

四个任意的数字

题目 有四个任意的数字:能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析 遍历全部可能,把有重复的剃掉。

# 手动输入四个不同的整数,并添加到一个列表中
list1 = []
while len(list1) < 4:num = int(input('请依次输入第%d整数:' % (len(list1) + 1)))list1.append(num)# 开始排序
count = 0  # 计数器
for i in list1:for j in list1:for k in list1:if i != j and i != k and j != k:count += 1# 美化打印结果if count % 4 == 0: # 如果等于4,则不打印 | 符号,直接换行print('%d%d%d' % (i, j, k))else:print('%d%d%d' % (i, j, k), end='|')print('这样的数一个有%d个' % count)

请依次输入第1整数:4
请依次输入第2整数:5
请依次输入第3整数:6
请依次输入第4整数:1
456|451|465|461
415|416|546|541
564|561|514|516
645|641|654|651
614|615|145|146
154|156|164|165
这样的数一个有24

如果中间有相同过的会如何,

请依次输入第1整数:4
请依次输入第2整数:5
请依次输入第3整数:4
请依次输入第4整数:6
456|465|546|546
564|564|456|465
645|654|654|645
这样的数一个有12个

解释内置模块itertools.permutations
itertools.permutations格式

itertools.permutations(iterable[, r])

itertools.permutations通俗地讲,就是返回可迭代对象的所有数学全排列方式。
如果r未指定或为None,则r默认为可迭代对象的长度,并生成所有可能的全长度排列。

for i in itertools.permutations('ijig',3):print(i)

(‘i’, ‘j’, ‘i’)
(‘i’, ‘j’, ‘g’)
(‘i’, ‘i’, ‘j’)
(‘i’, ‘i’, ‘g’)
’‘’‘’‘’‘’‘’‘’‘’‘’

for i in itertools.permutations('ijig',):print(i)

(‘i’, ‘j’, ‘i’, ‘g’)
(‘i’, ‘j’, ‘g’, ‘i’)
(‘i’, ‘i’, ‘j’, ‘g’)
(‘i’, ‘i’, ‘g’, ‘j’)
‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘

个税计算

题目 企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
程序分析,分区间计算

# 填入公司的利润
profit=int(input("请输入公司的利润:"))
if profit<10:bonus=profit*0.1
elif 10<=profit<20:bonus=profit*0.1+(profit-10)*0.075
elif 20<=profit<40:bonus=profit*0.1+(profit-10)*0.075+(profit-20)*0.05
elif 40<=profit<60:bonus = profit * 0.1 + (profit - 10) * 0.075 + (profit - 20) * 0.05+(profit-40)*0.03
elif 60<=profit<100:bonus = profit * 0.1 + (profit - 10) * 0.075 + (profit - 20) * 0.05+(profit-40)*0.03+(profit-60)*0.015
else:bonus = profit * 0.1 + (profit - 10) * 0.075 + (profit - 20) * 0.05 + (profit - 40) * 0.03 + \(profit-60)*0.015+(profit-100)*0.01
print("你的奖金是:"+str(bonus)+"万!")

请输入公司的利润:40
你的奖金是:7.25万!

不一样的计算方法
可能不对

profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):if profit<=thresholds[i]:bonus+=profit*rates[i]profit=0breakelse:bonus+=thresholds[i]*rates[i]profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)

Show me the money: 500000
30500.0

完全平方数

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

for i in range(0,1000):             #寻找这个数for k in range(0,1000):if (i+100==k*k):            #判断这个数加上100为k的平方for n in range(0,10000):if (i+168==n*n):    #判断这个数加上168为n的平方print(i)

这个数为156

三数排序

题目 输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析 练练手就随便找个排序算法实现一下,偷懒就直接调函数。

list_1=[]
list_2=[]
while len(list_1)<3:num = int(input('请依次输入第%d整数:' % (len(list_1) + 1)))list_1.append(num)
if list_1[0]>=list_1[1]:list_2.append(list_1[1])list_1[1]=list_1[0]list_1[0]=list_2[0]
if list_1[1]>=list_1[2]:list_2.append(list_1[2])list_1[2] = list_1[1]list_1[1] = list_2[1]
for n in list_1:print(n)

请依次输入第1整数:7
请依次输入第2整数:2
请依次输入第3整数:8
2 7 8

第二种排列

raw=[]
for i in range(3):x=int(input('int%d: '%(i)))raw.append(x)for i in range(len(raw)):for j in range(i,len(raw)):if raw[i]>raw[j]:raw[i],raw[j]=raw[j],raw[i]
print(raw)

int0: 1
int1: 2
int2: 8
[1, 2, 8]

调用函数

raw2=[]
for i in range(3):x=int(input('int%d: '%(i)))raw2.append(x)
print(sorted(raw2))

函数sorted是对列表的临时排列
函数sort则是对列表的永久排序
函数reverse是倒着列表

这是一年的多少天

题目 输入某年某月某日,判断这一天是这一年的第几天?
程序分析 特殊情况,闰年时需考虑二月多加一天:

def year_1(self_1):"""定义函数判断是不是闰年"""return (self_1%400==0)or((self_1%4==0) and (self_1%100!=0))
month_1=[0,31,28,31,30,31,30,31,31,30,31,30]
"""month_1[0]=0是做填充作用,因为月份是重第一个月开始而month_1只有11个月的天数,是因为当道12月的时候就填入这个月的天数"""
month_day=0
year=int(input("请输入你要查询的年份:"))
month=int(input("请输入你要查询的月份:"))
day=int(input("请输入现在的天数:"))               #调用函数
if year_1(year):month_1[2]+=1
for i in range(month):month_day+=month_1[i]
print(day+month_day)

请输入你要查询的年份:2000
请输入你要查询的月份:12
请输入现在的天数:31
366

斐波那契数列

题目 斐波那契数列。
程序分析 斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就递归实现,图性能就用循环。

def Fibon(self_1):if self_1==1:return [0]if self_1==2:return [0,1]if self_1==3:return [0,1,1]name=[0,1,1]for i in range(1,self_1):name.append(name[i]+name[i+1])return name
print(Fibon(10))

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

寻找斐波那契数列的第n个数是

def Fibon(self_1):if self_1==1:return [0]if self_1==2:return [0,1]if self_1==3:return [0,1,1]name=[0,1,1]for i in range(1,self_1):name.append(name[i]+name[i+1])return name[self_1]
print(Fibon(10))

55

copy

题目 将一个列表的数据复制到另一个列表中。
程序分析 使用列表[:],拿不准可以调用copy模块。

import copy
a = [1,2,3,4,['a','b']]
b = a                  # 赋值
c = a[:]               # 浅拷贝
d = copy.copy(a)       # 浅拷贝
e = copy.deepcopy(a)   # 深拷贝
a.append(5)
a[4].append('c')
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)

a= [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
b= [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
c= [1, 2, 3, 4, [‘a’, ‘b’, ‘c’]]
d= [1, 2, 3, 4, [‘a’, ‘b’, ‘c’]]
e= [1, 2, 3, 4, [‘a’, ‘b’]]

  • 论述赋值,切片,浅拷贝,深拷贝的且别。转载外篇。

九九乘法表

题目 输出 9*9 乘法口诀表。
程序分析 分行与列考虑,共9行9列,i控制行,j控制列。

for i in range(1,10):for j in range(1,i+1):print('%d*%d=%2d' %(i,j,i*j),end='')print('')
1*1= 1|
2*1= 2|    2*2= 4|
3*1= 3|    3*2= 6|    3*3= 9|
4*1= 4|    4*2= 8|    4*3=12|    4*4=16|
5*1= 5|    5*2=10|    5*3=15|    5*4=20|    5*5=25|
6*1= 6|    6*2=12|    6*3=18|    6*4=24|    6*5=30|    6*6=36|
7*1= 7|    7*2=14|    7*3=21|    7*4=28|    7*5=35|    7*6=42|    7*7=49|
8*1= 8|    8*2=16|    8*3=24|    8*4=32|    8*5=40|    8*6=48|    8*7=56|    8*8=64|
9*1= 9|    9*2=18|    9*3=27|    9*4=36|    9*5=45|    9*6=54|    9*7=63|    9*8=72|    9*9=81|

九九乘法表倒着排序。

name=[1,2,3,4,5,6,7,8,9,]
for i in reversed(name):for j in range(1,i+1):print('%d*%d=%2d' %(i,j,i*j),end='|\t')print('')
9*1= 9| 9*2=18|    9*3=27|    9*4=36|    9*5=45|    9*6=54|    9*7=63|    9*8=72|    9*9=81|
8*1= 8|    8*2=16|    8*3=24|    8*4=32|    8*5=40|    8*6=48|    8*7=56|    8*8=64|
7*1= 7|    7*2=14|    7*3=21|    7*4=28|    7*5=35|    7*6=42|    7*7=49|
6*1= 6|    6*2=12|    6*3=18|    6*4=24|    6*5=30|    6*6=36|
5*1= 5|    5*2=10|    5*3=15|    5*4=20|    5*5=25|
4*1= 4|    4*2= 8|    4*3=12|    4*4=16|
3*1= 3|    3*2= 6|    3*3= 9|
2*1= 2|    2*2= 4|
1*1= 1|

暂停一秒输出

题目 暂停一秒输出。
程序分析 使用 time 模块的 sleep() 函数。

100到200的素数

判断101-200之间有多少个素数,并输出所有素数。
程序分析 判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.
素数的概念:
就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数或素数。

递归输出

题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
程序分析 递归真是蠢方法。

list_1=[]
name=[]
while len(list_1)<=4:num = int(input('请依次输入第%d整数:' % (len(list_1) + 1)))list_1.append(num)
print(list_1)
for i in reversed(list_1):name.append(i)
print(name)

请依次输入第1整数:88
请依次输入第2整数:222
请依次输入第3整数:7
请依次输入第4整数:12
请依次输入第5整数:44
[88, 222, 7, 12, 44]
[44, 12, 7, 222, 88]

调用函数

题目 练习函数调用。
程序分析 无。

def name(self_1):return self_1
n=name(7)
print(n)

7

设置输出颜色

题目 文本颜色设置。
程序分析 :字体规则
实现过程:
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)
书写格式:
开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
数值表示的参数含义:
常见开头格式:
\033[0m 默认字体正常显示,不高亮
\033[32;0m 红色字体正常显示
\033[1;32;40m 显示方式: 高亮 字体前景色:绿色 背景色:黑色
\033[0;31;46m 显示方式: 正常 字体前景色:红色 背景色:青色

实例:
  (1)print("\033[1;31;40m您输入的帐号或密码错误!\033[0m")
  上方代码的输出格式为:字体高亮,红色前景,黄色背景 PS:前景色也就是字体的颜色
  

(2)print("\033[0;31m%s\033[0m" % “输出红色字符”)
  #上方代码的输出格式为:字体默认,红色前景

class bcolors:HEADER = '\033[95m'     #紫色字体OKBLUE = '\033[94m'     #蓝色字体OKGREEN = '\033[92m'    #钱黄色字体WARNING = '\033[93m'    #深黄色字体FAIL = '\033[91m'       #浅红色字体ENDC = '\033[0m'        #结尾字符BOLD = '\033[1m'        #显示方式高亮UNDERLINE = '\033[4m'   #显示方式下划线
print('\033[0;31;40m'"警告的颜色字体?"'\033[0m')
print('\033[0;95;42m'"红烧小强强"'\033[0m')

完数

题目 一个数如果恰好等于它的因子之和(除了自身之外),这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。

result=[]
for i in range(1,1000):tmp=[]for k in range(1,i+1):if k<i:if not i%k:tmp.append(k)count=0for m in tmp:count=count+m     #i的全部因数(除了自身)之和等于iif count==i:result.append(i)else:continue
print(result)

[6, 28, 496]

高空抛物

题目 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
程序分析 无

high=100
total=100
for i in range(1,11):high/=2total+=high
print(high)
print('总长:',total)

0.09765625
总长: 199.902343

猴子偷桃

题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析 按规则反向推断:猴子有一个桃子,他偷来一个桃子,觉得不够又偷来了与手上等量的桃子,一共偷了9天。

peach=1
for i in range(9):peach=(peach+1)*2
print(peach+1)

1535

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了半个,第二天早上又将剩下半个的桃子吃掉,又多吃了一个。以后每天早上都吃了前一天剩下的半个零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析,倒着计算,重第十天计算到第一天

peach=[]
peach_1=0
peach_2=0
for i in reversed(range(1,11)):if i==10:peach_1=1name.append(peach_1)elif 2<=i<=9:peach_2=peach_2+1.5else:peach=(peach_1+peach_2)*2
print(peach+0.5)

26.5

数归档

题目 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析 用条件判断即可。

collect=[]
for i in range(1,11):name=input("请输入名字:")grade=int(input("输入分数:"))if grade>=90:grade="A"elif 60<=grade<=89:grade="B"else:grade="C"name_grade={name:grade}collect.append(name_grade)
print("这十个人的成绩:"+str(collect))

画菱形
题目 打印出如下图案(菱形):

    *************************
def draw(num):a="*"*(2*(4-num)+1)print(a.center(9,' '))if num!=1:draw(num-1)print(a.center(9,' '))
draw(4)

菱形失败,画三角形

for i in range(1,10):if i<=5:a="*"*iprint('\033[0;31;40m'+a.center(9,' ')+'\033[0m')else:a="*"*(2*(i-4)+1)print('\033[0;31;40m' +a.center(9,' ') +' \033[0m')
    *    **   ***   ****  *****  *****   *******
*********
***********

phyton题库+解析相关推荐

  1. 大唐发电厂计算机考试题,全国计算机等级考试上机考试与题库解析:一级B

    全国计算机等级考试上机考试与题库解析:一级B 语音 编辑 锁定 讨论 上传视频 <全国计算机等级考试上机考试与题库解析一级B>是2011年北京邮电大学出版社出版的图书.本书在研究历年上机真 ...

  2. OCP 11G 051题库解析汇总链接

    OCP 11G 051题库解析汇总链接   OCP 051题库 1 :  OCP-1Z0-051 第1题 CTAS语句建表注意事项  2 :  OCP-1Z0-051 第2题 视图的WITH CHEC ...

  3. 【OCP|052】OCP最新题库解析(052)--小麦苗解答版

    [OCP|052]OCP最新题库解析(052)--小麦苗解答版 OCP最新题库解析历史连接(052):http://mp.weixin.qq.com/s/bUgn4-uciSndji_pUbLZfA ...

  4. MySQL 8.0 OCP(1Z0-908)中文题库解析

    作者介绍:姚远,Oracle ACE(Oracle和MySQL数据库方向),华为云MVP,<MySQL 8.0运维与优化>的作者.中国第一个Oracle高可用大师,拥有包括 Oracle ...

  5. 计算机of二级考试技巧,计算机等级考试二级MSOfice题库解析及教程.doc

    计算机等级考试二级MSOfice题库解析及教程 办公软件高级应用(计算机二级辅导资料)- PAGE 20 -- PAGE 27 -教程目 录第1章 Word高级应用1.1 正文排版21.2 分节.目录 ...

  6. 计算机一级office题库哪个好,全国计算机等级考试上机考试与题库解析:一级MSOffice...

    全国计算机等级考试上机考试与题库解析:一级MSOffice 语音 编辑 锁定 讨论 上传视频 <全国计算机等级考试上机考试与题库解析:一级MS Office(2011版)>是为准备参加全国 ...

  7. 华为OD机试(21-40)老题库解析Java源码系列连载ing

    华为OD机试算法题新老题库练习及源码 老题库 21.字符串序列判定 22.最长的指定瑕疵度的元音子串 23.处理器问题 24.单向链表中间节点 25.字符串重新排列.字符串重新排序 26.完美走位 2 ...

  8. LeetCode 数据库题库解析之 175. 组合两个表

    文章目录 题目描述 题目解析 MySQL 实现 Oracle 实现 SQL Server 实现 知识扩展 内连接 左外连接 右外连接 全外连接 交叉连接 自然连接 自连接 半连接 反连接 大家好,我是 ...

  9. datacom-HCIP-831题库解析104题

    1. IS-IS协议视图下 ipv6 enable topology ipv6 的含义是? (单选题) A:SPF计算在IPv4.IPv6的拓扑中单独进行 B:不具备任何含义 C:不支持IPv6的SP ...

  10. OCP 11G 053题库解析汇总链接(1-200)

    Oracle OCP 11G 053(1-200)答案解析目录   V13.02版本,711题 File Version: 3.2,200题 Version: 5.4 1 http://blog.cs ...

最新文章

  1. 小米造车150天:烈火烹油第一枪
  2. 【深度学习笔记】Windows 下 pip 安装paddle.fluid
  3. 哈工大理论力学第八版电子版_校史上的这些天(37)| 和你一起在“岁月”中读懂哈工大...
  4. ANDROID:SHOWASACTION="NEVER"是做什么用的?
  5. 数据结构笔记(三)-- 链式实现顺序表
  6. Anylogic学习--------------智能体(可用于复杂装备系统建模)
  7. 关闭数字健康 android 魅族,魅族手机隐私模式开启关闭使用方法详解
  8. 台式计算机总是重启,电脑为什么老是自动重启?我的电脑经常自动重启!!
  9. 【软件测试基础理论知识】1.1.常见的软件开发模型之———瀑布模型、原型模型、快速原型模型
  10. notepad python 单步调试_用Notepad++ 调试 Python 及缩进问题 – 槑烎
  11. 服务器为什么要域名解析,DNS解析的过程是什么 为什么需要DNS解析域名为IP地址?...
  12. zencart如何更换模版
  13. 每日一坑:加载DLL失败:找不到指定模块
  14. html给页面整体添加左右边距_左右边距相对于页面宽度过大
  15. 天猫双十一红包口令玩法
  16. 解析自动休眠---实现自动关机
  17. linux系统查看系统配置
  18. 离散数学知识点【复试】
  19. 如何将WPS转Word
  20. java分层窗格_Swing拆分窗格控件JSplitPane使用详解

热门文章

  1. 大型网站架构“三高”(高并发、高可用、高性能)
  2. Qt5.9.6 vs2015 SQlite 数据库增删改查
  3. 二十四节气-秋分 | 文案、海报
  4. 基于股票大数据分析的Python入门实战(实践记录)(持续更新)
  5. PhysX碰撞检测之onContact和onTrigger
  6. 立项 ——VC下,打印机管理和维护
  7. 刘备是怎样“融资”创业的?
  8. java halt_Java Runtime halt()方法
  9. 【python爬虫】爬取链家二手房数据
  10. 麦吉尔 计算机科学学分,麦吉尔大学计算机