
蓝桥杯学习记录(3)——语言基础
输入输出
input
1 | input(【提示文字】)#输入变量均为str字符串 |
1 | print(obj,sep='',end='\n') |
| 转义字符 | 描述 |
|---|---|
| \ (在行尾时) | 续行符 |
| \ \ | 反斜杠符号 |
| \’ | 单引号 |
| \” | 双引号 |
| \a | 响铃 |
| \b | 退格(Backspace) |
| \e | 转义 |
| \000 | 空 |
| \n | 换行 |
| \v | 纵向制表符 |
| \t | 横向制表符 |
| \r | 回车 |
| \f | 换页 |
| \oyy | 八进制数yy代表的字符,例如:\o12代表换行 |
| \xyy | 十进制数yy代表的字符,例如:\x0a代表换行 |
| \other | 其它的字符以普通格式输出 |
三种保留部分小数的方法
1 | 1\ |
变量常量运算符
类型转换
分为隐式类型转换与显式类型转换,隐式转换比如 int+float=float ,显式转换就是强制类型转换。强制转换有哪些?看下面!!
| 函数 | 描述 |
|---|---|
| int(x) | 将x转换为一个整数 |
| float(x) | 将x转换到一个浮点数 |
| complex(real [,imag]) | 创建一个复数 |
| str(x) | 将对象 x 转换为字符串 |
| repr(x) | 将对象 x 转换为表达式字符串 |
| eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
| tuple(s) | 将序列 s 转换为一个元组 |
| list(s) | 将序列 s 转换为一个列表 |
| set(s) | 转换为可变集合 |
| dict(d) | 创建一个字典。d 必须是一个 (key, value)元组序列。 |
| frozenset(s) | 转换为不可变集合 |
| chr(x) | 将一个整数转换为一个字符 |
| ord(x) | 将一个字符转换为它的整数值 |
| hex(x) | 将一个整数转换为一个十六进制字符串 |
运算符
以下假设a = 10, b = 21
| 运算符 | 描述 | 实例 |
|---|---|---|
| % | 取模 - 返回除法的余数 | b % a 输出结果 1 |
| ** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
| // | 取整除 - 往小的方向取整数 | ![]() |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
| & | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
| ^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
| ~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。**~x** 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
| << | 左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
| >> | 右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
| and | x and y | 布尔”与” - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 |
| or | x or y | 布尔”或” - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 |
| not | not x | 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
选择结构
条件表达式

逻辑表达式

短路操作:在Python中,and和or不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。另外and和or运算符会将其中一个表达式的值作为最终结果,而不是将True或者False作为最终结果。
and——左假,直接结束;or——左真,直接结束
if-elif-else语句
循环结构
for循环

for语句
1 | for <variable> in <sequence>: |
while循环
while语句
1 | while 条件表达式: |

break与continue

基本数据类型
字符串
字符串,有单个或多个字符组成,用单引号或双引号括起。
其用法大多与列表类似,如:
- 访问字符串中元素:str[0],str[1]……
str[start:end:step]:切片len(str):求长度- +:字符串连接
- *:字符串复制
- in 、not in:存在、不存在
- str(x):强制转换为字符串

Unicode码与ACSII码的转换
python将输入的字符编码为Unicode码,而Unicode码的字符非常繁杂,有汉字、有英文、也有各类标点。而我们进行统一计算时,需要将他们统一转换成数字方便计算,这就用到了ord方法与chr方法
1 | ord(x) #ord()函数以一个字符串作为参数,返回对应的ASCII数值,或者Unicode 数值 |
1、字符串常用方法——判断类方法


2、字符串常用方法——转换类方法


3、字符串常用方法——查找类方法


4、字符串修改
由于字符串本身无法修改,如果要改变字符串内容,可以将其转换为列表,更改列表元素。
5、format格式化
- Python字符串中{}表示占位符,format里面的参数将逐个放入字符串中的占位符,由于format的参数要逐个放入占位符中,此时参数数量必须大于等于占位符数量
1 | name = "fzl" |
- Python字符串中{0}{1}表示占位符,其中非负整数表示这个位置为format中的第几个参数,从0开始计数,{x}中的x不可以大于format中的参数数量
1 | name = "fzl" |
- Python字符串中{name}、{age}表示占位符,其中name、age表示format中传递参数的参数名称,此时是根据名称来找对应的位置,因此{ }中的名称必须在format中出现
1 | s = "大家好,我叫{name},今年{age}岁".format(name="fzl",age='24') |

列表
1、添加元素
1 | list.append(x) #列表list末尾添加单个元素,x可以为单个整数、浮点数或者字符串等 |
注意,append与extend添加字符串时的区别:
2、删除元素
1 | #利用del删除列表中的元素 |
示例: 

注:pop删除是有返回值的,并且是被删除的那个元素,即 [1,2,3].pop(0) = 1
3、查找元素
1 | list.count(x) #计算x在list中出现次数,如果未出现则为0,否则返回出现次数 |
示例:
4、翻转列表
1 | list.reverse() #列表list进行翻转,调用2次则返回原列表 |
示例: 
5、列表长度
1 | len(list) #计算列表list长度 |
6、操作列表
1 | #利用for循环遍历列表,同时获得下标 |
示例: 
元组
较之列表的可修改性,元组创建后不可修改。
如需修改元组内部元素,需要将其转换为List或者直接创建新的元组。
元组与列表用法大多类似,这里便不做赘述。
字典
键值对 {key:value},等价于数学中的映射,一个key对应一个value。
在索引时,通过key来找value时,key必须唯一。
字典中的key只能为数字、字符串、元组,大多数情况使用字符串作为key,而value的类型没有限制

1、创建字典
a = dict(key1 = value1, key2 = value2, key3 = value3)a = dict([[key1, value1],[key2, value2],[key3, value3]])zip(seq1, seq2, seq3...)
2、访问字典
a['key']:a为dict,key为字典a中的一个键,key必须真实存在
a.get(x, value=None):查询x是否在字典的key中及其value,a表示字典,x表示查询的key,value表示默认值

3、添加修改
可以直接利用key访问相应value,并对key的value值添加或修改。

4、删除元素
删除字典的键值对,可以用Python的删除语法del

也可以使用字典删除方法pop

5、遍历字典

6、拷贝字典
使用copy函数完成复制;直接赋值相当于“引用”,会随着原变量改变。

7、合并字典
利用update方法,可将另一个字典的键值对更新到已有字典。
a.update(b):把字典b中的每一个元素放入a中更新

集合
存储不重复的元素,只能存储不可变的数据:数字、字符串和元组。集合是无序的
1、创建集合
{}这样创建的是空字典,不是空集合
set(x):把x转换为集合,x一般为列表、元组等
set():空集
2、遍历集合
与遍历list一样,for x in a:,其中a是set,x是循环变量

x in s:判断x是否在s中存在
len(s):集合元素个数
3、基本操作

4、交并差
Python中的集合也满足数学中集合的交集并集差集等性质。
既可以使用$ | - ^的运算符,也可以用函数表示:

日期时间
1、time模块
1 | import time #导入time模块 |
localtime方法的相关用法:

格式化日期:


2、datetime模块
1 | import datetime #导入datetime模块 |

函数
定义
定义一个函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 **()**。
- 任何传入参数和自变量必须放在圆括号里
- 函数内容以冒号
:起始,并且缩进。 - return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

math库
1 | import math |
常用函数:
三角函数:

heapq库
堆:完全二叉树,每个节点小于等于子节点(默认为最小堆)
每个节点K都有两个子节点2K+1,2K+2

1 | import heapq |
类定义与使用
类与对象;
- 类:类型,自定义各种类型对应现实生活,如student类、teacher类等
- 对象:变量,类的实例化,用类创建的具体对象
类的通用格式:
1 | class 类名: |
一个简单的类的例子:

- 构造函数:
__init__(self[,x,y])- 可以包含多个参数,但必须有self参数
- 且self参数必须放在第一位
- self参数不需要手动传参
- 类的实例化
- 格式:类名(参数),这里放的参数会传入构造函数中
类中访问当前对象的属性与方法:通过self
1 | class student: |
属性
类属性(类变量):在类体中、所有函数外定义的变量
- 使用时:类名+.+变量名
实例属性(实例变量):以self.变量名定义的变量
- 使用时:self+.+变量名、实例名+.+变量名

方法
实例方法:通常情况下,在类中定义的方法默认都是实例方法
- 使用时:实例名+.+方法名、self+.+方法名
类方法:与实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为cls。类方法需要使用@classmethod修饰符进行修饰
- 使用时:类名+.+方法名
类静态方法:没有类似self、cls这样的特殊参数,无法调用任何类属性和类方法。使用@staticmethod修饰
- 使用时:类名+.+方法名

- 标题: 蓝桥杯学习记录(3)——语言基础
- 作者: 狮子阿儒
- 创建于 : 2024-02-02 19:18:10
- 更新于 : 2024-03-03 21:40:41
- 链接: https://c200108.github.io/blog/2024/02/02/蓝桥杯学习记录(3)——语言基础/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。




