当前位置: 首页 > news >正文

Python小白学习教程从入门到入坑------习题课2(基础巩固)

目录

一、选择题

二、实战题

2.1 实战1:输入一个年份,判断是否是闰年

2.2 实战2:模拟10086查询功能

2.3 实战3:使用嵌套循环输出九九乘法表

2.4 实战4:猜数游戏



一、选择题

1、以下选项符合Python语法要求且能够正确执行的是:( B )
A. min=x if x<y =y
B. min=x if x<y else y
C. if (x>y) print(x)
D. min=x>y ? x:y

【解析】:

选项 A 有语法错误,因为它错误地使用了赋值操作符 = 在条件表达式中。

选项 B 是正确的,因为它正确地使用了 Python 的条件表达式语法。

选项 C 有语法错误,因为它缺少了 if 语句后必需的冒号和缩进的代码块。

选项 D 有语法错误,因为它使用了 C 语言风格的条件表达式,这在 Python 中是不合法的。

2、下面代码的输出结果是(C)

for i in range(8):if i%2!=1:continueelse:print(i,end=',')

A. 0

B. 1

C. 1,3,5,7

D. 0,2,4,6

【解析】:

循环范围:range(8) 生成一个从 0 到 7 的整数序列(包括 0,不包括 8)

条件判断:if i % 2 != 1 检查 i 是否为奇数。这里 % 是取模运算符,i % 2 计算 i 除以 2 的余数。如果余数不等于 1(即 i 不是奇数),则执行 continue 语句

continue 语句:continue 会跳过当前循环的剩余部分,并继续下一次循环迭代。这意味着如果 i 不是奇数,print 语句将不会被执行

3、以下选项中不能退出循环的是 ( A )

while True:num = eval('请输入一个整数:')if num//3:break

A. 2

B. 3

C. 4

D. 7

【解析】:if num // 3: 语句检查 num 除以 3 的整数商是否非零。在 Python 中,整数除法 // 会返回商的整数部分,如果结果不为零,则条件为真

4、下面代码输出的图形是 ( A )

for i in range(-3,4):if i<0:print(' '*(-i)+'*'*(4+i))elif i>0:print(' '*3+'*'*(4-i))else:print('*'*7)

【解析】:

循环范围

range(-3, 4) 生成一个从 -3 到 3 的整数序列(包括 -3,不包括 4)

条件判断:

如果 i < 0,则执行第一个 print 语句

如果 i > 0,则执行第二个 print 语句

如果 i == 0,则执行 else 子句中的 print 语句

输出分析:

当 i = -3 时,输出 ' '*(-(-3)) + '*'*(4 + (-3)),即 ' '*3 + '*'*1,结果是:   *

当 i = -2 时,输出 ' '*(-(-2)) + '*'*(4 + (-2)),即 ' '*2 + '*'*2,结果是:  **

当 i = -1 时,输出 ' '*(-(-1)) + '*'*(4 + (-1)),即 ' '*1 + '*'*3,结果是: ***

当 i = 0 时,输出 '*'*7,结果是 *******。

下面同理可得...

将这些输出组合起来,我们得到的图形是:

   ******
*************

5、下面代码的输出结果是( B )

a = 0
for i in range(1,5):a+=i
print(a)

A. 0

B. 10

C. 11

D. 15

【解析】:

初始化变量 a 被初始化为 0

循环:for i in range(1, 5): 创建一个循环,其中 i 的值从 1 变化到 4(包括 1,不包括 5)

循环体:在每次循环迭代中,执行 a += i,这相当于 a = a + i

累加过程:

当 i = 1 时,a 变为 0 + 1 = 1

当 i = 2 时,a 变为 1 + 2 = 3

当 i = 3 时,a 变为 3 + 3 = 6

当 i = 4 时,a 变为 6 + 4 = 10

输出结果:循环结束后,打印 a 的值,即 10

6、下面代码的输出结果是( B )

for i in 'Welcome to BeiJing':if i=='B':breakelse:print(i,end='')

A. Welcome

B. Welcome to

C. BeiJing

D. Welcome to BeiJing

【解析】:

循环:for i in 'Welcome to BeiJing': 创建一个循环,其中 i 将依次遍历字符串 'Welcome to BeiJing' 中的每个字符

条件判断:在每次循环迭代中,检查 i 是否等于 'B'

if 子句:如果 i 等于 'B',则执行 break 语句,立即终止循环

else 子句:如果 i 不等于 'B',则执行 print(i, end=''),打印字符 i 而不换行(end='' 参数指定了不以默认的换行符 \n 结尾)

最终结果:由于循环在遇到字符 'B' 时被终止,因此输出的字符串是 'Welcome to '(注意结尾有一个空格)

7、下面代码的输出结果是(D)

for i in 'python':for j in range(2):print(i,end='')if i == 'h':break

A. ppyytthhoonn

B. python

C. ppyytt

D. ppyytthoonn

【解析】:

外层循环:for i in 'python': 创建一个循环,其中 i 将依次遍历字符串 'python' 中的每个字符:'p', 'y', 't', 'h', 'o', 'n'

内层循环:对于外层循环中的每个 i,执行 for j in range(2):,这意味着内层循环将执行两次(j 的值为 0 和 1)

打印字符:在内层循环中,print(i, end='') 会打印字符 i 而不换行(由于 end='')

条件判断:接着,检查 if i == 'h':。如果条件为真(即 i 等于 'h'),则执行 break 语句

输出过程:

当 i = 'p' 时,内层循环打印 'pp'

当 i = 'y' 时,内层循环打印 'yy'

当 i = 't' 时,内层循环打印 'tt'

当 i = 'h' 时,内层循环第一次迭代打印 'h',然后遇到 if i == 'h': 条件为真,执行 break,跳出内层循环(因此不会打印第二个 'h')

当 i = 'o' 时,内层循环打印 'oo'

当 i = 'n' 时,内层循环打印 'nn'

最终结果:所有打印的字符连在一起,不换行,形成输出字符串

8、以下程序中,while循环的执行次数是( C )

i=0
while i<10:if i<1:print('Hello')continueif i==5:print('World')breaki+=1

A. 10 次

B. 4次

C. 死循环

D. 5次

 【解析】:

初始化:变量 i 被初始化为 0

循环条件:while i < 10: 表示当 i 小于 10 时,循环继续执行

第一次循环:

i = 0,满足 i < 1,因此执行 print('Hello')

continue 语句导致跳过当前循环的剩余部分,直接进行下一次循环迭代,因此 i += 1 没有被执行

循环回到顶部,但由于 continue 跳过了 i += 1,i 仍然是 0

第二次循环(注意,这是由于上一步的 continue 导致的重新检查循环条件):

i = 0(仍然是 0,因为 i += 1 没有执行),满足 i < 1,再次执行 print('Hello')

再次遇到 continue,跳过 i += 1,

……

循环往复成为死循环

二、实战题

2.1 实战1:输入一个年份,判断是否是闰年

要求:从键盘获取一个四位的整数年份,判断其是否是闰年,闰年的判断条件为:能被4整除但不能被100整除,或者能被400整除。

【参考】:

year=eval(input("请输入一个四位的年份:"))
if(year%4==0 and year%100!=0) or year%400==0:print(year,"年是闰年")
else:print("year",'年是平年')

输入2023则输出:

请输入一个四位的年份:2023
2023 年是平年

输入2024则输出:

请输入一个四位的年份:2024
2024 年是闰年

2.2 实战2:模拟10086查询功能

需求:输入1,显示当前余额;输入2,显示当前的剩余流量,单位为G;输入3,显示当前的剩余通话,单位为分钟;输入0,退出自助查询系统。

【参考】:

#(1)初始化变量
answer='y'
#(2)条件判断
while answer=='y':
#(3)循环操作,语句块print('------------欢迎使用10086查询功能----------')print('1.查询当前余额')print('2.查询当前的剩余流量')print('3.查询当前的剩余通话时长')print('0.退出系统')choice=input('请输入您要执行的操作:')  # input的结果是字符串类型if choice=='1':print('当前余额为:123.5元')elif choice=='2':print("当前的剩余流量为:4GB")elif choice=='3':print("当前的剩余通话时间长为:300分钟")elif choice=='0':print('程序退出,谢谢您的使用')breakelse:print('对不起,您输入的有误,请重新输入')# (4)改变变量answer=input("还继续操作吗?y/n")
else:  # while...elseprint('程序退出,谢谢您的使用')

参考输出结果:不同的输入,对应不同的输出

------------欢迎使用10086查询功能----------
1.查询当前余额
2.查询当前的剩余流量
3.查询当前的剩余通话时长
0.退出系统
请输入您要执行的操作:1
当前余额为:123.5元
还继续操作吗?y/ny
------------欢迎使用10086查询功能----------
1.查询当前余额
2.查询当前的剩余流量
3.查询当前的剩余通话时长
0.退出系统
请输入您要执行的操作:3
当前的剩余通话时间长为:300分钟
还继续操作吗?y/nn
程序退出,谢谢您的使用进程已结束,退出代码 0

2.3 实战3:使用嵌套循环输出九九乘法表

要求:使用嵌套循环输出九九乘法表,内层循环与外层循环的关系,输出的数据的个数与行数相同,即第一行输出一个,1*1=1,第二行输出两个1*2=2 2*2=4 依次类推。

【参考】:

# 九九乘法表
for i in range(1, 10):  # 外层循环控制行数for j in range(1, i + 1):  # 内层循环控制每行输出的数据个数,与外层循环变量i相关# 输出乘法表达式和结果,注意格式化输出以保持对齐print(f"{j}*{i}={i*j}", end='\t')   # 用制表符隔开# 每行输出完毕后换行print()

运行结果:

1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

2.4 实战4:猜数游戏

需求:随机生成一个1~100之间的整数,然后用户循环猜这个数,对于用户的输入,可提示“大了”,“小了”直到猜准确为止,输出用户的猜测次数(猜测次数不大于10次)。

 【参考】:

import random# 随机生成一个1到100之间的整数
rand = random.randint(1, 100)count=1  # 记录猜数的次数while count<=10:# 获取用户的输入,并将其转换为整数number = int(input("在我心中有个数,在1-100之间,请你猜一猜: "))if number==rand:print('猜对了')breakif number < rand:print("小了")elif number > rand:print("大了")count+=1   # 每猜一次count次数要加1
# 判断次数
if count<=3:print('真聪明,一共猜了',count,'次')elif count <= 6:print('还可以,一共猜了', count,'次')
else:print('猜的次数有点多啊,一共猜了', count,'次')

程序运行结果:

在我心中有个数,在1-100之间,请你猜一猜: 50
小了
在我心中有个数,在1-100之间,请你猜一猜: 75
猜对了
真聪明,一共猜了 2 次

今天的分享就到这里了,希望能够对大家有所帮助~

相关文章:

Python小白学习教程从入门到入坑------习题课2(基础巩固)

目录 一、选择题 二、实战题 2.1 实战1&#xff1a;输入一个年份&#xff0c;判断是否是闰年 2.2 实战2&#xff1a;模拟10086查询功能 2.3 实战3&#xff1a;使用嵌套循环输出九九乘法表 2.4 实战4&#xff1a;猜数游戏 一、选择题 1、以下选项符合Python语法要求且能够…...

基于IPMI_SSH的服务器硬件监控指标解读

随着企业IT架构的日益复杂化&#xff0c;对服务器的实时监控和管理变得至关重要。监控易作为一款功能强大的监控软件&#xff0c;支持通过IPMI_SSH的方式对服务器硬件进行远程监控&#xff0c;确保服务器的稳定运行。本文将针对监控易中基于IPMI_SSH的服务器硬件监控指标进行解…...

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…...

(33)iptables设置防火墙策略常用命令(docker环境、非docker环境)

#普通环境&#xff08;非docker&#xff09; # 拒绝所有对端口 31001 的访问 iptables -A INPUT -p tcp --dport 31001 -j DROP # 允许 IP 地址 20.59.30.77 访问端口 31001 (此处用的是虚拟机 所以要使用nat地址的网关) iptables -I INPUT 1 -p tcp -s 20.59.30.77 --dpor…...

fastadmin中动态下拉组件(SelectPage)的使用

实现的功能如下&#xff1a; 1、支持模糊搜索&#xff1b;2、分页功能&#xff1b;3支持多选 官方文档&#xff1a;https://doc.fastadmin.net/doc/178.html html页面引用组件 <div class"form-group"><label class"control-label col-xs-12 col-sm-2…...

通过Python 调整Excel行高、列宽

在Excel中&#xff0c;默认的行高和列宽可能不足以完全显示某些单元格中的内容&#xff0c;特别是当内容较长时。通过调整行高和列宽&#xff0c;可以确保所有数据都能完整显示&#xff0c;避免内容被截断。合理的行高和列宽可以使表格看起来更加整洁和专业&#xff0c;尤其是在…...

力扣-Mysql-3278. 寻找数据科学家职位的候选人 II(中等)

一、题目来源 3278. 寻找数据科学家职位的候选人 II - 力扣&#xff08;LeetCode&#xff09; 二、数据表结构 表&#xff1a;Candidates ----------------------- | Column Name | Type | ----------------------- | candidate_id | int | | skill | varch…...

Android笔记(三十六):封装一个Matrix从顶部/底部对齐的ImageView

背景 ImageView的scaleType默认显示图片是这样&#xff0c;但是有时候设计稿需求希望图片左右能紧贴着ImageView左右边缘&#xff0c;又不破坏图片的比例&#xff0c;用自带的matrix&#xff0c;centerCrop等都可以满足 但是都会造成图片的某些区域被裁剪了&#xff0c;如果设…...

web 入门

学习 Web 开发的基础&#xff0c;建议从以下几个方面入门&#xff0c;按步骤循序渐进学习核心知识&#xff1a; 1. 了解 Web 的基础概念 在开始编码之前&#xff0c;先理解 Web 开发的基本工作原理&#xff1a; Web 前端与后端&#xff1a; 前端&#xff1a;负责用户界面和用…...

京东 2025届秋招 自然语言处理

文章目录 个人情况一面/HR面 10min二面/技术面 1h三面/技术面 1h四面/线下HR面 20min 个人情况 先说一下个人情况&#xff1a; 学校情况&#xff1a;211本中9硕&#xff0c;本硕学校都一般&#xff0c;本硕都是计算机科班&#xff0c;但研究方向并不是NLP&#xff0c;而是图表…...

Mybatis框架之模板方法模式 (Template Method Pattern)

MyBatis 中也使用到了 模板方法模式 (Template Method Pattern)&#xff0c;主要体现在 执行 SQL 语句的流程控制 上。模板方法模式允许 MyBatis 定义数据库操作的标准流程&#xff0c;并允许子类或特定实现类去实现某些步骤。这种模式使得 MyBatis 能够在处理不同类型的 SQL 操…...

【进阶系列】python简单爬虫实例

python有一个很强大的功能就是爬取网页的信息&#xff0c;这里是CNBlogs 网站&#xff0c;我们将以此网站为实例&#xff0c;爬取指定个页面的大标题内容。代码如下&#xff1a; 首先是导入库&#xff1a; # 导入所需的库 import requests # 用于发送HTTP请求 from bs4 impor…...

️虚拟机配置NAT和Bridge模式

虚拟机的网络配置 桥接 通过使用物理机网卡 具有单独ip NAT 把物理机为路由器进行上网 NAT模式&#xff1a; 所谓nat模式&#xff0c;就是虚拟系统会通过宿主机的网络来访问外网&#xff0c;而这里的宿主机相当于有两个网卡&#xff0c;一个是真实网卡&#xff0c;一个是虚拟…...

解决Spring Boot整合Redis时的连接问题

前言 在使用Spring Boot整合Redis的过程中&#xff0c;经常会遇到连接问题&#xff0c;尤其是当Redis服务部署在远程服务器上时。 问题描述 当你尝试连接到Redis服务器时&#xff0c;可能会遇到以下错误&#xff1a; org.springframework.data.redis.connection.PoolExcept…...

109. UE5 GAS RPG 实现检查点的存档功能

在这一篇文章里&#xff0c;我们接着实现存档的功能&#xff0c;保存当前玩家的生成位置&#xff0c;游戏里有很多中方式去实现玩家的位置存储&#xff0c;这里我们采用检查点的方式&#xff0c;当玩家接触到当前检查点后&#xff0c;我们可以通过检查点进行保存玩家的状态&…...

springboot005基于springboot学生心理咨询评估系统得设计与实现。

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…...

ESC算法/逃生:一种基于人群疏散行为的优化方法

文章介绍了一种有用的算法&#xff0c;称为逃生或逃生算法&#xff08;ESC&#xff09;&#xff0c;受人群疏散行为的启发&#xff0c;用于解决现实世界的案例和基准问题。ESC算法模拟了疏散过程中人群的行为&#xff0c;其中人群在探索阶段被分为平静、羊群和恐慌组&#xff0…...

构建安全的数据库环境:群晖NAS安装MySQL和phpMyAdmin详细步骤

文章目录 前言1. 安装MySQL2. 安装phpMyAdmin3. 修改User表4. 本地测试连接MySQL5. 安装cpolar内网穿透6. 配置MySQL公网访问地址7. 配置MySQL固定公网地址8. 配置phpMyAdmin公网地址9. 配置phpmyadmin固定公网地址 前言 本文将详细讲解如何在群晖NAS上安装MySQL及其数据库管理…...

【人工智能】深入理解图神经网络(GNN):用Python实现社交网络节点分类与分子结构分析

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图神经网络(Graph Neural Network, GNN)是近年来在深度学习领域迅速发展的新兴方向,主要用于处理图结构数据。GNN在社交网络分析、化学分…...

Qt 日志文件的滚动写入

Qt 日志文件的滚动写入 flyfish 日志文件的滚动写入功能。在日志文件达到10MB时创建新的日志文件&#xff0c;并且在总日志文件大小达到10GB时开始覆盖最早的日志文件 以监控一个文件夹的写日志为例 日志文件创建与管理 初始化日志文件&#xff1a;在FileMonitor类的构造函…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...