文章目录
码字不易,希望大家点赞支持一下
使用方法:磨刀不误砍柴工,建议大家花上两个小时把这些例子跟着敲一遍,熟悉一下python的基本操作,这里出现的都是我之前刷蓝桥杯题目的时候常出现的能用到的python语法
一、循环结构
1. for 循环
1. 1 range( ) 函数 (非常重要)
- range() 函数用于生成一系列数字,用于循环结构的遍历
- range(start, stop, step): 从 start 开始,到 stop 结束(不含 stop),步长 step (默认为 1)
- range(5) : 从 0 开始从 4 结束: 0,1,2,3,4
- range(0, 10, 3) : 从 0 开始从 9 结束,步长为 3 : 0,3, 6, 9
- range(10, -1, -2): 从 10 开始到 -1 结束(不含 -1),步长 -2 : 10,8,6,4,2,0
2. for 语句
for iterating_var in sequence:
代码块
iterating_var : 循环变量,一般为i,j,k
sequence : 序列或者可迭代对象,一般为 range(xx)
1.2 如何用for循环输出偶数
输出 1~n 之间的偶数
# 输入一个 n
n = int(input())
# 方法1:
# 输出1~n的偶数,range(start,stop,step)
# 第一个偶数为2,所以start为2, 然后步长为2就都是偶数了
for i in range(0, n + 1, 2):
print(i, end = ' ')
# 方法2:
for i in range(1, n + 1):
if i % 2 == 0:
print(i, end = ' ')
1.3 如何利用for循环计算累加和
输入一个整数n,计算 1+2+3...+n的值
n = int(input())
# 方法1:逐个相加
# res 记录总和,初始化为0
res = 0
for i in range(1, n + 1):
res += i
print(res)
# 方法2:数学方法
res = n * (n + 1) // 2
print(res)
1.4 如何利用for循环计算阶乘
计算阶乘
输入一个整数n,输出n!的值
n = int(input())
# 逐个相乘
# res 记录总和,初始化为0
res = 1
for i in range(1, n + 1):
res *= i
print(res)
2. while 循环
2.1 while 语句
- 下面原理图来自:菜鸟教程: https://www.runoob.com/python/python-while-loop.html
- 条件表达式成立,执行代码块
- 下面这个例子体现了 while 向列表中添加和删除元素的过程
- append( ) 和 pop( ) 还记得吗? 在基础知识(1)里提到过:【31天蓝桥杯冲刺!】蓝桥杯相关的 Python 知识点总结(1)输入输出数据的相关操作(详细)
2.2 break 和 continue
- break 语句可以跳出 for 和 while 循环体
- continue 语句被用来告诉 python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
- 总结: break语句是直接结束循环; continue语句是跳过本次,继续执行下一次循环
2.3 几种使用while循环的例题
- 不知道循环次数,只知道循环条件:用 while 循环
- 例1:
s = 1 + 2 + 3 + ... n, 求s>1000时,n最小为多少?
当 s 不超过 1000 时,需要继续累加
s, n = 0, 0
while s <= 1000:
n += 1
s += n
print(n)
- 例2:
利用辗转相除法求数字m和n的最大公约数
原理:两个整数的最大公约数等于其中较小的数和两束相除余数的最大公约数
循环条件: 当余数不为0时继续循环
m = 1997 n = 615
1997 / 615 = 3 (余152)
615 / 152 = 4 (余7)
152 / 7 = 21 (余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
最大公约数为1
m = int(input())
n = int(input())
# 先求余数
r = m % n
while r != 0:
# 新一轮的被除数m=上一轮的除数n
# 新一轮的除数n=上一轮的余数
m = n
n = r
# 新一轮的余数
r = m % n
print(n)
二、选择结构
1.1 条件表达式:关系运算符
- 关系运算符用于数值的大小比较,一般用于条件表达式
包括: 大于>、 小于<、 等于=、 大于等于>=、 小于等于<=、 不等于!=
- 它们都是双目运算符
- 关系运算的结果都是 bool 型,值只有两种 : False 或 True
- False 代表关系不对立,True 代表关系成立
1.2 逻辑表达式
- Python中提供了三种逻辑运算符
- 与运算:and ; 或运算:or ; 非运算:not
- 与运算符和或运算符均为双目运算符。具有左结合性
- 非运算符为单目运算符,具有右结合性
- 短路操作(重点):在 python 中,and 和 or 不一定会计算右表达式的值,有时候只计算左边表达式的值就能得到最终的结果
- 另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果
and运算符,两边的值都为真时最终结果才为真,但是只要有一个值为假,
那么最终结果就是假,所以python按照下面的规则执行and运算
1. 如果左边的表达式为假,那么就不用计算右边表达式的值了,因为不管右边的值是什么,
都不会影响最终的结果,最终的结果都是假,此时and会把左边表达式的值作为最终结果
2. 如果左边的表达式为真,那么最终的结果不能确定的,and会继续计算右边表达式的值,
并将右边表达式的值作为最终的结果
例程: # False
a = 10
print(a < 5 and a > 0)
or运算符,两边的值都为假时最终结果才为假,但是只要有一个值为真,
那么最终结果就是真,所以python按照下面的规则执行or运算
1. 如果左边的表达式为真,那么就不用计算右边表达式的值了,因为不管右边的值是什么,
都不会影响最终的结果,最终的结果都是真,此时or会把左边表达式的值作为最终结果
2. 如果左边的表达式为假,那么最终的结果不能确定的,or会继续计算右边表达式的值,
并将右边表达式的值作为最终的结果
例程:# True
a = 10
print(a < 5 or a > 0)
后续有时间我会慢慢把相关例题更新供大家自己练习敲代码
2. if 语句
- 以下原理图来自菜鸟教程:https://www.runoob.com/python3/python3-conditional-statements.html
- if 的相关知识点大家应该在学习其它语法的时候很清楚了,相对于C语言,python中没有 switch…case 语句,但是有类似功能的 match…case 语句
- Python 3.10 增加了 match…case 的条件判断,不需要再使用一连串的 if-else 来判断了。match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
语法格式如下:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
(了解即可,好像从来没用到过)
case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,
保证永远会匹配成功。
- p.s: 其实有时候困难的不是语法,而是判断条件,比如说如何判断闰年?或者判断奇数偶数?或者某些特定的要求。