写点什么

Python 基础练习题(四)

作者:漫步桔田
  • 2023-02-26
    北京
  • 本文字数:3379 字

    阅读完需:约 11 分钟

Python 基础练习题(四)

实例 001:数字组合

题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

程序分析 遍历全部可能,请把有重复的剃掉。

num = 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(a, b, c)                num += 1print('组成无重复三位数数字{}个'.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, xif x > z: x, z = z, xif y > z: y, z = z, yprint(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, 0for i in range(10):    a, b = b, b + a    print(b)
复制代码

实例 005:斐波那契 II

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

a, b, c, d = 2, 1, 0, 0for i in range(20):    c = a / b    d = round(d + c, 2)    a, b = a + b, aprint('前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 = 0while x < 9: x += 1 y = 0 while y < x: y += 1 print('{} * {} = {}'.format(y, x, x * y), end='\t') print()
复制代码

实例 007:饲养兔子

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

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

实例 008:判断素数

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

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

实例 009:水仙花数

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

for i in range(100, 1000):    x = i // 100    y = i // 10 % 10    z = i % 10    if 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 = 0d = []for i in range(b):    c += a * 10 ** i    d.append(c)print(sum(d))
复制代码

实例 011:猴子偷桃

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

s = 1for i in range(9, 0, -1):    s = (s + 1) * 2print('猴子第{}天摘桃子个数为{}'.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 = 0for i in range(1, 101):    num += iprint(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))
复制代码



CSDN 博主「漫步桔田」原文链接:https://blog.csdn.net/u013157570/article/details/121588411

发布于: 刚刚阅读数: 5
用户头像

漫步桔田

关注

编程届一名小学生,热心分享编程知识。 2022-08-25 加入

阿里云社区专家博主、CSDN领域新星创作者。

评论

发布
暂无评论
Python 基础练习题(四)_漫步桔田_InfoQ写作社区