上周开始了蓝桥杯python算法课程的学习,前几部分都是python算法基础,无非是一些加减乘除的运算,但还是需要牢记。在这里总结一些我自己容易遗忘或记错的语法。

一. 算数运算符

  • 加 两个对象相加 a+b 输出结果为...
  • 减 得到负数或是一个数减去另一个数 a-b 输出结果为...
  • 乘 两个数相乘或是返回一个被重复若干次的字符 a*b 输出结果为...
    / 除 b/a 的结果为...
    // 取整除 返回商的整除部分 9//2 输出结果为 4 ,9.0//2.0 的输出结果为 4.0
    % 取余 返回除法的余数 b%a 例 9%2 输出结果为 1
    ** 指数 a**b 为 a 的 b 次方

二.lambda匿名函数

函数定义中

  • def 关键字,可以定义带有名称的函数
  • lambda 关键字,可以定义匿名函数(无名称)
    有名称的函数,可以基于名称重复使用。
    无名陈的匿名函数,只能临时使用一次。

匿名函数定义语法:
lambda 传入参数: 函数体(一行代码)

  • lambda 是关键字,表示定义匿名函数
  • 传入参数表示匿名函数的形式参数,如: x,y 表示接收2个形式参数
  • 函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码

三.一行输入多个数字

在做题的过程中会遇到很多需要一行输入许多数字的情况

image

假设我们需要输入的两个变量分别设为 a 和 b
a,b=map(int,input().split())

a, b = ...

  • 解包赋值(unpacking)
  • 将map对象的结果分别赋给变量a和b

map(int,...)

  • map(函数, 可迭代对象)
  • 对列表中的每个元素应用int()函数
  • map(int, ['10', '20']) → 将每个字符串转换为整数

input()

  • 从用户获取输入,返回一个字符串

.split()

  • 将字符串按空格分割成列表
  • 默认按空格分割,也可以指定其他分隔符

这样在终端赋值时只需要用空格将数字分开即可,例:10 20

四.range语句

range(num1,num2)
获取一个从 num1 开始,到 num2 结束的数字序列(不含 num2 本身
例: range(5,10)取得的数据是:[5,6,7,8,9]

range(num1,num2,step)
获得一个从 num1 开始,到 num2 结束的数字序列(不含 num2 本身
数字之间的步长,以 step 为准(step 默认为1)
例: range(5,10,2) 取得的数据是:[5,7,9]

对于个人经验而言,range语句最常出现在需要遍历数据的题目中,与常见形式为 for...in range(...,...)

image

此题代码如下:

点击查看代码
a,b=map(int,input().split())
number=0
for c in range(a,b+1):
  if c%3==0:
    number+=1
print(number)

在此题中 for c in range(a,b+1)

  • 每次循环时,c取序列 range(a,b+1) 中的一个值
  • c依次等于:a, a+1, a+2, ..., b

五.随机数

点击查看代码
import random
num = random.randint(1,100)

即定义变量 num 随机从 1~100 中取值