2025年七年级信息科技Python猜数字游戏设计考卷_第1页
2025年七年级信息科技Python猜数字游戏设计考卷_第2页
2025年七年级信息科技Python猜数字游戏设计考卷_第3页
2025年七年级信息科技Python猜数字游戏设计考卷_第4页
2025年七年级信息科技Python猜数字游戏设计考卷_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年七年级信息科技Python猜数字游戏设计考卷2025年七年级信息科技Python猜数字游戏设计考卷

姓名:______班级:______学号:______得分:______

(考试时间:90分钟,满分:100分)

1.选择题(共5题,每题2分,计10分)

2.填空题(共4题,每题3分,计12分)

3.判断题(共3题,每题2分,计6分)

4.简答题(共2题,每题10分,计20分)

5.编程题(共2题,第1题15分,第2题23分,计38分)

6.案例分析题(共1题,计10分)

7.创新设计题(共1题,计10分)

---

1.选择题(共5题,每题2分,计10分)

1.下列哪个不是Python合法的标识符?

A.int32

B.3int

C._score

D.if

2.在Python中,哪个语句用于输出内容?

A.print()

B.echo()

C.output()

D.disp()

3.生成1到100之间随机整数的正确方法是?

A.random(1,100)

B.random.randint(1,100)

C.rand(1,100)

D.randrange(1,100)

4.循环语句中,用于跳出当前循环的关键字是?

A.break

B.exit

C.stop

D.quit

5.条件语句中,表示“不等于”的运算符是?

A.=

B.!=

C.<>

D.~=

---

2.填空题(共4题,每题3分,计12分)

6.在Python中,用______语句来表示程序的执行流程分支。

7.如果要生成一个0到1之间的随机浮点数,可以使用______函数。

8.在循环中,用______语句可以提前结束循环。

9.Python中,用于输入用户数据的函数是______。

---

3.判断题(共3题,每题2分,计6分)

10.Python语句必须以冒号结尾。

11.变量名可以包含数字,但不能以数字开头。

12.在Python中,`if`语句必须与`else`语句搭配使用。

---

4.简答题(共2题,每题10分,计20分)

13.简述Python中循环语句的两种类型及其特点。

14.解释Python中函数的定义和调用方式,并举例说明。

---

5.编程题(共2题,第1题15分,第2题23分,计38分)

15.编写Python代码,实现一个猜数字游戏:

-程序随机生成一个1到100之间的整数。

-用户有5次机会猜测该数字。

-每次猜测后,程序提示用户“太大”、“太小”或“猜对了”。

-如果5次内猜对,显示“恭喜你!”,否则显示正确答案。

(15分)

16.在第15题的基础上,增加功能:

-记录用户每次猜测的数字。

-游戏结束后,显示用户所有猜测的数字列表。

-如果用户猜对,额外提示“你的猜测顺序是:[数字列表]”。

(23分)

---

6.案例分析题(共1题,计10分)

17.分析以下Python代码的功能,并说明其中循环和条件语句的作用:

```python

count=0

whilecount<5:

num=int(input("请输入一个数字:"))

ifnum>10:

print("太大")

elifnum<10:

print("太小")

else:

print("猜对了")

break

count+=1

ifcount==5:

print("次数用完,正确答案是10")

```

---

7.创新设计题(共1题,计10分)

18.在猜数字游戏的基础上,增加难度等级功能:

-用户可以选择“简单”或“困难”模式。

-简单模式下,数字范围1-100,5次机会。

-困难模式下,数字范围1-200,3次机会。

-根据用户选择,动态调整游戏规则,并输出相应提示。

---

8.操作题(共2题,每题17分,计34分)

19.设计一个Python程序,用于模拟掷骰子6次的过程。每次掷骰子后,输出当前骰子的点数,并统计6次掷骰子中每个点数(1到6)出现的次数。最后,输出每个点数出现的次数统计结果。

20.编写一个Python程序,实现一个简单的记账本功能。程序应允许用户输入多笔交易记录,每笔记录包含交易类型(收入或支出)、金额和交易日期。用户可以随时查询特定日期的收入总额或支出总额。程序应提供清晰的菜单选项,引导用户进行操作,并在用户完成所有操作后,输出所有交易记录的汇总信息。

9.编程实现题(共1题,计18分)

21.设计一个Python程序,用于计算用户输入的字符串中每个字母的出现次数。程序应忽略大小写和非字母字符,并按字母顺序输出每个字母及其出现次数。例如,输入字符串"Hello,World!",输出应为"a:1,d:1,e:1,h:1,l:3,o:2,r:1,w:1"。

10.逻辑思维题(共1题,计12分)

22.假设有一个Python程序片段如下所示,请分析该程序的功能,并说明其输出结果。

```python

numbers=[1,2,3,4,5,6,7,8,9,10]

sum_even=0

sum_odd=0

fornuminnumbers:

ifnum%2==0:

sum_even+=num

else:

sum_odd+=num

print("偶数之和:",sum_even)

print("奇数之和:",sum_odd)

```

11.应用题(共1题,计14分)

23.设计一个Python程序,用于模拟一个简单的图书馆借阅系统。程序应包含以下功能:

-图书信息录入:允许用户输入图书的ISBN、书名和作者信息。

-借阅记录管理:记录用户借阅图书的信息,包括借阅日期和归还日期。

-图书查询:根据ISBN或书名查询图书的借阅状态(是否已借出)。

-归还记录管理:允许用户输入归还日期,并更新图书的借阅状态。

程序应提供清晰的菜单选项,引导用户进行操作,并在用户完成所有操作后,输出所有图书的借阅状态汇总信息。

12.创新设计题(共1题,计16分)

24.设计一个Python程序,实现一个简单的密码生成器。程序应允许用户选择密码长度,并选择是否包含大写字母、小写字母、数字和特殊字符。根据用户的选择,程序应生成一个符合条件的随机密码,并输出密码。例如,用户选择密码长度为12,包含大写字母、小写字母和数字,程序应生成一个如"X3tYb5N2qW8"的密码。

13.算法设计题(共1题,计20分)

25.设计一个Python程序,实现一个简单的排序算法。程序应允许用户输入一组数字,并选择排序方式(升序或降序)。程序应根据用户选择的排序方式,对输入的数字进行排序,并输出排序后的结果。例如,用户输入数字[5,2,8,1,9],选择升序排序,程序应输出[1,2,5,8,9]。

14.综合应用题(共1题,计22分)

26.设计一个Python程序,实现一个简单的学生成绩管理系统。程序应包含以下功能:

-学生信息录入:允许用户输入学生的学号、姓名和各科成绩(如数学、语文、英语)。

-成绩查询:根据学号或姓名查询学生的成绩信息。

-成绩统计:计算每个学生的平均成绩,并输出排名前五的学生信息。

-成绩修改:允许用户修改学生的成绩信息。

程序应提供清晰的菜单选项,引导用户进行操作,并在用户完成所有操作后,输出所有学生的成绩统计信息。

15.拓展应用题(共1题,计24分)

27.设计一个Python程序,实现一个简单的在线购物系统。程序应包含以下功能:

-商品信息录入:允许用户输入商品的编号、名称和价格。

-购物车管理:允许用户添加商品到购物车,查看购物车中的商品列表,以及修改购物车中的商品数量。

-订单生成:允许用户生成订单,并输出订单的总金额。

-支付管理:允许用户选择支付方式(如现金、信用卡、支付宝),并输出支付成功的信息。

程序应提供清晰的菜单选项,引导用户进行操作,并在用户完成所有操作后,输出所有订单的汇总信息。

---

1.选择题(共5题,每题2分,计10分)

1.B

2.A

3.B

4.A

5.B

2.填空题(共4题,每题3分,计12分)

6.条件语句

7.random.random()

8.break

9.input()

3.判断题(共3题,每题2分,计6分)

10.×

11.√

12.×

4.简答题(共2题,每题10分,计20分)

13.循环语句有两种类型:for循环和while循环。for循环适用于遍历序列(如列表、字符串)或指定次数的重复操作;while循环适用于条件为真的情况下重复执行代码块,直到条件不再满足。

14.函数的定义使用def关键字,格式为:`def函数名(参数列表):`,后面是函数体。调用方式为:`函数名(实参列表)`。例如:

```python

defgreet(name):

print("Hello,"+name)

greet("Alice")

```

5.编程题(共2题,第1题15分,第2题23分,计38分)

15.

```python

importrandom

target=random.randint(1,100)

attempts=5

print("猜一个1到100之间的数字,你有5次机会。")

foriinrange(attempts):

guess=int(input("请输入你的猜测:"))

ifguess>target:

print("太大")

elifguess<target:

print("太小")

else:

print("恭喜你!")

break

else:

print("次数用完,正确答案是",target)

```

16.

```python

importrandom

target=random.randint(1,100)

attempts=5

guesses=[]

print("猜一个1到100之间的数字,你有5次机会。")

foriinrange(attempts):

guess=int(input("请输入你的猜测:"))

guesses.append(guess)

ifguess>target:

print("太大")

elifguess<target:

print("太小")

else:

print("恭喜你!你的猜测顺序是:",guesses)

break

else:

print("次数用完,正确答案是",target)

```

6.案例分析题(共1题,计10分)

17.该程序实现了一个猜数字游戏,用户有5次机会猜测一个1到10之间的数字。程序使用while循环控制猜测次数,每次用户输入一个数字后,程序使用if-elif-else条件语句判断用户输入的数字与目标数字的大小关系,并给出相应提示。如果用户在5次内猜对,程序会输出“猜对了”并结束循环;如果5次都猜不对,程序会输出正确答案。

7.创新设计题(共1题,计10分)

18.

```python

importrandom

defget_target_and_attempts(level):

iflevel=="简单":

returnrandom.randint(1,100),5

eliflevel=="困难":

returnrandom.randint(1,200),3

else:

returnNone,None

print("选择难度等级:简单(1)或困难(2)")

level=input("请输入难度等级:")

iflevel=="1":

mode="简单"

eliflevel=="2":

mode="困难"

else:

print("无效的输入,默认为简单模式。")

mode="简单"

target,attempts=get_target_and_attempts(mode)

print(f"你选择了{mode}模式,数字范围{target},你有{attempts}次机会。")

foriinrange(attempts):

guess=int(input("请输入你的猜测:"))

ifguess>target:

print("太大")

elifguess<target:

print("太小")

else:

print("恭喜你!")

break

else:

print("次数用完,正确答案是",target)

```

8.操作题(共2题,每题17分,计34分)

19.

```python

importrandom

counts=[0]*6

foriinrange(6):

dice=random.randint(1,6)

print(f"掷骰子{i+1}:{dice}")

counts[dice-1]+=1

print("点数统计:")

foriinrange(6):

print(f"点数{i+1}:{counts[i]}次")

```

20.

```python

transactions=[]

defadd_transaction():

type_=input("输入交易类型(收入/支出):")

amount=float(input("输入金额:"))

date=input("输入交易日期(YYYY-MM-DD):")

transactions.append({"type":type_,"amount":amount,"date":date})

defquery_transactions(date,type_=None):

total=0

fortintransactions:

ift["date"]==dateand(type_isNoneort["type"]==type_):

total+=t["amount"]ift["type"]=="收入"else-t["amount"]

returntotal

print("1.添加交易记录")

print("2.查询特定日期的收入总额")

print("3.查询特定日期的支出总额")

print("4.查询所有交易记录")

print("0.退出")

whileTrue:

choice=input("请输入操作编号:")

ifchoice=="1":

add_transaction()

elifchoice=="2":

date=input("输入日期(YYYY-MM-DD):")

total_income=query_transactions(date,"收入")

print(f"{date}的收入总额:{total_income}")

elifchoice=="3":

date=input("输入日期(YYYY-MM-DD):")

total_expense=query_transactions(date,"支出")

print(f"{date}的支出总额:{total_expense}")

elifchoice=="4":

fortintransactions:

print(f"类型:{t['type']},金额:{t['amount']},日期:{t['date']}")

elifchoice=="0":

break

else:

print("无效的输入,请重新输入。")

```

9.编程实现题(共1题,计18分)

21.

```python

fromcollectionsimportCounter

defcount_letters(s):

s=s.lower()

letters=[cforcinsifc.isalpha()]

returnCounter(letters)

input_str=input("输入一个字符串:")

letter_counts=count_letters(input_str)

result=",".join([f"{k}:{v}"fork,vinsorted(letter_counts.items())])

print(result)

```

10.逻辑思维题(共1题,计12分)

22.该程序计算了1到10之间所有偶数的和和所有奇数的和。输出结果为:

偶数之和:30

奇数之和:55

11.应用题(共1题,计14分)

23.

```python

books={}

borrow_records={}

defadd_book():

isbn=input("输入图书ISBN:")

title=input("输入图书书名:")

author=input("输入图书作者:")

books[isbn]={"title":title,"author":author,"status":"可借"}

defborrow_book():

isbn=input("输入图书ISBN:")

ifisbninbooks:

ifbooks[isbn]["status"]=="可借":

date_borrowed=input("输入借阅日期(YYYY-MM-DD):")

borrow_records[isbn]={"date_borrowed":date_borrowed,"date_returned":None}

books[isbn]["status"]="已借出"

print("借阅成功!")

else:

print("图书已借出!")

else:

print("图书不存在!")

defreturn_book():

isbn=input("输入图书ISBN:")

ifisbninborrow_records:

date_returned=input("输入归还日期(YYYY-MM-DD):")

borrow_records[isbn]["date_returned"]=date_returned

books[isbn]["status"]="可借"

print("归还成功!")

else:

print("该图书未借出!")

defquery_status():

isbn=input("输入图书ISBN:")

ifisbninbooks:

status=books[isbn]["status"]

ifstatus=="已借出":

ifisbninborrow_records:

print(f"图书《{books[isbn]['title']}》已借出,借阅日期:{borrow_records[isbn]['date_borrowed']}")

else:

print(f"图书《{books[isbn]['title']}》已借出,但借阅记录不存在!")

else:

print(f"图书《{books[isbn]['title']}》可借。")

else:

print("图书不存在!")

print("1.图书信息录入")

print("2.借阅记录管理")

print("3.图书查询")

print("4.归还记录管理")

print("0.退出")

whileTrue:

choice=input("请输入操作编号:")

ifchoice=="1":

add_book()

elifchoice=="2":

borrow_book()

elifchoice=="3":

query_status()

elifchoice=="4":

return_book()

elifchoice=="0":

break

else:

print("无效的输入,请重新输入。")

```

12.创新设计题(共1题,计16分)

24.

```python

importrandom

importstring

defgenerate_password(length,uppercase,lowercase,digits,special):

characters=""

ifuppercase:

characters+=string.ascii_uppercase

iflowercase:

characters+=string.ascii_lowercase

ifdigits:

characters+=string.digits

ifspecial:

characters+=string.punctuation

ifnotcharacters:

print("至少选择一种字符类型!")

returnNone

password=''.join(random.choice(characters)for_inrange(length))

returnpassword

print("选择密码长度:")

length=int(input("请输入长度:"))

uppercase=input("是否包含大写字母(是/否):")=="是"

lowercase=input("是否包含小写字母(是/否):")=="是"

digits=input("是否包含数字(是/否):")=="是"

special=input("是否包含特殊字符(是/否):")=="是"

password=generate_password(length,uppercase,lowercase,digits,special)

ifpassword:

print(f"生成的密码:{password}")

```

13.算法设计题(共1题,计20分)

25.

```python

defbubble_sort(arr,reverse=False):

n=len(arr)

foriinrange(n):

forjinrange(0,n-i-1):

if(arr[j]>arr[j+1])==reverse:

arr[j],arr[j+1]=arr[j+1],arr[j]

returnarr

input_numbers=list(map(int,input("输入一组数字,用空格分隔:").split()))

order=input("选择排序方式(升序/降序):")

iforder=="升序":

sorted_numbers=bubble_sort(input_numbers)

eliforder=="降序":

sorted_numbers=bubble_sort(input_numbers,reverse=True)

else:

print("无效的排序方式,默认为升序。")

sorted_numbers=bubble_sort(input_numbers)

print("排序后的结果:",sorted_numbers)

```

14.综合应用题(共1题,计22分)

26.

```python

students={}

defadd_student():

student_id=input("输入学生学号:")

name=input("输入学生姓名:")

math=float(input("输入数学成绩:"))

chinese=float(input("输入语文成绩:"))

english=float(input("输入英语成绩:"))

students[student_id]={"name":name,"scores":{"math":math,"chinese":chinese,"english":english}}

defquery_student():

key=input("输入学号或姓名查询:")

forsid,infoinstudents.items():

ifkey==sidorkey==info["name"]:

avg=sum(info["scores"].values())/len(info["scores"])

print(f"学号:{sid},姓名:{info['name']},数学:{info['scores']['math']},语文:{info['scores']['chinese']},英语:{info['scores']['english']},平均分:{avg:.2f}")

break

else:

print("未找到学生!")

defcalculate_statistics():

averages=[]

forinfoinstudents.values():

avg=sum(info["scores"].values())/len(info["scores"])

averages.append((info["name"],avg))

averages.sort(key=lambdax:x[1],reverse=True)

print("排名前五的学生:")

forname,avginaverages[:5]:

print(f"姓名:{name},平均分:{avg:.2f}")

defmodify_scores():

student_id=input("输入学生学号:")

ifstudent_idinstudents:

math=float(input("输入新的数学成绩:"))

chinese=float(input("输入新的语文成绩:"))

english=float(input("输入新的英语成绩:"))

students[student_id]["scores"]={"math":math,"chinese":chinese,"english":english}

print("成绩修改成功!")

else:

print("未找到学生!")

print("1.学生信息录入")

print("2.成绩查询")

print("3.成绩统计")

print("4.成绩修改")

print("0.退出")

whileTrue:

choice=input("请输入操作编号:")

ifchoice=="1":

add_student()

elifchoice=="2":

query_student()

elifchoice=="3":

calculate_statistics()

elifchoice=="4":

modify_scores()

elifchoice=="0":

break

else:

print("无效的输入,请重新输入。")

```

15.拓展应用题(共1题,计24分)

27.

```python

products={}

cart=[]

orders=[]

defadd_product():

product_id=input("输入商品编号:")

name=input("输入商品名称:")

price=float(input("输入商品价格:"))

products[product_id]={"name":name,"price":price}

defadd_to_cart():

product_id=input("输入商品编号:")

ifproduct_idinproducts:

quantity=int(input("输入购买数量:"))

cart.append({"product_id":product_id,"quantity":quantity,"price":products[product_id]["price"]})

print(f"已添加{quantity}个《{products[product_id]['name']}》到购物车。")

else:

print("商品不存在!")

defview_cart():

ifnotcart:

print("购物车为空!")

return

print("购物车中的商品:")

total=0

foritemincart:

print(f"商品编号:{item['product_id']},名称:{products[item['product_id']]['name']},数量:{item['quantity']},单价:{item['price']},小计:{item['quantity']*item['price']}")

total+=item['quantity']*item['price']

print(f"购物车总金额:{total}")

defgenerate_order():

ifnotcart:

print("购物车为空,无法生成订单!")

return

order_id=input("输入订单编号:")

order={"order_id":order_id,"items":cart.copy(),"total":sum(item['quantity']*item['price']foritemincart)}

orders.append(order)

print(f"订单{order_id}生成成功,总金额:{order['total']}")

cart.clear()

defpayment():

ifnotorders:

print("没有订单可以支付!")

return

print("订单列表:")

fori,orderinenumerate(orders):

print(f"订单编号:{order['order_id']},总金额:{order['total']}")

order_id=input("输入要支付的订单编号:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论