python练习题参考答案来啦(2)
前面发了几篇python基础语法题目,主要用来帮助测试基础知识掌握的情况。
昨天放了第三篇的参考答案,仅供参考,想要学的更深入一些可以自己看一些算法类的书籍或者文章,应该会更系统和专业。
今天放上第一篇的答案,如果掌握了基础语法的就可以跳过了,刚开始学的可以看看,仅供参考。
1.打招呼
输入你的名称,电脑会和你打招呼。比如输入叶子,会说你好叶子。
主要考察输入,输出语句。
name = input("请输入你的名字:")
print("你好,",name)
2.矩形的周长和面积
输入矩形的长和宽,输出周长和面积。
考察输入输出,数据类型以及转换,算术运算符
width = input("请输入宽度:")
height = input("请输入长度:")
c = (int(width) + int(height))*2
s = int(width) * int(height)
print("周长:",c)
print("面积:",s)
3.账号密码判断
这里假设正确的账号是yezi,密码是123456:如果输入正确提示登录成功,否则提示用户名或者密码有误,请重新输入。
主要考察分支语句,(了解单分支,双分支,多分支,嵌套分支的应用)
# 假设用户名为 yezi,密码为 123456
name = input("请输入用户名:")
password = input("请输入密码:")
if name == "yezi" and password=="123456":
print("登入成功")
else:
print("用户名或者密码有误,请重新输入")
4.限次数登录(有点难度)
超过3次,提示锁定,并且退出程序。
3次以内输入正确,提示登入成功,并且退出程序。
考察条件循环,循环分支嵌套,while else 结构,属于综合性比较强的一个例子。
count = 0
while (count < 3):
name = input('请输入你的账号:')
password = input('请输入你的密码:')
if name =="yezi" and password == '123456':
print('你的账号是:', name, '你的密码是:', password)
print('登入成功,欢迎来到叶子陪你玩')
break
else:
count = (count + 1)
print('密码错误,还有', (3 - count), '次机会')
else:
print(count, '次输入错误,密码已被锁定')
5.九九乘法表
看上去比较简单,时间初学者还是有一定难度的,主要考察嵌套循环以及循环变量的灵活应用,这里还加了一个字符串格式化。
# 99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{i}*{j}={i*j:2}",end=" ")
print() # 换行
6.输出倒三角形字符
输入倒三角形的大小,输出字符倒三角形(数字不定)
7.输出字符三角形
输出字符三角形,效果如下:
每行字符数量按照 1,3,5,7的规律
同上,会更加灵活一些,难度也略高一些。
# for循环嵌套:输入倒三角形的大小,输出字符倒三角形
n=int(input(" 请输入一个数字:"))
for i in range(n):
for j in range(n):
if j<i: # 倒三角输出,故此处判断条件为 j<i ;若为正三角,则j>i
print(' ',end='')
else:
print('*',end='')
print() # 换行
8.打印斐波那契数列前n项。
理解斐波那契数列的原理,就不难,不过这个案例非常经典,可以用来学习很多其它的内容。
#while循环实现生成前n项
a=0
b=1
count=int(input("查看的斐波那契数列前几项:"))
i = 0
while i < count:
print(b,end=" ")
c=a # c是中间变量
a=b
b=c+b
i+=1
print("
")
比如查看斐波那契数列第几项问题的三种解法:
1.递归写法:
存在冗余计算,到39后面,计算时间越来越长。
n = int(input("输入一个数:"))
def fib(n):
if n==1 or n==2:
return 1
else:
return fib(n-1)+fib(n-2)
fib(n)
2.递推写法:
一般建议采用"递归思想"思考分析问题,但是采用"递推方法"去实现。
n = int(input("输入一个数:"))
num1 = 1
num2 = 1
def fib(n):
if n==1 or n==2:
result = 1
elif n>2:
for i in range(n-2):
result = num1 + num2
num1 = num2
num2 = result
return result
print(fib(n))
3.递归结合记忆字典或者列表。
算过的结果记录下来,这样计算的速度也会非常快。
#斐波那契的递归函数,n表示数列的第n项
memo={1:1,2:1}
def fib2(n):
if n not in memo:
memo[n]=fib2(n-1)+fib2(n-2)
return memo[n]
print(fib2(12))
9.猜数字游戏
综合应用,结合随机库实现猜数游戏,如果你正在学习其它编程语言,试着实现这个经典程序,如果能够搞定,那么新语言的基本语法基本没问题了。
import random
min_num = 0 #random.randint(0,50)
max_num = 100 #random.randint(200,300)
answer = random.randint(min_num,max_num)
guess_num = -1
guess_time = 7
print("猜数字")
while guess_num != answer:
print("还剩",guess_time,"次")
if guess_time == 0:
print("很遗憾,没猜对!")
break
print(min_num, "<= ? <=", max_num)
guess_num = int(input("请输入猜想的数字:"))
if guess_num > max_num or guess_num < min_num:
print("注意范围")
continue
if guess_num == answer:
print("恭喜你,猜对了")
elif guess_num > answer:
max_num = guess_num
else:
min_num = guess_num
guess_time -= 1
print()
10.智能算法出题器
综合应用,结合时间库和随机库,虽然看上去很简单,但是作为一个基础练习题,相对来说还是很ok的。
import random # 导入随机库
import time # 导入时间库
print("欢迎使用叶子加法智能出题器")
#设定范围
x = int(input("请输入你想挑战的加数范围,例如:0-100(输入100)"))
print("您已经选择0-", x, "的范围")
print("挑战马上开始,请在5秒内作答")
#答题
score = 0# 得分
while True:
print()
#出题
a = random.randint(0, x)
b = random.randint(0, x)
prompt = str(a)+"+"+str(b)+"=?"
print(prompt)
start_time = time.time()
answer = int(input("请输入你的答案:")) # 获得答案
end_time = time.time()
if end_time-start_time >= 5:
print('对不起,您已超时')
break
else:
if answer == a + b: # 判断是否回答正确
print("回答正确")
score = score+1
else:
print("回答错误")
break
#称号判断
title = ""
if score >= 2:
title = "白银"
elif score >= 4:
title = "黄金"
elif score >= 8:
title = "王者"
else:
title = "青铜"
print("获得的称号是:", title)# 打印出获得的称号
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用