当前位置:首页>python>Python条件语句(学习笔记4)

Python条件语句(学习笔记4)

  • 2026-10-11 05:51:35
Python条件语句(学习笔记4)

if语句

在编程中if语句是一种根据条件执行不同代码块的控制结构,他根据条件的真假来分支程序的执行路径,所以我们可以通过if语句根据不同情况而执行不同的程序

  • 格式

  • if [条件(bool值或者计算结果为bool类型的算式)] :

    a=11

    if a>10:
        print("a大于10") # --> a大于10 

  • 注意与if的缩进关系 如果对齐那就不属于if所执行的语句,如果比if多一个缩进,那么就在if执行的语句里面

  • 里面的[条件语句]必须是bool类型

判断空与非空(None)

在python中None表示什么都没有,相当于C语言中的NULL

a = None
if a==None:
    print("a is None")
image-20231225232955439

代码块

  • 代码块是编程中一组逻辑组织的语句,他可以组合控制结构,如循换条件语句
  • **缩进**就是来分开不同的代码块的
  • 屏幕截图 2023-12-25 233336

if else

if []:
    [代码块]
else:
    [代码块]
  1. if后面的条件成立,则执行if下面的代码块
  2. if后面条件不成立,则执行else后面的代码块

elif(是if else的简写)

  • elif [判断条件] :.
  • 一般在if后面 if与elif只会执行其中一个

**ifelifelse**的关系

  • ifelifelse 三者是 独立互斥的关系,程序只会执行其中一个分支的代码块
  • 即,要么执行if -->elif--> else

条件判断的练习

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] 所指向的每个位置,应同时执行下述增量操作:

  1. ri 行上的所有单元格,加 1 。
  2. ci 列上的所有单元格,加 1 。

给你 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 <= m, n <= 50
  • 1 <= indices.length <= 100
  • 0 <= ri < m
  • 0 <= ci < n
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)
  • [val] * n 是创建n个val元素的列表

  • for x, y in list[list1[对应前面的元素],list2[]...]遍历list中所有子表的元素

  • sum()函数

    • 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,密码更新均遵循以下步骤:

  • 设定一个正整数目标值 target
  • 将 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]

最新文章

随机文章