python基础知识,if,elif语句运用(详细),常见编程例题练习

一、问答题

(1)怎样生成一个满足条件10 ≤ i ≤ 50的随机整数?

import random

i = random.randint(10, 50)

random.randint(a, b) #包含a和b

(2)如果number分别是30和35,那么a中的代码和b中的代码的输出结果是什么?

# 代码a
if number % 2 == 0:print(number,"is even.")		
print(number,"is odd.")

30 is even.

30 is odd.

# 代码b
if number % 2 == 0:print(number,"is even.")
elseprint(number,"is odd.")

35 is odd.

(3)如果是下面的代码中,假设x=3而且y=2,显示它的结果。如果x=3而且y=4,那么结果是什么?如果x=2而且y=2,那么结果是什么?请为这段代码绘制一个流程图。

if x > 2:if y > 2:z = x+yprint("z is,z)else:print("x is",x)

x = 3, y = 2

结果: x is 3

x = 3, y = 4

结果:z is 7

x = 2,y = 2

结果:没有输出

条件为True
条件为False
条件为True
条件为False
begin
x > 2
y > 2
end
statement1
statement2

(4)下面的代码错在哪里?

if score >= 60.0:grade='D'
elif score >= 70.0:grade ='C'
elif score >= 80.0:grade ='B'
elif score >= 90.0:grade = 'A'
else:grade ='F'

每一个if 后面的选项都没有上界

成绩在60—100分之间执行的都是grade = ”D“

(5)下面的代码有哪些错误?

# 代码A
if i > 0:x = 0y = 1
else:y = 0z = 0

没错

# 代码B
if i > 0:x = 0y = 1
else:y = 0z = 0

y = 1 这行代码没有缩进在if语句里面

# 代码C
if i > 0:x = 0y = 1
else:y = 0z = 0

x = 0
y = 1

缩进格式不对

# 代码D
if i > 0:x = 0y = 1
else:y = 0z = 0

x = 0

y = 1

z = 0

这三行代码缩进格式不对

(6)如果number分别为14、15和30,那么下面代码的结果是什么?

# 代码A
if number % 2 == 0:print(number,"is even")
if number % 5 == 0:print(number,"is multiple of 5)
# 代码B
if number % 2 == 0:print(number,"is even")
elif number % 5 == 0:print(number,"is multiple of 5)

(7)下面两条语句相同吗?

# 代码A
if income <= 10000:tax = income * 0.1
elif income <= 20000:tax = 1000 + \(income - 10000) * 0.15
# 代码B
if income <= 10000:tax = income * 0.1
elif income > 10000 and income <= 20000:tax = 1000 + \(income -10000) * 0.15

相同,在代码A中elif的意思就是在income > 10000的情况下,income <= 20000. 所以相同

(8)下面的代码错在哪里?

income = 232323
if income <= 10000:tax = income *0.1
elif income > 10000 and income <= 20000:tax = 1000 + (income - 10000) * 0.15
print(tax)

print(tax)在if elif语句之外,但是tax没有在外面定义所以会报tax未定义的报错,tax只在if elif语句中有意义

(9)假设 x=1,显示下面布尔表达式的结果。

True and (3 > 4)         #False
not (x > 0) and (x > 0)  #False
(x > 0) or (x < 0)       #True
(x != 0) or (x == 0)     #True
(x >= 0) or (x < 0)      #True
(x != 1) == not (x == 1) #True

(10)假设 x=4,y=5,显示下面的布尔表达式的结果。

x >= y >= 0            #False
x <= y >= 0            #True
x != y == 5            #True
(x != 0) or (x == 0)   #True

(11)下面的表达式是否等价?

(x >= 1) and (x < 10)
(1 <= x < 10)

等价

(12)假设当你运行下面的程序,从控制台输入 2,3,6 那么输出结果是什么?

x, y, z = eval(input("Enter three numbers:"))print("(x < y and y < z) is",x < y and y < z)
print("(x < y or y < z) is",x < y or y < z)
print("not(x < y) is"not(x < y))
print("(x < y < z) is",x < y < z)
print("not(x < y < z) is",not(x < y < z))

(x < y and y < z) is True

(x < y or y < z) is True

not(x < y) is False

(x < y < z) is True

not(x < y < z) is False

(13)假设你在运行下列程序时,从控制台输入2、3、6。结果是什么?

x, y, z = eval(input("Enter three numbers:"))
print("sorted" if x < y and y < z else "not sorted')

sorted

解释:这是一个条件表达式,如果x < y 并且y < z这个条件成立那么表达式的值为sorted;否则表达式的值为not sorted

(14)使用if-else语句改写下面的条件表达式。

score = 3 * scale if x > 10 else 4 * scale
tax = income * 0.2 if income > 10000 else income * 0.17 + 1000
print(i if number % 3 == 0 else j)

第一行代码

if x > 10:

​ score = 3 * scale

else:

​ score = 4 * scale

第二行代码

if income > 10000:

​ tax = income * 0.2

else:

​ tax = income * 0.17 + 1000

第三行代码
if number % 3 == 0:

​ print(i)

else:

​ print(j)

(15)计算下面的表达式

2 * 2 - 3 > 2 and 4 - 2 > 5
2 * 2 - 3 > 2 or 4 - 2 > 5

2 * 2 - 3 > 2 and 4 - 2 > 5 <=> 1 > 2 and 2 > 5 : False

2 * 2 - 3 > 2 or 4 - 2 > 5 <=> 1 > 2 or 2 > 5: False

二、编程题

(16)解2×2线程方程

题目描述

如有一个2×2的线程方程组:
a x + b y = e c x + d y = f ax+by=e \\ cx+dy=f ax+by=ecx+dy=f
你可以使用克莱姆法则解该线性方程:
x = e d − b f a d − b c , y = a f − e c a d − b c x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc} x=adbcedbf,y=adbcafec
其中 a d − b c ad-bc adbc 为判别式,如果为零则输出无解

输入输出描述

输入a、b、c、d、e、f六个数据,数据之间用空格分隔

输出两行,第一行x的解,第二行y的解,保留一位小数

示例1

输入:

9.0 4.0 3.0 -5.0 -6.0 -21.0

输出:

-2.0

3.0

示例2

输入:

1.0 2.0 2.0 4.0 4.0 5.0

输出:

无解

a, b, c, d, e, f = map(float, input().split(" "))
if a * d - b * c == 0:print("无解")
else:x = (e * d - b * f) / (a * d - b * c)y = (a * f - e * c) / (a * d - b * c)print(x)print(y)

(17)未来是周几

题目描述

输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,…,星期六是6)

并输入今天之后到未来某天的天数,然后输出该天是星期几

输入输出描述

输入两个数据,分别表示今日星期几的数字和未来某天的天数,数据之间用空格分隔

输出未来某天是星期几

示例1

输入:

1 3

输出:

星期四

示例2

输入:

0 31

输出:

星期三

#输入数据
today, days = map(int, input().split(" "))
result = today + days
#七天为一个轮回
result %= 7
str = " "
if result == 0:str = "星期日"
elif result == 1:str = "星期一"
elif result == 2:str = "星期二"
elif result == 3:str = "星期三"
elif result == 4:str = "星期四"
elif result == 5:str = "星期五"
elif result == 6:str = "星期六"
print(str)

(18)三角形的周长

题目描述

输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法

如果任意两边之和大于第三边则输入都是合法的

输入输出描述

输入三个数据表示三边,数据之间用空格分隔

输出三角形的周长,如果非法则输出非法

示例1

输入:

1 1 1

输出:

3

示例2

输入:

1 3 1

输出:

非法

#输入数据
side1, side2, side3 = map(float, input().split(" "))
#判断边长是否合理
if side1 + side2 > side3 and side1 + side3 > side2 and side3 + side2 > side1:print(f'{(side1 + side2 + side3):.0f}')
else:print("非法")

(19)一周的星期几【录屏讲解】

**视频链接:**录制: 明灯的快速会议
日期: 2025-03-21 13:57:44
录制文件:https://meeting.tencent.com/crm/KzWVAXP823

题目描述

泽勒的一致性是一个由泽勒开发的算法,用于计算一周的星期几,公式如下:
h = ( q + ⌊ 26 ( m + 1 ) 10 ⌋ + k + ⌊ k 4 ⌋ + ⌊ j 4 ⌋ + 5 j ) % 7 h=(q+\lfloor\frac{26(m+1)}{10}\rfloor+k+\lfloor\frac{k}{4}\rfloor+\lfloor\frac{j}{4}\rfloor+5j) \% 7 h=(q+1026(m+1)+k+4k+4j+5j)%7
(1) h h h是指一周的星期几(0表示星期六、1表示星期天、…、6表示星期五)

(2) q q q是一个月的哪一天

(3) m m m是月份(3表示三月、4表示四月、…、12表示十二月),其中一月和二月都是按照前一年的13月和14月来计数的,所以还得把年份改为前一年

(4) j j j是世纪数,即 ⌊ y e a r 100 ⌋ \lfloor\frac{year}{100}\rfloor 100year

(5) k k k是一个世纪的某一年,即 y e a r % 100 year \% 100 year%100

(6) ⌊ ⌋ \lfloor\rfloor 为向下取整符号

输入输出描述

输入年、月、日三个数据,数据之间用空格分隔

输出该日是周几

示例1

输入:

2013 1 25

输出:

星期五

示例2

输入:

2012 5 12

输出:

星期六

import math
#输入年月日
year, m, q = map(int, input().split(" "))
#对1月和2月进行特殊处理
if m == 1 or m == 2:year -= 1m += 12
#计算世纪
j = year  // 100
#公式,计算星期
k = year % 100
h = (q + 26 * (m + 1) / 10 + k + k / 4 + j / 4 + 5 * j) % 7
#取整
h = math.floor(h)
result = ""
if h == 0:result = "星期六"
elif h == 1:result = "星期日"
elif h == 2:result = "星期一"
elif h == 3:result = "星期二"
elif h == 4:result = "星期三"
elif h == 5:result = "星期四"
elif h == 6:result = "星期五"
print(result)

(20) 直线的交点【录屏讲解】

**视频链接:**录制:明灯的快速会议
日期:2025-03-21 14:23:00
录制文件:https://meeting.tencent.com/crm/23V37zn122

题目描述

直线A上的两个点是 ( x 1 , y 1 ) (x1,y1) (x1,y1) ( x 2 , y 2 ) (x2,y2) (x2,y2),直线B上的两个点是 ( x 3 , y 3 ) (x3,y3) (x3,y3) ( x 4 , y 4 ) (x4,y4) (x4,y4)

image-20250314093527261

如果两条直线有交点,可以通过解下面的线性等式找出:
( y 1 − y 2 ) x − ( x 1 − x 2 ) y = ( y 1 − y 2 ) x 1 − ( x 1 − x 2 ) y 1 ( y 3 − y 4 ) x − ( x 3 − x 4 ) y = ( y 3 − y 4 ) x 3 − ( x 3 − x 4 ) y 3 (y_1-y_2)x-(x_1-x_2)y=(y_1-y_2)x_1-(x_1-x_2)y_1 \\ (y_3-y_4)x-(x_3-x_4)y=(y_3-y_4)x_3-(x_3-x_4)y_3 (y1y2)x(x1x2)y=(y1y2)x1(x1x2)y1(y3y4)x(x3x4)y=(y3y4)x3(x3x4)y3
如果没有解,则表示两条直线平行

输入输出描述

输入八个数据,分别为x1 y1 x2 y2 x3 y3 x4 y4,数据之间用空格分隔

如有交点则输出交点的坐标x y,否则输出两条直线平行

示例1

输入:

2 2 5 -1 4 2 -1 -2

输出:

2.89 1.11

示例2

输入:

2 2 7 6 4 2 -1 -2

输出:

两条直线平行

#输入四个坐标
x1, y1, x2, y2, x3, y3, x4, y4 = map(float, input().split(" "))
#求直线A
a1 = y1 - y2
b1 = - (x1 - x2)
c1 = (y1 - y2) * x1 - (x1 - x2) * y1
#求直线B
a2 = y3 - y4
b2 = - (x3 - x4)
c2 = (y3 - y4) * x3 - (x3 - x4) * y3
#计算行列式
D = a1 * b2 - a2 * b1
#判断两条线的关系
if D == 0:print("两条直线平行")
else:#根据克莱姆法则计算交点坐标x = (b2 * c1 - b1 * c2) / Dy = (a1 * c2 - a2 * c1) / Dprint(f'{x:.2f}, {y:.2f}')

(21)两个矩形【录屏讲解】

**视频链接:**录制: 明灯的快速会议
日期: 2025-03-21 14:41:15
录制文件:https://meeting.tencent.com/crm/29m6px0470

题目描述

判断两个矩形之间的关系:包含,重叠,相离

image-20250314093616278

输入输出描述

输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高

输出两者的关系

示例1

输入:

2.5 4 2.5 43

1.5 5 0.5 3

输出:

包含

示例2

输入:

1 2 3 5.5

3 4 4.5 5

输出:

重叠

示例3

输入:

1 2 3 3

40 45 3 2

输出:

相离

#第一个矩形
x1, y1, w1, h1 = map(float, input().split(" "))
#第二个矩形
x2, y2, w2, h2 = map(float, input().split(" "))
#判断关系
if abs(x1 - x2) <= abs(w1 / 2 - w2 / 2) and abs(y1 - y2 ) <= abs(h1 / 2 - h2 / 2):print("包含")
elif abs(x1 - x2 ) <= abs(w1 / 2 + w2 / 2) and abs(y1  - y2) <= abs(h1 / 2 + h2 / 2):print("重叠")
else:print("相离")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37953.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++遍历树,前中后序,递归非递归实现

文章目录 前序遍历中序遍历后序遍历代码解释 前序遍历 递归思路&#xff1a;先访问根节点&#xff0c;然后递归遍历左子树&#xff0c;最后递归遍历右子树。非递归思路&#xff1a;使用栈来模拟递归过程。先将根节点入栈&#xff0c;之后循环执行以下操作&#xff1a;弹出栈顶…

Spring 声明式事务应该怎么学?

1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写&#xff0c;它的设计如此巧妙&#xff0c;以至于在使用中几乎感觉不到它的存在&#xff0c;只需要优雅地加一个 Transactional 注解&#xff0c;一切就都顺理成章地完成了&#xff01; 毫不夸张地讲&#xff…

面试复习-基础网络+运维知识

一、TCP/IP模型及每层对应通信协议 1.1第一层-应用层 作用&#xff1a;服务及应用程序 HTTP --- 超文本传输协议--- 获取网页信息---80&#xff08;TCP 80&#xff09; HTTPS --- HTTP SSL&#xff08;安全传输协议&#xff09;/TLS ---443&#xff08;TCP 443&#xff09; …

HeyGem.ai 全离线数字人生成引擎加入 GitCode:开启本地化 AIGC 创作新时代

在人工智能技术飞速演进的时代&#xff0c;数据隐私与创作自由正成为全球开发者关注的焦点。硅基智能旗下开源项目 HeyGem.ai 近日正式加入 GitCode&#xff0c;以全球首个全离线数字人生成引擎的颠覆性技术&#xff0c;重新定义人工智能生成内容&#xff08;AIGC&#xff09;的…

【C语言】递归:原理、技巧与陷阱

在C语言编程中&#xff0c;递归是一种非常强大且常用的技术。它允许函数自我调用&#xff0c;从而简化代码并解决复杂问题。然而&#xff0c;递归也可能导致性能问题&#xff0c;如栈溢出。本文将深入探讨递归的原理、应用、优化方法&#xff0c;并提供实际代码示例&#xff0c…

【C#语言】C#同步与异步编程深度解析:让程序学会“一心多用“

文章目录 ⭐前言⭐一、同步编程&#xff1a;单线程的线性世界&#x1f31f;1、寻找合适的对象✨1) &#x1f31f;7、设计应支持变化 ⭐二、异步编程&#xff1a;多任务的协奏曲⭐三、async/await工作原理揭秘⭐四、最佳实践与性能陷阱⭐五、异步编程适用场景⭐六、性能对比实测…

[OpenCV】相机标定之棋盘格角点检测与绘制

在OpenCV中&#xff0c;棋盘格角点检测与绘制是一个常见的任务&#xff0c;通常用于相机标定。 棋盘格自定义可参考: OpenCV: Create calibration pattern 目录 1. 棋盘格角点检测 findChessboardCorners()2. 棋盘格角点绘制 drawChessboardCorners()3. 代码示例C版本python版本…

AI-Talk开发板之更换串口引脚

一、默认引脚 CSK6011A使用UART0作为Debug uart&#xff0c;AI-Talk开发板默认使用的GPIOA2和GPIOA3作为Debug uart的RX和TX&#xff0c;通过连接器CN6引出。 二 、更换到其它引脚 查看60xx_iomux_v1.0可以&#xff0c;UART0的tx和rx可以映射到很多管脚上。 结合AI-Talk开发板…

QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)

目录 1. 修改程序界面尺寸和标题 2. 窗体图标 3. 修改可执行程序图标 上一章创建好了一个初始Qt Quick项目。本章介绍基本的项目修改方法。 1. 修改程序界面尺寸和标题 修改Main.qml文件&#xff0c;将程序宽度设置为1200&#xff0c;程序高度设置为800。同时修改程序标题…

【STM32实物】基于STM32的太阳能充电宝设计

基于STM32的太阳能充电宝设计 演示视频: 基于STM32的太阳能充电宝设计 硬件组成: 系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。 功能…

003-掌控命令行-CLI11-C++开源库108杰

首选的现代C风格命令行参数解析器! &#xff08;本课程包含两段教学视频。&#xff09; 以文件对象监控程序为实例&#xff0c;五分钟实现从命令行读入多个监控目标路径&#xff1b;区分两大时机&#xff0c;学习 CLI11 构建与解析参数两大场景下的异常处理&#xff1b;区分三…

OpenCV图像拼接(2)基于羽化(feathering)技术的图像融合算法拼接类cv::detail::FeatherBlender

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::FeatherBlender 是 OpenCV 中用于图像拼接的一个类&#xff0c;它属于 stitching 模块的一部分。这个类实现了基于羽化&#xff08;…

如何用Function Calling解锁OpenAI的「真实世界」交互能力?(附Node.js 实战)

一、Function Calling&#xff1a;大模型的「手脚延伸器」 1.1 核心定义 Function Calling是OpenAI在2023年6月13日推出的革命性功能&#xff08;对应模型版本gpt-3.5-turbo-0613和gpt-4-0613&#xff09;&#xff0c;允许开发者通过自然语言指令触发预定义函数&#xff0c;实…

鸿蒙ArkTS+ArkUI实现五子棋游戏

鸿蒙ArkTSArkUI实现五子棋游戏 前言 近期&#xff0c;鸿蒙系统热度飙升&#xff0c;引发了周围众多朋友的热烈探讨。出于这份浓厚的好奇心&#xff0c;我初步浏览了其官方文档&#xff0c;发现信息量庞大&#xff0c;全面消化需耗时良久并考验人的毅力。自踏入编程领域以来&am…

单元测试mock

一、背景 现在有A类,B类,C类&#xff0c;A类依赖B类,依赖C类&#xff0c;如果想要测试A类中的某个方法的业务逻辑。A类依赖其他类&#xff0c;则把其他类给mock&#xff0c;然后A类需要真实对象。这样就可以测试A类中的方法。 举例&#xff1a;Ticket类需要调用Flight类和Pas…

深度学习篇---深度学习中的范数

文章目录 前言一、向量范数1.L0范数1.1定义1.2计算式1.3特点1.4应用场景1.4.1特征选择1.4.2压缩感知 2.L1范数&#xff08;曼哈顿范数&#xff09;2.1定义2.2计算式2.3特点2.4应用场景2.4.1L1正则化2.4.2鲁棒回归 3.L2范数&#xff08;欧几里得范数&#xff09;3.1定义3.2特点3…

JVM常见概念之条件移动

问题 当我们有分支频率数据时&#xff0c;有什么有趣的技巧可以做吗&#xff1f;什么是条件移动&#xff1f; 基础知识 如果您需要在来自一个分支的两个结果之间进行选择&#xff0c;那么您可以在 ISA 级别做两件不同的事情。 首先&#xff0c;你可以创建一个分支&#xff…

Debug-037-table列表勾选回显方案

效果展示&#xff1a; 图1 图2 最近实现一个支持勾选的el-table可以回显之前勾选项的功能。实现了一个“编辑”的功能&#xff1a; 在图1中的列表中有三行数据&#xff0c;当点击“更换设备”按钮时&#xff0c;打开抽屉显示el-table组件如图2所示&#xff0c;可以直接回显勾选…

Python散点图(Scatter Plot):数据探索的“第一张图表”

在数据可视化领域,散点图是一种强大而灵活的工具,它能够帮助我们直观地理解和探索数据集中变量之间的关系。本文将深入探讨散点图的核心原理、应用场景以及如何使用Python进行高效绘制。 后续几篇将介绍高级技巧、复杂应用场景。 Python散点图(Scatter Plot):高阶分析、散点…

docker利用ollama +Open WebGUI在本地搭建部署一套Deepseek-r1模型

系统&#xff1a;没有限制&#xff0c;可以运行docker就行 磁盘空间&#xff1a;至少预留50GB; 内存&#xff1a;8GB docker版本&#xff1a;4.38.0 桌面版 下载ollama镜像 由于docker镜像地址&#xff0c;网络不太稳定&#xff0c;建议科学上网的一台服务器拉取ollama镜像&am…