python课设代码_python课程编程题汇总(上)

python编程题汇总

众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~

用这个贴子来记录也和大家分享一下我们课上的编程讨论题

中篇在此→python课程编程题汇总(中)

下篇在此→python课程编程题汇总(下)

1、货币转换

编写货币转换程序

描述:

人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:

人民币和美元间汇率固定为:1美元 = 6.78人民币。

程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。

注意:获得输入请使用input()

MoneyStr = input("请输入带有符号的数值:")

if MoneyStr[-1] in['B','b']:

USD=eval(MoneyStr[0:-3])/6.78

print("转换后的金额为{:.2f}USD".format(USD))

elif MoneyStr[-1] in['D','d']:

RMB=eval(MoneyStr[0:-3])*6.78

print("转换后的金额为{:.2f}RMB".format(RMB))

else:

print("输入格式错误")

2、超市买苹果

需求:收营员输入苹果价格单位为元/斤,用户购买苹果的重量,单位为斤,计算并且输出付款金额

注意:用户输入用input()函数

转换函数int(x)、float(x)

DJ = eval(input("请输入苹果单价(元/斤):"))

ZL = eval(input("请输入苹果重量(斤):"))

print("付款金额为:{:.2f}".format(DJ*ZL))

3、随机数的产生

编写程序:

随机产生一个8位数,每位数字可以是1到6中的任意一个整数

提示:查阅random库使用,字符串拼接作用

>>> import random

>>> for i in range(8):

a=random.randint(1,6)

print(a,end='')

4、字符串截取

思考与练习

str = ‘hellopython’

1、截取第一位到第四位的字符

2、截取第二位到第八位之前的字符

3、截取字符串的全部字符

4、截取第六个字符到结尾

5、截取从头开始到倒数第五个字符之前

6、截取第三个字符

7、截取倒数第一个字符

8、逆序截取

9、截取倒数第三位与倒数第一位之前的字符

10、截取倒数第三位到结尾

11、逆序截取,步长为3

>>> str = 'hellopython'

>>> str[0:4]

'hell'

>>> str[1:7]

'ellopy'

>>> str[:]

'hellopython'

>>> str[5:]

'python'

>>> str[:-5]

'hellop'

>>> str[2]

'l'

>>> str[-1]

'n'

>>> str[::-1]

'nohtypolleh'

>>> str[-3:-1]

'ho'

>>> str[-3:]

'hon'

>>> str[::-3]

'ntoe'

5、表达式计算

>>>a=2

>>>b=4

>>>x=6

>>>y=5

>>>c=1

>>>e=2.759

>>>import math

>>>(math.sin(a)+math.sin(b))/(a+b)

0.025415821919625586

>>> 1/3*((a**3+b**3+c**3)**(1/3))

1.3931130654604105

>>> (e**abs(x-y))/(3**x+(6**0.5)*math.sin(y))

0.03128093849812538

6、写出表达式

按要求写出Python表达式。

(1)将整数k转换成实数。

(2)求实数x的小数部分。

(3)求正整数m的个、十、百位数字。

//1

float(k)

//2

x-int(x)

//3

m%10 //个位

m%100//10 //十位

m%1000//100 //百位

7、if-elif-else多分支结构

思考与练习

利用if-elif-else多分支结构

用户输入一个x的值,编写一段程序,利用format输出x和分段函数的值

x=eval(input("请输入x:"))

if x>2:

y=4*x-5

elif -1<=x and x<=2:

y=x*x+3

else :

y=-x+10

print("x为{0:.2f},得分段函数的值y={1:.2f}".format(x,y))

8、if-else 二分支结构

思考与练习

利用if-else 二分支结构编写程序

输入三条边长如果能构成三角形就计算周长和面积

a=eval(input("请输入a边边长:"))

b=eval(input("请输入b边边长:"))

c=eval(input("请输入c边边长:"))

triangle=(a+b)>c and (a+c)>b and (b+c)>a and abs(a-b)

if triangle:

C=a+b+c

p=C/2

S=(p*(p-a)*(p-b)*(p-c))**0.5

print("可构成三角形,该三角形的周长为{0:.2f},面积为{1:.2f}".format(C,S))

else:

print("不可构成三角形")

9、蒙特卡罗方法

思考

1、 蒙特卡罗方法的基本思想是什么?

2、 如何利用蒙特卡罗方法求解π?

//1.基本思想:利用概率模型及随机过程解决一系列实际问题。

//2.构造一个单位正方形和一个单位圆的1/4,计算机随机产生两个0-1之间的数作为

//点的横纵坐标,从点到原点的距离判断是否在圆内,统计落在1/4圆的个数以及落在

//单位正方形的个数,二者相除再乘以四得到最终结果为 π。

from random import random

from time import perf_counter

DARTS=1000*1000

hits=0.0

start=perf_counter()

for i in range(1,DARTS+1):

(x,y=random(),random())

dist=pow(x**2+y**2,0.5)

if dist<=1.0:

hits=hits+1

pi=4*(hits/DARTS)

print("圆周率的值是:{}".format(pi))

print("运行时间是:{:.5f}s".format(perf_counter()-start))

10、常见的异常错误

列举一些常见的异常错误

1、SystemExit:解释器请求退出

2、Keyboardlnterrupt:用户请求中断执行(通常输入Ctrl + C)

3、Stoplteration:迭代器没有更多的值

4、StandardError:所有的内建标准异常的基类

5、GeneratorExit:生成器(generator)发生异常来通知退出

6、ArithmeticError:所有数值计算错误的基类

7、FloatingPointError:浮点数计算错误

8、OverflowError:数值运算超出最大限制

9、ZeroDivisionError:除零错误

10、AssertionError :断言语句失败

11、AttributeError:对象没有这个属性

12、EOFError:没有内建输入,到达EOF标记

13、EnvironmentError:操作系统错误的基类

14、IOError:输入/输出操作失败

15、OSError:操作系统错误

16、WindowsError:系统调用错误

17、ImportError:导入模块/对象失败

18、LookupError:无效数据查询的基类

19、IndexError:序列中没有此索引(index)

20、KeyError:映射中没有这个键

21、MemorryError:内存溢出错误

22、NameError:未声明/初始化对象(没有属性)

23、UnboundLocalError :访问未初始化的本地变量

24、ReferenceError:弱引用(weak reference)试图访问已经回收的对象

25、RuntimeError:一般运行时错误

26、NotlmplementedError:尚未实现的方法

27、SyntaxError:python语法错误

28、IndentationError:缩进错误

29、TabError:Tab和空格混用

30、SystemError:一般解释器系统错误

31、TypeError:对类型无效的操作

32、ValueError:传入无效的参数

33、UnicodeError:Unicode相关的错误

34、UnicodeDecodeError:Unicode 解码时错误

35、UnicodeEncodeError:Unicode 编码时错误

36、UnicodeTranslateError :Unicode转换时错误

11、if中判断的条件

思考与讨论

if中判断的条件是否只有bool类型表达式?能否是str类型,或者其他?

不是,可以是任意数值,例如list类型、str类型、set类型、dict类型,但编译系统会把这个表达式强制转成逻辑值

12、循环输出等腰三角形

使用循环输出等腰三角形,打印下面图形

for i in range(1,5):

for j in range(4-i):

print(" ",end="")

for a in range(2*i-1):

print("*",end="")

print("\n")

13、猴子吃桃问题

思考与练习

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

要求:利用递归编写代码

N=10

n=0

def taozi(n):

n=(n+1)*2

return n

for i in range(N):

if i==0:

n=1

else:

n=taozi(n)

print("第一天摘了{}个桃子".format(n))

14、九九乘法表

思考与练习

利用for循环语句 打印输出九九乘法表

for i in range(1,10):

for j in range(1,i+1):

print("{}*{}={}".format(i,j,i*j),end=" ")

print("\n")

15、实例“身体质量指数BMI”讨论

思考与讨论

1、 观察实例5.1或5.2中的条件区间范围划分,思考划分的规则是什么?

2、 观察实例代码5.1中的第8行和第10行,思考为何代码不按照注释方式写全变量的最小边界?

3、 Python中判断条件24<=28<25是否合法?其值是什么?

4、 实例代码5.1中第2行最后的反斜杠\有什么作用?

1、5.1是分别根据不同的范围标准来划分,一个是国际BMI标准,一个是国内的标准;5.2是将两个标准整理后,编写在同一个程序中的。

2、因为第一个判断条件中“bmi=18.5不是偏瘦,所以当程序运行时,第一个判断为Falses时,可得此时的bmi>=18.5,就会进入到第二个判断条件“bmi<25”,此时的判断条件就相当于是“18.5<=bmi<25”;第10行同理。

3、合法,值为False

4、作用是分行,避免一行代码过长

16、各种循环的应用场景

思考与讨论

单分支(if语句)、二分支(if-else语句)、多分支(if-elif-else)、if嵌套的应用场景?

1、单分支语句一般应用于只有一个选项,满足条件时执行,不满足则不执行的场景

2、二分支语句一般应用于有两个方案,选择其中一种执行的场景

3、多分支语句则一般应用于多条件分类执行的场景,如”对不同分数分级的问题“

4、if嵌套语句一般应用于一个条件判断完后还需判断条件的问题场景

17、进度条反映了软件的执行速度,请思考并给出至少2种提高软件执行速度的方法。

1.尽可能优化算法

2.善于使用函数,使程序变的模块化

等等

18、猜数字游戏

预设一个0-9之间的整数,让用户通过键盘输入所猜的数字,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,知道猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

import random as r

n=r.randint(0,9)

t=eval(input("请输入你猜测的数字:"))

count=0

while(n!=t):

if t>n:

print("遗憾,太大了")

count=count+1

else:

print("遗憾,太小了")

count=count+1

t=eval(input("请输入你猜测的数字:"))

print("预测{}次,你猜中了!".format(count))

19、猜数字游戏2.0

让计算机能够随机产生一个预设数字,范围在0-100之间,其他游戏规则不变。

要求将代码封装到函数中。

def caishuzi():

import random as r

n=r.randint(0,100)

t=eval(input("请输入你猜测的数字:"))

count=0

while(n!=t):

if t>n:

print("遗憾,太大了")

count=count+1

else:

print("遗憾,太小了")

count=count+1

t=eval(input("请输入你猜测的数字:"))

print("预测{}次,你猜中了!".format(count))

caishuzi()

20、货币转换2.0

汇率计算问题

人民币和美元间汇率固定为:1美元 = 6.78人民币

格式要求:20USD 或20RMB

增加如下新功能,完成编写程序

功能1:根据输入判断是人民币还是美元,进行相应的转换计算

功能2:程序可以一直运行,直到用户选择退出

while(True):

MoneyStr=input("请输入带有符号(UBD或RMB)的数值(break)退出:")

if MoneyStr=="break":

break

elif MoneyStr[-1] in ['B','b']:

print("输入货币为人民币")

USD=eval(MoneyStr[0:-3])/6.78

print("转换后的金额为{:.2f}USD".format(USD))

elif MoneyStr[-1] in ['D','d']:

print("输入货币为美元")

RMB=eval(MoneyStr[0:-3])*6.78

print("转换后的金额为{:.2f}RMB".format(RMB))

else:

print("输入的格式错误")

以上只是我个人解法和理解,如果有不同的想法欢迎大家一起讨论~

都看到这里了,给我点个赞呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值