14道基础Python练习题(附答案)

目录
  • 1. 输入一个百分制成绩
  • 2. 篮球比赛案例
  • 3.根据y=1+3-1+3-1+……+(2n-1)-1,求:
  • 4. 购物卡案例
  • 5. 设计一个猜数游戏
  • 6.建立1个包含10个字符的字符串
  • 7. 编写函数
  • 8. 赶鸭子
  • 9.将复数2.3×103-1.34×10-3j赋值给变量A,并分别提取A的实部和虚部。
  • 10.计算下列表达式的值
  • 11.建立一个包含10个字符的字符串A,然后对该字符串进行如下操作:
  • 12.分别格式化输出0.002178对应的科学表示法形式
  • 13.编写程序
  • 14.数字加密游戏

1. 输入一个百分制成绩

,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

  • if语句实现;
  • 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

代码:

a=eval(input('请输入成绩:'))
if a<0 or a>100 or a%1!=0:
    print('您输入的成绩不合理,请检查后重新输入')
elif 90<=a<=100:
    print('成绩等级:A')
elif 80<=a<=89:
    print('成绩等级:B')
elif 70<=a<=79:
    print('成绩等级:C')
elif 60<=a<=69:
    print('成绩等级:D')
else:
    print('成绩等级:E')

输出:

2. 篮球比赛案例

篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。

算法描述:

  • 获取领先的分数 ,减去3分;
  • 如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);
  • 计算平方后的结果;
  • 如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。

请编写程序实现上述算法的功能,并给出运行结果。

代码:

grade=eval(input('请输入领先分数:'))
time=eval(input('请输入剩余时间:'))
t=grade-3
w=input('目前是否为领先队控球(Y or N):')
if w == 'Y' or w == 'y':
    g=(t+0.5)**2
else:
    g=t-0.5
    if g<=0:
       g=0
    g=g**2
if g>time:
    print('领先是“安全”的')
else:
    print('领先是“不安全”的')

输出:

3.根据y=1+3-1+3-1+……+(2n-1)-1,求:

  • y<3时的最大n值。
  • 与(1)的n值对应的y值。

代码:

x=1
y=0
while y<3:
    y=y+1/(2*x-1)
    x=x+1
print('y<3时的最大n值为{}'.format(x-1))
print('与(1)的n值对应的y值为{}'.format(y-1/(2*x-1)))

输出:

y<3时的最大n值为57
与(1)的n值对应的y值为2.9945914066381527

4. 购物卡案例

小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?

代码:

money=100
n=money//15
for i in range(n,-1,-1):
    m=(money-i*15)//5
    for j in range(m,-1,-1):
        k=(money-i*15-j*5)//2
        if (money-i*15-j*5)%2==0:
            print('可选择的购买组合:\t\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format(i,j,k))

输出:

可选择的购买组合:  购买洗发水 6 瓶,香皂 2 块,牙刷 0个。
可选择的购买组合:  购买洗发水 6 瓶,香皂 0 块,牙刷 5个。
可选择的购买组合:  购买洗发水 5 瓶,香皂 5 块,牙刷 0个。
可选择的购买组合:  购买洗发水 5 瓶,香皂 3 块,牙刷 5个。
可选择的购买组合:  购买洗发水 5 瓶,香皂 1 块,牙刷 10个。
可选择的购买组合:  购买洗发水 4 瓶,香皂 8 块,牙刷 0个。
可选择的购买组合:  购买洗发水 4 瓶,香皂 6 块,牙刷 5个。
可选择的购买组合:  购买洗发水 4 瓶,香皂 4 块,牙刷 10个。
可选择的购买组合:  购买洗发水 4 瓶,香皂 2 块,牙刷 15个。
可选择的购买组合:  购买洗发水 4 瓶,香皂 0 块,牙刷 20个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 11 块,牙刷 0个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 9 块,牙刷 5个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 7 块,牙刷 10个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 5 块,牙刷 15个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 3 块,牙刷 20个。
可选择的购买组合:  购买洗发水 3 瓶,香皂 1 块,牙刷 25个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 14 块,牙刷 0个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 12 块,牙刷 5个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 10 块,牙刷 10个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 8 块,牙刷 15个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 6 块,牙刷 20个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 4 块,牙刷 25个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 2 块,牙刷 30个。
可选择的购买组合:  购买洗发水 2 瓶,香皂 0 块,牙刷 35个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 17 块,牙刷 0个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 15 块,牙刷 5个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 13 块,牙刷 10个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 11 块,牙刷 15个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 9 块,牙刷 20个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 7 块,牙刷 25个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 5 块,牙刷 30个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 3 块,牙刷 35个。
可选择的购买组合:  购买洗发水 1 瓶,香皂 1 块,牙刷 40个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 20 块,牙刷 0个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 18 块,牙刷 5个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 16 块,牙刷 10个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 14 块,牙刷 15个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 12 块,牙刷 20个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 10 块,牙刷 25个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 8 块,牙刷 30个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 6 块,牙刷 35个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 4 块,牙刷 40个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 2 块,牙刷 45个。
可选择的购买组合:  购买洗发水 0 瓶,香皂 0 块,牙刷 50个。

5. 设计一个猜数游戏

首先由计算机产生一个[1,100]之间的随机整数,然后由用户猜测所产生的随机数。根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won !”,游戏结束。用户最多可以猜7次,如果7次均未猜中,则显示“You lost !”,并给出正确答案,游戏结束。游戏结束后,询问用户是否继续游戏,选择“Y”则开始一轮新的猜数游戏;选择“N”则退出游戏。

代码:

chose = 'y'
while chose=='Y' or chose=='y':
    import random
    num = random.randint(1,100)
    def judge(b):
        if b == num:
            return 1
        else:
            return 0
    for i in range(1,8):
        b=eval(input('请输入您第{}次所猜的整数:'.format(i)))
        if judge(b)==1:
            print("You won !")
            break
        elif b > num:
            print("high")
        elif b < num:
            print("low")
    if judge(b)==0:
        print("You lost !")
    chose=input('请输入Y(y)继续进行游戏,N(n)退出游戏:')
    while chose != 'Y' and chose != 'y' and chose != 'N' and chose != 'n':
        print('输入有误,请重新输入Y(y)继续进行游戏,N(n)退出游戏:',end = '')
        chose=input()

输出:

请输入您第1次所猜的整数:2
low
请输入您第2次所猜的整数:5
low
请输入您第3次所猜的整数:8
low
请输入您第4次所猜的整数:7
low
请输入您第5次所猜的整数:50
low
请输入您第6次所猜的整数:60
low
请输入您第7次所猜的整数:80
high
You lost !
请输入Y(y)继续进行游戏,N(n)退出游戏:n

6.建立1个包含10个字符的字符串

建立1个包含10个字符的字符串,并根据键盘输入的数字n输出字符串中的第n个字符。当n值超过字符串的索引时,自动转为输出字符串中的最后1个字符。

要求:

  • 用try语句实现。

代码:

n=int(input('请输入数字n:'))
a='pengyuanyu'
try:
    print(a[n-1])
except:
    print(a[9])

输出:

请输入数字n:5
y

7. 编写函数

该函数可以输入任意多个数,函数返回输出所有输入参数的最大值、最小值和平均值。

代码:

import numpy as py
x=input('请输入一组数并用空格隔开:')
def f(x):
    lis =list(x.split(' '))
    for i in range(len(lis)):
        lis[i]=eval(lis[i])
    print('该组数值的最大值为:',max(lis))
    print('该组数值的最小值为:',min(lis))
    print('该组数值的平均值为:',py.mean(lis))
f(x)

输出:

请输入一组数并用空格隔开:5 4 10
该组数值的最大值为: 10
该组数值的最小值为: 4
该组数值的平均值为: 6.333333333333333

8. 赶鸭子

一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?

要求:

  • 利用递归函数编程实现。

代码:

def f(n):
    if n == 8:
        return 2
    else:
        sum = f(n+1)*2+2
        return sum
print('一共有{}只鸭子'.format(f(1)))

输出:

一共有510只鸭子

9.将复数2.3×103-1.34×10-3j赋值给变量A,并分别提取A的实部和虚部。

代码:

>>> A=complex(2.3e3,-1.34e-3)
>>> print(A.real)
2300.0
>>> print(A.imag)
-0.00134

10.计算下列表达式的值

代码:

import math
z1=(2*(math.sin(math.pi*85/180)))/(1+math.e**2)
print(z1)

输出:

0.23749863783095462

其中x是从键盘获取的任意实数。

代码:

import math
x=int(input('请输入整数:'))
z2=1/2*math.log(x+math.sqrt(1+math.pow(x, 2)))
print(z2)

输出:

请输入整数:5
1.1562191706363762

11.建立一个包含10个字符的字符串A,然后对该字符串进行如下操作:

  • (1)计算输出字符串的长度;
  • (2)从第1个字符开始,每间隔2个字符取1个字符,组成子字符串B;
  • (3)将字符串A倒过来重新排列产生新的字符串C;
  • (4)将字符串A的前4个字符与字符串C的后5个字符进行组合,产生字符串D。

代码:

 A=input()
 >>> len(A)
 >>> B=print(A[::3])
 >>> C=print(A[::-1])
 >>> D=print(A[:3]+C[-5:])

12.分别格式化输出0.002178对应的科学表示法形式

分别格式化输出0.002178对应的科学表示法形式、具有4位小数精度的浮点数形式和百分数形式,并将输出宽度设定为10、居中对齐、星号*填充。

代码:

x=0.002178
print("x对应的科学表示法形式为:",("%e"%x).center(10,'*'))
print('x具有4位小数精度的浮点数形式为:',('{0:.4f}'.format(x)).center(10,'*'))
print('x百分数形式为:',(('{0:.2f}%'.format(x*100)).center(10,'*')))

输出:

x对应的科学表示法形式为: 2.178000e-03
x具有4位小数精度的浮点数形式为: **0.0022**
x百分数形式为: **0.22%***

13.编写程序

从键盘输入一个1~7的数字,格式化输出对应数字的星期字符串名称。如:输入3,返回“您输入的是星期三”。

代码:

n =int(input('输入一个1~7的数字:'))
if(n==1):
    print("您输入的是星期一")
elif(n==2):
    print("您输入的是星期二")
elif(n==3):
    print("您输入的是星期三")
elif(n==4):
    print("您输入的是星期四")
elif(n==5):
    print("您输入的是星期五")
elif(n==6):
    print("您输入的是星期六")
elif(n==7):
    print("您输入的是星期日")

输出:

输入一个1~7的数字3
您输入的是星期三

14.数字加密游戏

编程程序,从键盘任意输入1个4位数,将该数字中的每位数与7相乘,然后取乘积结果的个位数对该数字进行替换,最后得到1个新的4位数。

代码:

n = int(input('任意输入1个4位数:'))
if 1000<=n<=9999:
    a=n%10
    b=(n-a)%100/10
    c=(n-a-10*b)%1000/100
    d=(n-a-10*b-100*c)%10000/1000
    a=a*7%10
    b=b*7%10
    c=c*7%10
    d=d*7%10
    n=1000*d+100*c+10*b+a
    print(int(n))
elif n<=1000 or n>=9999:
    print("您输入的数字不符合要求,请输入一个四位数字")

输出:

任意输入1个4位数:111
您输入的数字不符合要求,请输入一个四位数字

任意输入1个4位数:6666
2222

到此这篇关于14道基础Python练习题(附答案)的文章就介绍到这了,更多相关Python练习题内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 100 个 Python 小例子(练习题一)

    目录 实例001:数字组合 实例002:"个税计算" 实例003:完全平方数 实例004:这天第几天 实例005:三数排序 实例006:斐波那契数列 实例007:copy 实例008:九九乘法表 实例009:暂停一秒输出 实例010:给人看的时间 实例011:养兔子 实例012:100到200的素数 实例013:所有水仙花数 实例014:分解质因数 实例015:分数归档 实例016:输出日期 实例017:字符串构成 实例018:复读机相加 实例019:完数 实例020:高空抛物 实例0

  • python装饰器练习题及答案

    这篇文章主要介绍了python装饰器练习题及答案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一:编写装饰器,为多个函数加上认证的功能(用户的账号密码) 要求登录成功一次,后续的函数都无需输入用户名和密码 FLAG=False#此时还未登录 全局变量 写这个步骤的意义在于:方便 知道已经登录成功了,就不再重复登录 def login(func):#为多个函数加上的认证功能 def inner(*args,**kwargs):#加上装饰器 gl

  • python matplotlib库绘制条形图练习题

    练习一:假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机

  • 分享给Python新手们的几道简单练习题

    前言 本文主要给大家分享了一些简单的Python练习题,对学习python的新手们来说是个不错的练习问题,下面话不多说了,来一起看看详细的介绍吧. 第一题:使用while循环输入 1 2 3 4 5 6     8 9 10 a = 0 while a < 10: a +=1 if a == 7: continue print(a) 第二题:求1-100的所有数的和 第一种方法: a = 0 b = 1 while b <= 100: a = a + b b += 1 print(a) 第二种

  • 100 个 Python 小例子(练习题二)

    目录 实例031:字母识词 实例032:反向输出II 实例033:列表转字符串 实例034:调用函数 实例035:设置输出颜色 实例036:算素数 实例037:排序 实例038:矩阵对角线之和 实例039:有序列表插入元素 实例040:逆序列表 实例041:类的方法与变量 实例042:变量作用域 实例043:作用域.类的方法与变量 实例044:矩阵相加 实例045:求和 实例046:打破循环 实例047:函数交换变量 实例048:数字比大小 实例049:lambda 实例050:随机数 实例03

  • Python内置数据结构与操作符的练习题集锦

    第一题: give you two var a and b, print the value of a+b, just do it! 根据提议,给出两个变量 a 和 b 并打印出 a+b的值. a, b = 1, 2 print a + b 当然也可以这么做 a = 1 b = 2 print a + b 第二题: 给你一个list, 如 L = [2, 8, 3, 5], 对L进行升序排序并输出. L = sorted(L) print L #或 # sort() 内置函数会对列表自身排序而

  • python小白练习题之条件控制与循环控制

    目录 前言 一:选择结构: 二:循环结构 总结 前言 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print('your age is', age) print('adult') 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行pr

  • 14道基础Python练习题(附答案)

    目录 1. 输入一个百分制成绩 2. 篮球比赛案例 3.根据y=1+3-1+3-1+--+(2n-1)-1,求: 4. 购物卡案例 5. 设计一个猜数游戏 6.建立1个包含10个字符的字符串 7. 编写函数 8. 赶鸭子 9.将复数2.3×103-1.34×10-3j赋值给变量A,并分别提取A的实部和虚部. 10.计算下列表达式的值 11.建立一个包含10个字符的字符串A,然后对该字符串进行如下操作: 12.分别格式化输出0.002178对应的科学表示法形式 13.编写程序 14.数字加密游戏

  • 5道关于python基础 while循环练习题

    目录 1. 使用while循环输出1 2 3 4 5 6 8 9 10 2. 求1-100的所有数的和 3. 输出 1-100 内的所有奇数 4.输出 1-100 内的所有偶数 5. 用户登陆(三次机会重试) 1. 使用while循环输出1 2 3 4 5 6 8 9 10 count=0 while count <10: count+=1 print(count) 2. 求1-100的所有数的和 count=0 total=0 #定义两个变量 while count <=100: total

  • 非常全面的Python常见基础面试题及答案

    目录 Python 1 Python垃圾回收机制是什么 2 元组和列表的区别 3 元组可以作为字典的key? 4 进程 线程 协程 4.1 进程 4.2 线程 4.3 协程 5 赋值.浅拷贝和深拷贝 6 GIL 7 列表去重 8 最常用的排序算法及其复杂度 8.1 冒泡排序 9 闭包 10 with 11 实例方法 静态方法 12 迭代器和生成器 12.1 迭代器 12.2 生成器 13 匿名函数 14 map reduce filter 14.1 map 14.2 reduce 14.3 fi

  • 吊打Java面试官!整理了一周的Spring面试大全(附答案)

    目录 Q1:什 么 是 spring? Q2:使 用 Spring 框 架 的 好 处 是 什 么 ? Q3:使 用 Spring 缺点是什么? Q4:IoC 是什么? Q5:IOC的优点是什么 Q6:IoC 容器初始化过程? Q7:依赖注⼊的实现方法有哪些? Q8:依赖注入的相关注解? Q9:依赖注入的过程? Q10:Bean 的生命周期? Q11:Bean 的作⽤范围? Q12:如何通过 XML ⽅式创建 Bean? Q13:Spring 有几种配置方式? Q14:如何用基于 XML 配置的

  • MYSQL复杂查询练习题以及答案大全(难度适中)

    目录 建库建表插入数据 测试题 答案不唯一,仅供参考 总结 能坚持全部做完的都是高手 直入主题 建库建表插入数据 代码直接按顺序复制就可以 -- 建库 CREATE DATABASE `emp`; -- 打开库 USE emp; -- 建dept表 CREATE TABLE `dept`( `deptno` INT(2) NOT NULL, `dname` VARCHAR(14), `loc` VARCHAR(13), CONSTRAINT pk_dept PRIMARY KEY(deptno)

  • 14个用Python实现的Excel常用操作总结

    目录 前言 一.关联公式:Vlookup 二.数据透视表 三.对比两列差异 四.去除重复值 五.缺失值处理 六.多条件筛选 七. 模糊筛选数据 八.分类汇总 九.条件计算 十.删除数据间的空格 十一.数据分列 十二.异常值替换 十三.分组 十四.根据业务逻辑定义标签 前言 自从学了Python后就逼迫自己不用Excel,所有操作用Python实现.目的是巩固Python,与增强数据处理能力. 这也是我写这篇文章的初衷.废话不说了,直接进入正题. 数据是网上找到的销售数据,长这样: 一.关联公式:

  • python面试题小结附答案实例代码

    1 谈谈你对面向对象的理解? 面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想.OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象的出现极大的提高了编程的效率,使其编程的重用性增高. python面向对象的重要术语: 多态(polymorphism):一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的. 继承(inheritance)子项继承父项的某些功能,在程序中表现某种联系 封装(

  • 15个顶级Java多线程面试题(附答案)

    在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的.下面这些是我在不同时间不同地点喜欢问的Java线程问题.我没有提供答

  • 40个你可能不知道的Python技巧附代码

    1.拆箱 >>> a, b, c = 1, 2, 3 >>> a, b, c (1, 2, 3) >>> a, b, c = [1, 2, 3] >>> a, b, c (1, 2, 3) >>> a, b, c = (2 * i + 1 for i in range(3)) >>> a, b, c (1, 3, 5) >>> a, (b, c), d = [1, (2, 3),

随机推荐