14道基础Python练习题(附答案)
这篇文章主要给大家分享的是14道基础的Python练习题,我们都知道,无论是学习什么语言,刚开始的时候都缺不了练习的,下面小编讲给大家分享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
语句实现;输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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);
计算平方后的结果;
如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。
请编写程序实现上述算法的功能,并给出运行结果。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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值。
代码:
1 2 3 4 5 6 7 | 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元正好花掉,可有哪些购买组合?
代码:
1 2 3 4 5 6 7 8 | 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”则退出游戏。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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语句实现。
代码:
1 2 3 4 5 6 | n = int ( input ( '请输入数字n:' )) a = 'pengyuanyu' try : print (a[n - 1 ]) except : print (a[ 9 ]) |
输出:
请输入数字n:5
y
7. 编写函数
该函数可以输入任意多个数,函数返回输出所有输入参数的最大值、最小值和平均值。
代码:
1 2 3 4 5 6 7 8 9 10 | 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. 赶鸭子
一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?
要求:
利用递归函数编程实现。
代码:
1 2 3 4 5 6 7 | 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的实部和虚部。
代码:
1 2 3 4 5 | >>> A = complex ( 2.3e3 , - 1.34e - 3 ) >>> print (A.real) 2300.0 >>> print (A.imag) - 0.00134 |
10.计算下列表达式的值
代码:
1 2 3 | import math z1 = ( 2 * (math.sin(math.pi * 85 / 180 ))) / ( 1 + math.e * * 2 ) print (z1) |
输出:
0.23749863783095462
其中x是从键盘获取的任意实数。
代码:
1 2 3 4 | 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。
代码:
1 2 3 4 5 | 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、居中对齐、星号*填充。
代码:
1 2 3 4 | 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,返回“您输入的是星期三”。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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位数。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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练习题(附答案)的文章就介绍到这了
原文链接:https://www.cnblogs.com/python960410445/p/15473088.html