目      录

实例001:数字组合

实例002:完全平方

实例003:三数排序

实例004:斐波那契I

实例005:斐波那契II

实例006:九九乘法

实例007:饲养兔子

实例008:判断素数

实例009:水仙花数

实例010:复读相加

实例011:猴子偷桃

实例012:比赛对手

实例013:反向输出I

实例014:反向输出II

实例015:回文数字

实例016:完美对称

实例017:整数求和

实例018:计算成绩

实例019:今晚吃啥

实例020:计算极差

实例021:欢迎同学

实例022:打破循环

实例023:交换变量

实例024:交换位置

实例025:制做函数

实例026:求未知数

实例027:字符求和

实例028:首母大写

实例029:整数平方

实例030:判断整数

实例031:字母去重

实例032:最大是谁

实例033:百元百鸡

实例034:数字交换

实例035:随机号码

实例036:联系方式

实例037:谁是最佳

实例038:谁未参加

实例039:寻找中位

实例040:两数之和

实例041:分发糖果

实例042:增长武力

实例043:冠军次数

实例044:合并信息

实例045:字母游戏

实例046:制作门牌

实例047:反转句子

实例048:恢复字母

实例049:反转数字

实例050:进制转换

实例051:公约公倍

实例052:分解质因

实例053:寻找完数

实例054:阶乘求和

实例055:名片管理


实例001:数字组合

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

num = 0
for 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(a, b, c)num += 1
print('组成无重复三位数数字{}个'.format(num))

实例002:完全平方

题目:有一个1-100的整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

方法一
import math
for i in range(1, 100):x = int(math.sqrt(i + 100))y = int(math.sqrt(i + 100 + 168))if x ** 2 == i + 100 and  y ** 2 == i + 100 + 168:print(i)
方法二
for i in range(1, 100):x = int((i + 100) ** 0.5)y = int((i + 100 + 168) ** 0.5)if x ** 2 == i + 100 and y ** 2 == i + 100 + 168:print(i)

实例003:三数排序

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

方法一
x = int(input("请输入第一个数, x: "))
y = int(input("请输入第一个数, y: "))
z = int(input("请输入第一个数, z: "))
if x > y:x, y = y, x
if x > z:x, z = z, x
if y > z:y, z = z, y
print(x, y, z)
方法二
a = input("请输入三个数字中间用英文逗号分隔: ")
b = a.split(',')
for x in range(len(b)):b[x] = int(b[x])
b.sort()
for y in b:print(' '.join(str(y)), end=' ')

实例004:斐波那契I

题目:有一组数字1,1,2,3,5,8......,请找出规律用代码实现并打印输出。

a, b = 1, 0
for i in range(10):a, b = b, b + aprint(b)

实例005:斐波那契II

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

a, b, c, d = 2, 1, 0, 0
for i in range(20):c = a / bd = round(d + c, 2)a, b = a + b, a
print('前20项之和为{}'.format(d))

实例006:九九乘法

题目:输出 9*9 乘法口诀表。

方法一
for x in range(1, 10):for y in range(1, x + 1):print('{} * {} = {}'.format(y, x, x * y), end='\t')print()
方法二
x = 0
while x < 9:x += 1y = 0while y < x:y += 1print('{} * {} = {}'.format(y, x, x * y), end='\t')print()

实例007养兔子

题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,如兔子都不死,请问一年内兔子每月总数为多少?

a, b = 1, 0
for i in range(1, 13):a, b = b, b + aprint('第{}月兔子总数是{}只。'.format(i, b * 2))

实例008判断素数

题目:判断100-200之间有多少个素数,并输出所有素数。

num = 0
for x in range(100, 201):for y in range(2, x):if x % y == 0:breakelse:print(x)num +=1
print('100-200之间共有{}个素数'.format(num))

实例009:水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1**3+5**3+3**3。

for i in range(100, 1000):x = i // 100y = i // 10 % 10z = i % 10if x ** 3 + y ** 3 + z ** 3 ==i:print(i)

实例010:复读相加

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

a = int(input('请您输入一个正整数:'))
b = int(input('请您输入几个数相加:'))
c = 0
d = []
for i in range(b):c += a * 10 ** id.append(c)
print(sum(d))

实例011:猴子偷桃

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

s = 1
for i in range(9, 0, -1):s = (s + 1) * 2
print('猴子第{}天摘桃子个数为{}'.format(i, s))

实例012:比赛对手

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请你打印出比赛对战名单。

paly1 = ['a', 'b', 'c']
paly2 = ['x', 'y', 'z']
paly3 = []
for m in paly1:for n in paly2:if m + n != 'ax' and m + n != 'cx' and m + n != 'cz':paly3.append(m + n)
for i in paly3:print('比赛名单为:甲队 {} VS 乙队 {} '.format(i[0], i[1]))

实例013:反向输出I

题目:给一个不多于5位的正整数。
要求:1、求它是几位数;2、逆序打印出各位数字。

num = input('请您输入一个正整数:')
num = num[::-1]
print('你输入的是{}位数,它的反向数字是{}'.format(len(num), num))

实例014:反向输出II

题目:按相反的顺序输出列表的值。

方法一
list = [1,2,3,4,5]
list.reverse()
print(list)
方法二
list = [1,2,3,4,5]
list = list[::-1]
print(list)

实例015:回文数

题目:一个5位数,判断是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

x = int(input('请您输入一个五位整数:'))
if x >= 0:y = int(str(x)[::-1])if x == y:print(True)else:print(False)
else:print(False)

实例016:完美对称

题目:“完全对称日”又被称为“回文日”。在用八位数字表示日期时,左右读数都是一致。
例如:2021年12月02日,请你找出2000-3000年之间的“回文日”。

for i in range(2000, 3000):x = str(i)[::-1]y = x[:2]z = x[-2:]if (1 <= int(y) <= 12) and (1 <= int(z) <= 30):print('{}年{}月{}日'.format(i, y, z))

实例017整数求和

题目:统计 1 到 100 之和。

num = 0
for i in range(1, 101):num += i
print(num)

实例018:计算成绩

题目:手动输入考试人数和考试成绩,请计算这次考试的最高分、最低分和平均分。

number = int(input('请你输入考试人数:'))
ls = []
for i in range(number):score = int(input('请你输入考试分数:'))ls.append(score)
print('考试最高成绩:{}'.format(max(ls)))
print('考试最低成绩:{}'.format(min(ls)))
print('考试平均成绩:{}'.format(round(sum(ls)/len(ls),2)))

实例019:今晚吃啥

题目:相信很多同学都有吃饭选择困难,请编写程序根据预算金额输出可选食物。

food = {'小火锅': 80,'牛肉汉堡': 32,'日式拉面': 24,'披萨': 36,'石锅拌饭': 20,'兰州拉面': 18,'蛋炒饭': 12,'螺蛳粉': 22,'小馄饨': 7
}
mon = int(input('请您输入今晚预算:'))
if mon < 7:print('预算不足,喝凉白开减肥吧?')
else:print('今晚可以吃的有:')for i in food:if food[i] <= mon:print(i)

实例020:计算极差

题目:请你根据成绩单计算出每个人的成绩极差,所谓极差就是最高成绩和最低成绩的差值。

scores = [
    {
        '姓名': '雯雯',
        '成绩': {'语文': 95, '数学': 100, '英语': 93}
    },
    {
        '姓名': '闻闻',
        '成绩': {'语文': 92, '数学': 98, '英语': 97}
    },
    {
        '姓名': '贝贝',
        '成绩': {'语文': 96, '数学': 96, '英语': 92}
    }
]

scores = [{'姓名': '雯雯','成绩': {'语文': 95, '数学': 100, '英语': 93}},{'姓名': '闻闻','成绩': {'语文': 92, '数学': 98, '英语': 97}},{'姓名': '贝贝','成绩': {'语文': 96, '数学': 96, '英语': 92}}
]
for i in scores:x = i['成绩']b = []for y in x:b.append(x[y])c = max(b) - min(b)print('{}同学成绩的极差是:{}'.format(i['姓名'], c))

实例021:欢迎同学

题目:请你根据班级编号,打印欢迎xx新同学xx!。

staff = {
    'KK-01A-023': '小新',
    'KK-01A-024': '正南',
    'KK-01B-034': '妮妮',
    'KK-01B-035': '阿呆',
    'KK-01C-006': '风间'
}

deps = {
    '01A': '樱桃班',
    '01B': '玫瑰班',
    '01C': '樱花班',
}

staff = {'KK-01A-023': '小新','KK-01A-024': '正南','KK-01B-034': '妮妮','KK-01B-035': '阿呆','KK-01C-006': '风间'
}deps = {'01A': '向日葵','01B': '玫瑰班','01C': '樱花班',
}for x in deps:for  y in staff:if x == y[3:6]:print('欢迎{}新同学{}!'.format(deps[x],staff[y]))

实例022:打破循环

题目:求输入数字的平方,如果平方运算后大于 100 则退出,否则将平方数插入列表。

ls = []
while True:num = int(input('请您输入一个正整数:'))if num **2 > 100:breakelse:ls.append(num**2)
print(ls)

实例023:交换变量

题目:两个变量值用函数互换。

def num(x, y):a, b = x, yprint('调换前a={},b={}'.format(a,b))a, b = b, aprint('调换后a={},b={}'.format(a, b))
num(10, 20)

实例024:交换位置

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

list = [3, 2, 5, 7, 8, 1, 6]
x = max(list)
y = min(list)
list[list.index(x)], list[0] = list[0], x
list[list.index(y)], list[-1] = list[-1], y
print(list)

实例025做函数

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n。

n = int(input('请您输入一个正整数:'))
def num(x):s = 0if x % 2 == 0:for i in range(2, x + 1, 2):s = round(s + 1 / i, 2)else:for i in range(1, x + 1, 2):s = round(s + 1 / i, 2)return s
print(num(n))

实例026:求未知数

题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

for i in range(10, 100):if len(str(809 * i)) == 4 and len(str(8 * i)) == 2 and len(str(9 * i)) == 3:print('神秘两位数字是{}:'.format(i))print('809*??结果为{}:'.format(809 * i))

实例027字符求和

题目:从键盘上输入的若干个用英文逗号分隔的整数,计算所有输入整数的和并输出。

例如输入1,2,3返回6

n = input('请输入用英文逗号分隔的若干个整数')
nums = n.split(',')
s = 0
for i in nums:s += int(i)
print(s)

实例028首母大写

题目:将列表 list1 中的所有单词的首字母都转换成大写并打印。

list1 = ['apple', 'banana']
for i in range(len(list1)):list1[i] = list1[i].capitalize() #写为list1[i].title()也是可以的
print(list1)

实例029整数平方

题目:写一个程序,功能是从键盘上获得用户输入的正整数,并输出该正整数的反转数(123 的反转数是 321)的平方。如果输入的是非正整数,则输出“不符合要求”。

num = input('请您输入一个正整数:')
if int(num) > 0:num = num[::-1]num = int(num) ** 2print(num)
else:print('不符合要求')

实例030判断整数

题目:编写函数判断输入的字符串是否是整数形式字符串,如果是则输出 True,不是则输出 False。输入123 返回True ,输入-123、a123返回False。

方法一
a = input('请您输入一个字符串:')
print(True if a.isnumeric() == True else False)
方法二
a = input('请您输入一个字符串:')
try:if int(a)>0:print(True)else:print(False)
except:print(False)

实例031字母去重

题目:定义函数接受一个字符串作为参数,返回去重后的字符串;函数体内必须使用字典处理字符串;调用函数,对字符串进行去重,并打印结果。例如将 'AaaBbb' 变成 'AaBb'。

def str1(s):dict1 = {}for i in s:dict1[i] = 0str2 = "".join(dict1.keys())return str2print(str1('AaaBbb'))

实例032最大是谁

题目:编写一个程序返回字典中年龄最大的人是谁?

dict = {'雯雯': 18, '桔桔': 23, '贝贝': 20}
list = []
for x,y in dict.items():list.append(y)
z = max(list)
for i in dict:if dict[i]==z:print('年龄最大的是:{}'.format(i))

实例033百元百鸡

题目:雯雯要有一百元买一百只鸡,公鸡5元/只,母鸡4元/只,小鸡1元/3只,请您编写程序求出100元可以买多少只公鸡,多少母鸡,多少小鸡数量加起来刚好100只。

for x in range(1,100):for y in range(1,100):z = 100 -x-yif (5*x+4*y+z/3==100):print(x,y,z)

实例034:数字交换

题目:请你将列表内相邻两个数字进行交换。例如ls = [2,1,4,3] 返回列表ls = [1,2,3,4]

a = [2,1,4,3,6,5,8,7,10,9,12,11]
b = a[1::2]
c = a[0::2]
d = []
for i in  list(zip(b,c)):d.append(i[0])d.append(i[1])
print(d)

实例035:随机号码

题目:请您编写一个随机双色球号码程序。

import random
while True:a = random.sample(range(1,34),6)a.sort()b = str(random.randint(1,16))for i in range(len(a)):a[i]=str(a[i])print('随机双色球号码是:')print('红球: {}'.format( ' '.join(a)))print('篮球: {}'.format( b))c = input('是否继续随机号码:1.y或Y 继续 2.n或N退出')if c=='n' or c=='N':break

实例036:联系方式

题目:有两个班级信息表class1和class2,包含人员手机号码、QQ号码及人员微信信息表WX。
1.请你将两个班级信息进行合并,并将WX内每个人微信号码加入对应人员信息表内;
例如 '小新': [13913000001, 1819122001,'xx9907'],如果WX内没有微信号,微信号为手机号码;
2.将小新手机号码修改为13913000006;
3.可提供查询服务,输入人名打印对应人员信息表,如果人员不存在打印"不好意思哦!没有查询到xx同学的联系方式"。

class1 = {
    '小新': [13913000001, 1819122001],
    '小亮': [13913000002, 1819122002],
    '小刚': [13913000003, 1819122003]
}

class2 = {
    '大刘': [13914000001, 1819123001],
    '大王': [13914000002, 1819123002],
    '大张': [13914000003, 1819123003]
}
WX = {
    '小新':'xx9907',
    '小刚':'gang1004',
    '大王':'jack_w',
    '大刘':'liu666'

class1 = {'小新': [13913000001, 1819122001],'小亮': [13913000002, 1819122002],'小刚': [13913000003, 1819122003]
}class2 = {'大刘': [13914000001, 1819123001],'大王': [13914000002, 1819123002],'大张': [13914000003, 1819123003]
}
class1.update(class2)
WX = {'小新': 'xx9907','小刚': 'gang1004','大王': 'jack_w','大刘': 'liu666'
}for x in WX:if x in class1:class1[x].append(WX[x])for y in class1:if y not in WX:class1[y].append(class1[y][0])class1['小新'][0] = 13913000006name = input('请您输入需要查询人员姓名:')
if name in class1:print('{}同学的个人信息是:手机号码:{}、QQ号码:{}、微信号码:{}'.format(name, class1[name][0], class1[name][1], class1[name][2]))
else:print('不好意思哦!没有查询到{}同学的联系方式'.format(name))

实例037:谁是最佳

题目:6名同学参加比赛,请你找出最佳好声音,去掉最高和最低分,由高到低打印选手名字。

good_voice = {
    '雯雯':[90,94,97,86,85,89,88,85],
    '闻闻':[91,91,92,98,90,96,90,95],
    '贝贝':[96,86,97,96,87,86,86,96],
    '桔桔':[95,95,94,93,97,98,99,95],
    '壮壮':[95,87,94,94,93,99,96,97],
    '林林':[89,97,91,95,89,94,97,92]
}

good_voice = {'雯雯':[90,94,97,86,85,89,88,85],'闻闻':[91,91,92,98,90,96,90,95],'贝贝':[96,86,97,96,87,86,86,96],'桔桔':[95,95,94,93,97,98,99,95],'壮壮':[95,87,94,94,93,99,96,97],'林林':[89,97,91,95,89,94,97,92]
}average = {}
for x in good_voice:y = round((sum(good_voice[x])-max(good_voice[x])-min(good_voice[x]))/6,2)average[x]=y
rank = dict(sorted(average.items(),key=lambda c:c[1],reverse=True))
print('本次比赛排名为:')
for n in rank:print('选手{}-平均分:{}'.format(n,rank[n]))

实例038:谁未参加

题目:班级共有25名同学,班级打算举办一次摸底考试,有的同学参加一门,有的同学参加两门,有的同学参加三门,还有的同学干脆一门都没有参加,请你找出多少人未参加本次考试?哪些同学分别参加一、二、三门考试?

test = {
    '语文': ['李  雷', '韩梅梅', '王晓刚', '陈  静', '方  向', '雯  雯'],
    '数学': ['李  然', '李芳芳', '刘小贝', '方  向', '孙一航', '俞小曼'],
    '英语': ['陈  静', '方  向', '刘小贝', '韩梅梅', '施小冉', '雯  雯']

}

test = {'语文': ['李  雷', '韩梅梅', '王晓刚', '陈  静', '方  向', '雯  雯'],'数学': ['李  然', '李芳芳', '刘小贝', '方  向', '孙一航', '俞小曼'],'英语': ['陈  静', '方  向', '刘小贝', '韩梅梅', '施小冉', '雯  雯']
}
course = {}
for x in test:for y in test[x]:if y in course:course[y] = course[y] + 1else:course[y] = 1
a = []
b = []
c = []
count = tuple(sorted(course.items(),key=lambda x:x[1]))
print('全部同学有{}人参加考试,有{}人没有参加考试。'.format(len(course),25-len(course)))
for z in count:if z[1]==1:a.append(z[0])elif z[1]==2:b.append(z[0])else:c.append(z[0])
print('参加一门考试的同学是:{}'.format('、'.join(a)))
print('参加二门考试的同学是:{}'.format('、'.join(b)))
print('参加三门考试的同学是:{}'.format('、'.join(c)))

实例039:寻找中位

题目:请你定义一个函数返回两个列表合并后的中位数。

例如ls = [1,2,3]返回2,ls = [1,2,3,4]则返回(2+3)/2=2.5

def median(nums1, nums2):num = (nums1 + nums2)num.sort()if len(num) % 2 == 0:x1 = num[int(len(num) / 2) - 1]x2 = num[int(len(num) / 2)]return (x1 + x2) / 2else:return num[int(len(num) / 2)]

实例040:两数之和

题目:给定一个整数列表 nums和一个整数目标值 target,请你在该列表中找出和为目标值target的那两个整数,并返回它们的数组下标。
例如输入:nums = [2,7,8], target = 9 输出:[0,1]  nums = [3,3,8], target = 6 输出:[0,1]

def twoSum(nums, target):for x in range(len(nums)):for y in range(x + 1, len(nums)):if nums[x] + nums[y] == target:print([x, y])twoSum([2, 7, 8], 9)
twoSum([1, 4, 3, 3, 2, 5], 6)

实例041:分发糖果

题目:有一个糖果盒子里有若干块糖果,
每人2块分余1块,每人3块刚好分完,
每人4块分余1块,每人5块分余1块,
每人6块分余3块,每人7块刚好分完,
每人8块分余1块,每人9块刚好分完。
请问盒子里最少有多少块糖果?

a = 0
while True:if a % 2 == 1 and a % 3 == 0 and a % 4 == 1 and a % 5 == 1 and a % 6 == 3 and a % 7 == 0 and a % 8 == 1 and a % 9 == 0:breaka += 1
print(a)'''
是不是有很多小伙伴会按上面方法每个列出来求。细心的小伙伴会发现 2、4、8 余1,3 和 9余0,
也就是 2 和 3 的 n 次方得到余数都是一样的,又发现题目中 5 和 7 的余数也分别为 1 和 0,
那么 5 和 8、7 和 9 最小公倍数的余数也应该是 1 和 0,那么代码是不是就可以简写为
'''while True:if a % 6 == 3 and a % 40 == 1 and a % 63 == 0:breaka += 1
print(a)

实例042:增长武力

题目:路飞的初始武力值为1,
如果勤于练功,每天武力值相比前一天增长1%,
如果疏于练功,每天武力值相比前一天减少1%,
一年练功计划,前5天每天练功,然后休息2天,
接下来再练5天休2天如此往复,
请你计算一年后路飞的武力值是多少?
(一年按365天计算,结果保留两位小数)

a = 1
for i in range(1, 366):if i % 6 == 0 or i % 7 == 0:a = a - a * 0.01else:a = a + a * 0.01
print('一年后路飞的武力值是:{}'.format(round(a, 2)))

实例043:冠军次数

题目:请你根据NBA冠军球队信息表,找出获得3次及3次以上的球队并打印球队名和冠军次数。

champion = {
    '1947': '勇士队', '1948': '子弹队', '1949': '湖人队', '1950': '湖人队', '1951': '皇家队', '1952': '湖人队', '1953': '湖人队',
    '1954': '湖人队', '1955': '民族队', '1956': '勇士队', '1957': '凯尔特人队', '1958': '鹰队', '1959': '凯尔特人队',
    '1960': '凯尔特人队', '1961': '凯尔特人队', '1962': '凯尔特人队', '1963': '凯尔特人队', '1964': '凯尔特人队', '1965': '凯尔特人队',
    '1966': '凯尔特人队', '1967': '76人队', '1968': '凯尔特人队', '1969': '凯尔特人队', '1970': '尼克斯队', '1971': '雄鹿队',
    '1972': '湖人队', '1973': '尼克斯队', '1974': '凯尔特人队', '1975': '勇士队', '1976': '凯尔特人队', '1977': '开拓者队',
    '1978': '子弹队', '1979': '超音速队', '1980': '湖人队', '1981': '凯尔特人队', '1982': '湖人队', '1983': '76人队',
    '1984': '凯尔特人队', '1985': '湖人队', '1986': '凯尔特人队', '1987': '湖人队', '1988': '湖人队', '1989': '活塞队', '1990': '活塞队',
    '1991': '公牛队', '1992': '公牛队', '1993': '公牛队', '1994': '火箭队', '1995': '火箭队', '1996': '公牛队', '1997': '公牛队',
    '1998': '公牛队', '1999': '马刺队', '2000': '湖人队', '2001': '湖人队', '2002': '湖人队', '2003': '马刺队', '2004': '活塞队',
    '2005': '马刺队', '2006': '热火队', '2007': '马刺队', '2008': '凯尔特人队', '2009': '湖人队', '2010': '湖人队', '2011': '小牛队',
    '2012': '热火队', '2013': '热火队', '2014': '马刺队', '2015': '勇士队', '2016': '骑士队', '2017': '勇士队', '2018': '勇士队',
    '2019': '猛龙队', '2020': '湖人队'
}

champion = {'1947': '勇士队', '1948': '子弹队', '1949': '湖人队', '1950': '湖人队', '1951': '皇家队', '1952': '湖人队', '1953': '湖人队','1954': '湖人队', '1955': '民族队', '1956': '勇士队', '1957': '凯尔特人队', '1958': '鹰队', '1959': '凯尔特人队','1960': '凯尔特人队', '1961': '凯尔特人队', '1962': '凯尔特人队', '1963': '凯尔特人队', '1964': '凯尔特人队', '1965': '凯尔特人队','1966': '凯尔特人队', '1967': '76人队', '1968': '凯尔特人队', '1969': '凯尔特人队', '1970': '尼克斯队', '1971': '雄鹿队','1972': '湖人队', '1973': '尼克斯队', '1974': '凯尔特人队', '1975': '勇士队', '1976': '凯尔特人队', '1977': '开拓者队','1978': '子弹队', '1979': '超音速队', '1980': '湖人队', '1981': '凯尔特人队', '1982': '湖人队', '1983': '76人队','1984': '凯尔特人队', '1985': '湖人队', '1986': '凯尔特人队', '1987': '湖人队', '1988': '湖人队', '1989': '活塞队', '1990': '活塞队','1991': '公牛队', '1992': '公牛队', '1993': '公牛队', '1994': '火箭队', '1995': '火箭队', '1996': '公牛队', '1997': '公牛队','1998': '公牛队', '1999': '马刺队', '2000': '湖人队', '2001': '湖人队', '2002': '湖人队', '2003': '马刺队', '2004': '活塞队','2005': '马刺队', '2006': '热火队', '2007': '马刺队', '2008': '凯尔特人队', '2009': '湖人队', '2010': '湖人队', '2011': '小牛队','2012': '热火队', '2013': '热火队', '2014': '马刺队', '2015': '勇士队', '2016': '骑士队', '2017': '勇士队', '2018': '勇士队','2019': '猛龙队', '2020': '湖人队'
}
champion_count = {}
for i in champion:if champion[i] in champion_count:champion_count[champion[i]]+=1else:champion_count[champion[i]] = 1for x in champion_count:if champion_count[x]>=3:print('{}队获得{}个总冠军'.format(x,champion_count[x]))

实例044:合并信息

题目:有ls1和ls2两个列表,请你将ls2列表内成绩加入到ls1每个人的信息表里。

ls1 = [
  {'name': '康康', 'student_id': 'sd0001', 'age': 20},
  {'name': '小新', 'student_id': 'sd0002', 'age': 21},
  {'name': '大熊', 'student_id': 'sd0003', 'age': 19},
  {'name': '妮妮', 'student_id': 'sd0004', 'age': 20}
  ]

ls2 = [
  {'student_id': 'sd0003', 'math': 97},
  {'student_id': 'sd0001', 'math': 95},
  {'student_id': 'sd0004', 'math': 90},
  {'student_id': 'sd0002', 'math': 86}
  ]

ls1 = [{'name': '康康', 'student_id': 'sd0001', 'age': 20},{'name': '小新', 'student_id': 'sd0002', 'age': 21},{'name': '大熊', 'student_id': 'sd0003', 'age': 19},{'name': '妮妮', 'student_id': 'sd0004', 'age': 20}]ls2 = [{'student_id': 'sd0003', 'math': 97},{'student_id': 'sd0001', 'math': 95},{'student_id': 'sd0004', 'math': 90},{'student_id': 'sd0002', 'math': 86}]
for x in ls1:for y in ls2:if  x['student_id']==y['student_id']:x['math']=y['math']
print(ls1)

实例045:字母游戏

题目:请你根据输入词汇中的字母得出总分数。各个字母分数如下:
1 分:A, E, I, L, N, O, R, S, T, U
2 分:D, G
3 分:B, C, M, P
4 分:F, H, V, W, Y
5 分:K
8 分:J, X
10 分:Q, Z
大小写字母得分相同。比如,如果参加者举出单词 apple,那就得到 1 + 3 + 3 + 1 + 1 = 9 分。
你能写一个程序,计算单词的分数吗?
要求:
提示参加者手动输入 10 个字母以内的单词;
如果单词超过 10 个字母,就打印“单词太长了!”
如果输入的字符中有非字母,则计 0 分,比如 x-box 中的连字符记 0 分。
计算单词的得分,并打印“你的得分是XX分!

dict1 = {'AEILNORSTU': 1,'DG': 2,'BCMP': 3,'FHVWY': 4,'K': 5,'JX': 8,'QZ': 10
}
dict_sum = 0
name = input('请您输入一个10个字母以内的单词:')
if len(name) > 10:print('单词太长了!')
else:for x in name:for y in dict1:if x.upper() in y:dict_sum += dict1[y]else:dict_sum += 0print('你的得分是{}分'.format(dict_sum))

实例046:制作门牌

题目:雯雯要为一条街的住户制作门牌号。
这条街一共有 2021 位住户,门牌号从 1 到 2021 编号。
雯雯制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字
符粘贴到门牌上,例如门牌 1018 需要依次粘贴字符 1、0、1、8,即需要 1 个
字符 0,2 个字符 1,1 个字符 8。
请问要制作所有的 1 到 2021 号门牌,总共需要多少个字符 2?

num = 0
for i in range(1, 2022):x = str(i).count('2')num += x
print('制作2021个门牌号共需要{}个字符2'.format(num))

实例047:反转句子

题目:请你将下面两句话反转输出打印。例如'Hello Python' 打印输出'Python Hello '。

str1 = 'Hello Python'
str2 = 'It is a happy day'

str1 = 'Hello Python'
str2 = 'It is a happy day'def sentence_reverse(x):a = x.split(' ')a.reverse()b = ' '.join(a)print(b)
sentence_reverse(str1)
sentence_reverse(str2)

实例048:恢复字母

题目:请你将下面打乱的26个英文字母按顺序排序,并返回他的小写字母。
例如:Aa Bb Cc
letters = 'SMQLTRBZVHPOJIFWDCEYXGNUKA'

letters = 'SMQLTRBZVHPOJIFWDCEYXGNUKA'
ls = []
for i in letters:ls.append(i+i.lower())
ls.sort()
print(ls)

实例049:反转数字

题目:定义一个函数输入一个数字,返回这个数字的反转数。例如:123返回321 -123返回-321。

def reverse(x):x = str(x)if x[0] == '-':y = int('-' + x[1:][::-1])else:y = int(x[::-1])return yprint(reverse(123))
print(reverse(-123))

实例050:进制转换

题目:请你不利用进制函数完成10进制转2进制、8进制、16进制。

10进制转2进制
num = 123
bi = ''
while True:if num == 0:breakelse:num, rem = num // 2, num % 2bi = bi + str(rem)
bi = bi[::-1]
print('0b' + bi)10进制转8进制
num = 123
oc = ''
while True:if num == 0:breakelse:num, rem = num // 8, num % 8oc = oc + str(rem)
oc = oc[::-1]
print('0o' + oc)10进制转16进制
num = 123
he = ''
dic = {'10': 'a', '11': 'b', '12': 'c', '13': 'd', '14': 'e', '15': 'f'}
while True:if num == 0:breakelse:num, rem = num // 16, num % 16if str(rem) in dic:he = he + dic[str(rem)]else:he = he + str(rem)
he = he[::-1]
print('0x' + he)

实例051:公约公倍

题目:请你输入两个整数,求这两个数字的最大公约数和最小公倍数。

number1 = int(input('请您第一个整数::'))
number2 = int(input('请您第二个整数::'))
number = [number1, number2]
number.sort()convention = []
for x in range(1, number[0] + 1):if number1 % x == 0 and number2 % x == 0:convention.append(x)
print('数字{}和{}最大公约数是:{}。'.format(number1, number2, convention[-1]))common_multiple = []
if number[1] % number[0] == 0:common_multiple.append(number[1])
else:for x in range(1, number1 + 1):for y in range(1, number2 + 1):if number1 * x == number2 * y:common_multiple.append(number1 * x)
if common_multiple:print('数字{}和{}最小公倍数数:{}。'.format(number1, number2, common_multiple[0]))
else:print('数字{}和{}最小公倍数数:{}。'.format(number1, number2, number1 * number2))

实例052:分解质因

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

n = int(input('请您输入一个正整数:'))
number = n
prime_number = []
prime_factor = []for x in range(2, number + 1):for y in range(2, x):if x % y == 0:breakelse:prime_number.append(x)while True:for z in range(2, int(number) + 1):if number % z == 0 and z in prime_number:prime_factor.append(z)number = number / zif number == 1:break
prime_factor.sort()
c = [str(i) for i in prime_factor]
print('{} = {}'.format(n, ' * '.join(c)))

实例053:寻找完数

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数。

number = int(input('请您输入一个正整数范围:'))
for x in range(1, number):prime_factor = []for y in range(1, x):if x % y == 0:prime_factor.append(y)if sum(prime_factor) == x:print('{} = {}'.format(x, ' + '.join([str(i) for i in prime_factor])))

实例054:阶乘求和

题目:求1+2!+3!+...+20!的和。

number = int(input('请您输入阶乘项数:'))
factorial = []
for x in range(1, number + 1):a = 1for y in range(1, x + 1):a *= yfactorial.append(a)
print('前{}项阶乘和是:{}'.format(number, sum(factorial)))

实例055:名片管理

题目:请你编写一个名片管理系统,要求具备增加人员,删除人员,修改人员,查询人员,系统退出五个功能。

mpglq = {'闻闻': [18, 12300000001],'雯雯': [21, 12300000002]
}
while True:mp = input('请您选择操作内容(1.添加名片 2.删除名片 3.修改名片 4.查询名片 5.退出系统):')if mp == '1':name = input('请您输入姓名:')age = input('请您输入年龄:')tel = input('请您输入电话:')mpglq[name] = [age, tel]elif mp == '2':name = input('请您选择要删除人员姓名:')mpglq.pop(name)elif mp == '3':xx = input('请您选择需要修改的信息(1.姓名 2.年龄 3.电话):')if xx == '1':name = input('请您输入需要修改人员姓名:')new_name = input('请您输入修改人员新的姓名:')mpglq[new_name] = mpglq[name]mpglq.pop(name)elif xx == '2':name = input('请您输入需要修改人员姓名:')new_age = input('请您输入修改人员新的年龄:')mpglq[name][0] = new_ageelif xx == '3':name = input('请您输入需要修改人员姓名:')new_tel = input('请您输入修改人员新的电话:')mpglq[name][1] = new_telelif mp == '4':name = input('请您输入需要查询人员姓名:')nr = input('请您输入查询人员内容(1.年龄 2.电话 3.年龄和电话):')if nr == '1':print('{}的年龄是{}'.format(name, mpglq[name][0]))elif nr == '2':print('{}的电话是{}'.format(name, mpglq[name][1]))elif nr == '3':print('{}的年龄是{}、电话是{}'.format(name, mpglq[name][0], mpglq[name][1]))elif mp == '5':break
print(mpglq)

Python 基础练习题相关推荐

  1. 这些Python基础练习题你会几个?

    在人工智能大火的当今,Python 作为人工智能时代的首选语言已经越来越收到追捧:但是许多非科班.零基础的小伙伴常常苦于没有合适的入门 Python 的教程而感到苦恼:本人是一名资深Python开发, ...

  2. python基础练习题:简单有趣#32:创建字谜【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:简单有趣#32:创建字谜[难度:1级]: 任务 现在给你两个字符串S和长度相同的T,由大写英文字母.你的任务是找到获得一些anagram的串T从字符串s需要"更换操作 ...

  3. python基础练习题:Covfefe【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:Covfefe[难度:1级]: Covfefe 你给出的字符串.你必须用'covfefe但替换的单词(S)coverage,如果你没有找到字符串中的单词'coverage,你必 ...

  4. Python基础练习题:杂乱无章的页面列表【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    Python基础练习题:杂乱无章的页面列表[难度:1级]: 你得到了一本古老的书,不幸的是有几页错误的位置,幸运的是你的计算机有一个从"1"到"n"的顺序的每个 ...

  5. python基础练习题:棋盘【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:棋盘[难度:1级]: 编写打印N行M列下列规则棋盘的程序: 左上角单元格必须是一个星号(*) 任何细胞接触(左,右,上,下)有星号的小区必须是一个点(.) 任何细胞接触(左,右 ...

  6. python基础练习题与期末复习总结

    本文是python入门练习题,为大家总结了python入门的最基础知识同时也是最常用的知识以及相应的题目,大家可以用于练习python,也适合用于python期末复习哦! 输出由任意字符串堆积的等腰三 ...

  7. Python基础练习题,你会吗?

    1.如content=input("输入内容:")用户输入 5+9+6 +12 +13然后进行计算 content=input("请输入需要的内容:") lis ...

  8. 23道Python基础练习题附答案

    1.Python和Java.PHP.C.C#.C++等其他语言的对比? (1)C语言 C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但 ...

  9. 50 道 Python 基础练习题(附答案详解)

    作者:Amo Xiang https://blog.csdn.net/xw1680/article/details/103546693 1.两个变量的交换 # -*- coding: utf-8 -* ...

  10. python基础练习题(一)答案版

    本章呢,是小编将自己入门遇到的一些python题,分享了出来.程序答案也是我自己编写的.可以放心,已经运行验证啦,是可以完成题目目标的.如果对于我写的程序代码,有疑问或者有最优解,大家也可以在评论区里 ...

最新文章

  1. 可穿戴医疗设备火爆背后的困境
  2. 实例变量的访问及数据封装
  3. java生成tiff_在Java中读取和写出TIFF图像
  4. SYSENTER、SYSEXIT—快速系统调用
  5. matlab路面,赛道道路路况分析问题 matlab高手进下
  6. layui选项卡嵌套选项卡_在ProtoPie中使用嵌套组件构建选项卡栏
  7. Attention模型:我的注意力跟你们人类不一样
  8. Qt使用QPainter绘图的缩放问题
  9. ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations
  10. 5G加持!刘作虎确认一加7 Pro:屏幕成本是普通旗舰2倍
  11. Android ListView 下拉刷新 上拉更多[实例]
  12. Python之文本去重(基础版)
  13. 深度学习训练模型的硬件条件(点评)
  14. oracle只有dbf文件能不能恢复,Oracle 误删DBF文件恢复
  15. 浪潮云服务器安装win7系统,WIN7旗舰版操作系统中浪潮ERP_GS5.2安装说明.doc
  16. 股市崩盘时,手中的股票期权 option 是如何让你倾家荡产的
  17. STM32工程文件结构详解
  18. 好用的录音软件排行 有哪些电脑录音工具
  19. 3000字告诉你如何渡过程序员菜鸟时期
  20. mysql判断题题库_MySQL数据库考试试题及答案

热门文章

  1. android11主题,十一专题 - 给你一个精致的七天假期 - Android 应用 - 生活 - 【最美应用】...
  2. 什么是Y4M文件格式
  3. MacBook Pro M1配置jdk
  4. linux设置网口物理地址吗,centos下网口vlan设置
  5. 设计模式:工厂方式模式、抽象工厂模式
  6. 25 A. IQ test
  7. SQ01SQ02相关处理与增强
  8. NYOJ---1131买水果
  9. uni-app 中模拟器真机运行app
  10. 谷歌眼镜Mirror API之Menu Items