if语句
在编程中if语句是一种根据条件执行不同代码块的控制结构,他根据条件的真假来分支程序的执行路径,所以我们可以通过if语句根据不同情况而执行不同的程序
if [条件(bool值或者计算结果为bool类型的算式)] :
a=11
if a>10:
print("a大于10") # --> a大于10
注意与if的缩进关系 如果对齐那就不属于if所执行的语句,如果比if多一个缩进,那么就在if执行的语句里面
判断空与非空(None)
在python中None表示什么都没有,相当于C语言中的NULL
a = None
if a==None:
print("a is None")
image-20231225232955439代码块
- 代码块是编程中一组逻辑组织的语句,他可以组合控制结构,如
循换条件语句
屏幕截图 2023-12-25 233336
if else
if []:
[代码块]
else:
[代码块]
elif(是if else的简写)
**ifelifelse**的关系
ifelifelse 三者是 独立互斥的关系,程序只会执行其中一个分支的代码块
条件判断的练习
2413. 最小偶倍数
给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。
示例 1:
输入:n = 5
输出:10
解释:5 和 2 的最小公倍数是 10 。
示例 2:
输入:n = 6
输出:6
解释:6 和 2 的最小公倍数是 6 。注意数字会是它自身的倍数。
classSolution:
defsmallestEvenMultiple(self, n: int) -> int:
# if n % 2 ==0:
# return n
# else:
# return n*2
# 下方更为简单的写法
return n if n%2==0else2*n
拓展操作
1252. 奇数值单元格的数目
给你一个 m x n 的矩阵,最开始的时候,每个单元格中的值都是 0。
另有一个二维索引数组 indices,indices[i] = [ri, ci] 指向矩阵中的某个位置,其中 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。
对 indices[i] 所指向的每个位置,应同时执行下述增量操作:
给你 m、n 和 indices 。请你在执行完所有 indices 指定的增量操作后,返回矩阵中 奇数值单元格 的数目。
示例 1:
img输入:m = 2, n = 3, indices = [[0,1],[1,1]]
输出:6
解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
第一次增量操作后得到 [[1,2,1],[0,1,0]]。
最后的矩阵是 [[1,3,1],[1,3,1]],里面有 6 个奇数。
示例 2:
img输入:m = 2, n = 2, indices = [[1,1],[0,0]]
输出:0
解释:最后的矩阵是 [[2,2],[2,2]],里面没有奇数。
提示:
1 <= indices.length <= 100
classSolution:
defoddCells(self, m: int, n: int, indices: List[List[int]]) -> int:
rows = [0] * m
cols = [0] * n
for x, y in indices:
rows[x] += 1
cols[y] += 1
return sum((row+col) % 2for row in rows for col in cols)
for x, y in list[list1[对应前面的元素],list2[]...]遍历list中所有子表的元素
return sum((row+col) % 2for row in rows for col in cols)
# 把rows 与 cols里面的奇数列相加
交换s[i],s[j] = s[j],s[i]
# 反转字符串
classSolution:
defreverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
l = 0
r = len(s)-1
while l<=r:
s[l],s[r] = s[r],s[l]
l+=1
r-=1
练习LCR 182. 动态口令
某公司门禁密码使用动态口令技术。初始密码为字符串 password,密码更新均遵循以下步骤:
- 将
password 前 target 个字符按原顺序移动至字符串末尾
请返回更新后的密码字符串。
示例 1:
输入: password = "s3cur1tyC0d3", target = 4
输出: "r1tyC0d3s3cu"
示例 2:
输入: password = "lrloseumgh", target = 6
输出: "umghlrlose"
classSolution:
defdynamicPassword(self, password: str, target: int) -> str:
return password[target:] + password[:target]