什么是变量
-
变量:程序中用来存储单个数据的容器,通常会把经常发生变化的数据存储在变量中。
-
定义格式:变量名 = 变量的值 num = 13.14
-
变量的使用:打印输出,参与计算,记录数据
注意事项
-
一个变量只能存储一个值
-
变量定义的时候必须赋值才能使用
-
一条语句可以以定义多个变量,也可以连续赋值(a,b = 1,"python")
标识符
-
是程序员在代码中为变量、函数、类等元素起的名字。
-
命名规则(规定)
-
只能包含字母、数字、下划线
-
不能以数字开头
-
严格区分大小写,比如:age,Age,AGE是三个变量
-
不能使用关键字
变量名的命名规范
见名知意,多个部分使用下划线链接,英文字母全小写。
数据类型
| 标准名称 | 描述 | 说明 |
|---|---|---|
| int | 整数 | 数字类型,存放整数,如:10、-5 |
| float | 浮点数 | 数字类型,存放小数,如:8.5、3.14、1.0、-3.5 |
| str | 字符串 | 用引号引起来的都是字符串,如:"Python" |
| bool | 布尔 | 布尔类型,描述真和假,如:True、False |
| None Type | 空值 | 表示空或无值,仅包含一个值 None |
1.通过type()语句来得到数据的类型,具体语法为:type(要查看类型的数据)比如print(type("hello"))。
变量本身没有类型,type(变量)输出的类型是变量中存储的数据类型
字符串的定义
1.字符串的定义方式
- 单引号('python') 双引号("python") 、三引号("""python""")
2.常见的转义字符
- \'(单引号)、\""(双引号) \n (换行符)、\t (制表符)
字符串的使用原则
-
单引号与双引号是等效的,项目中保持一种写法即可
-
三引号:多行字符串的等场景
字符串格式化
1.字符串使用 + 号拼接,字符串不能和非字符串拼接,只能拼接字符串
2.%这种字符串格式化语法
- "%s " %变量 \" %s..%s"(变量,变量)
3.f "类容{变量/表达式}"
输入与输出
1.如何获取用户输入的数据
- s = input(提示信息)
2.如何获取数据类型转换,比如字符串转为数字、数字转字符串等
-
其他类型转为int类型:int(...)
-
其他类型转为str类型:str(...)
-
其他类型转为float类型:float(...)
运算符
算数运算符
-
-
- * / // % *
-
赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 赋值运算符 | 把 = 号右边的结果赋值给左边的变量,如 num = 1+2,结果 num 的值为 3 |
| += | 加法赋值运算符 | num += 2 等效于 num = num + 2 |
| -= | 减法赋值运算符 | num -= 2 等效于 num = num - 2 |
| *= | 乘法赋值运算符 | num *= 2 等效于 num = num * 2 |
| /= | 除法赋值运算符 | num /= 2 等效于 num = num / 2 |
| %= | 取模赋值运算符 | num %= 2 等效于 num = num % 2 |
| //= | 取整除赋值运算符 | num //= 2 等效于 num = num // 2 |
| **= | 幂赋值运算符 | num **= 2 等效于 num = num ** 2 |
比较运算符
比较运算符,也称为关系运算符,用于比较两个值之间的关系。会计算运算符两边的表达式,然后返回一个布尔值作为结果(True - 表示比较关系成立;False - 表示比较关系不成立)。
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 | a == b 判断 a 是否等于 b |
| != | 不等于 | a != b 判断 a 是否不等于 b |
| > | 大于 | a > b 判断 a 是否大于 b |
| >= | 大于等于 | a >= b 判断 a 是否大于等于 b |
| < | 小于 | a < b 判断 a 是否小于 b |
| <= | 小于等于 | a <= b 判断 a 是否小于 b |
逻辑运算符
逻辑运算符用于连接多个布尔表达式(True或False),并返回最终一个布尔值
-
and(并且,同时成立)
-
or(或者,满足其一)
-
not(非,取反操作)
if基础语法
if条件的基本格式
if 要判断的条件: 条件成立,要执行的操作1 elif 要判断的条件: 条件成立,要执行的操作2 else: 都不成立,要执行的操作3
if语句的注意事项
-
判断条件的结果一定是布尔类型
-
不要忘记判断条件后的冒号
-
if语句里面的代码块,需要在前方缩进空格(建议四个),通过缩进来描述代码的层级关系。
-
elif可以写多个
-
else可有可无,如果有必须放在后面
-
多个条件判断是有顺序的,从上到下判断,如果前面条件成立后面就不好判断了。
python
num = int(input("请输入一个数字"))
if num > 0:
print(f"{num}正数")
elif num < 0:
print(f"{num}负数")
else:
print(f"{num} 是0")
match...case模式匹配
match的基本格式
match 表达式: case 值1: 操作1 case 值2: 操作2 case 值3|值4 操作3 case _: 操作4
案例1
python
day = input("请输入星期几:")
match day:
case "1":
print("今天是周一")
case "2":
print("今天是周二")
case "3":
print("今天是周三")
case "4":
print("今天是周四")
case "5":
print("今天是周五")
case "6|7": #|或,表示匹配任意一个
print("今天是周天,休息")
case _: #_,表示匹配其他情况
print("输入有误")
while循环
while语法格式
while 条件表达式: 条件成立时,执行的操作(循环体语句) ...... else: 循环正常结束时,执行操作(可以不要)
while循环注意事项
-
条件表达式结果为布尔类型
-
通过空格缩进表达层级关系
-
规划好循环终止条件,避免死循环
计算1-100之间所有偶数的累加之和
python
#计算1-100偶数的累加和
total = 0
i = 1
while i <= 100:
if i % 2 == 0:
total += 1
i += 1
print(f"累加之和为{total}")
for循环
for循环的语法格式
for 元素 in 待处理数据集: 循环体代码(对元素进行处理) else: 不满足条件是,执行的操作(可以不要)
使用场景:用于一个已知的数据进行遍历或已知次数的进行循环,遍历的是每一个元素。
range语句
生成指定规则的数字序列
用法
range(100) 从0开始到100结束,不包括100 range(1,100) 从1开始到100结束,不包括100 range(1,100,2) 从1开始到100结束,2是跳多少步
嵌套循环
for循环结构
for 元素 in 待处理数据集1: 循环体的代码1 循环体的代码2 ... for 元素 in 待处理的数据集2: 循环体的代码1 循环体的代码2 ...
python
#接收键盘录入
m = int(input("请输入长方形的长度"))
#宽度
n = int(input("请输入长方形的宽度"))
for i in range(n):
for j in range(m):
print("*",end=" ")#默认自带换行
print()
打印99乘法表
python
for i in range(1,10):#外层控制行
for j in range(1,i+1):#内层控制列
print(f"{j} * {i}",end="\t")
print()
循环案例
python
while True:
username = input("请输入用户名:")
password = input("请输入正确的密码")
if username == "" or password == "":
print("输入的用户名和密码不能为空")
continue #结束当前循环
if username == "admin" and password == "123456":
print("登录成功")
break #跳出循环
elif username == "zhangsan" and password == "123":
print("登录成功")
break
elif username == "lisi" and password == "123":
print("登录成功")
break
else:
print("用户名或密码错误,请重新输入")
列表
列表式数据容器中的一类,是一次性可以存储多个数据的。
定义:
列表名称 = [元素1,元素2,元素3 ... ] s = [12,34,45,56,78,543,23,4]
特点:可以存储不同类型的元素 ,元素有序,可以重复,元素可以修改
python
s = [1,2,2,4,5,6,"A","hello",True]
print(type(s))#<class 'list'>
#获取
print(s[1])#正向索引
print(s[-8])#反向索引
#修改
s[5] = "abc"#不能超出索引
print(s[5])
#删除
del s[6]
print(s)
列表的切片
对操作的数据截取一部分操作,列表字符串,元组都可以切片
语法:
序列数据[开始索引:结束索引:步长] 不包含结束位置,开始默认为0,步长默认为1 正向,反向索引都可以 s[0:5:1] 结果为0-4
python
s = ["a","b","c","d"]
print(s[0:2:1])
print(type(s[0:3:1]))
print(s[0:-3])
什么是方法
方法就是物品具备的能力或功能
| 方法 | 作用 | 样例 |
|---|---|---|
append() |
在列表的尾部追加元素 | s.append(10086) |
insert() |
在指定索引之前,插入该元素 | s.insert(0, 92) |
remove() |
移除列表中第一个匹配到的值 | s.remove(75) |
pop() |
删除列表中指定索引位置的元素(如果未指定索引,默认删最后一个) | s.pop(2) / s.pop() |
sort() |
对列表进行排序(列表元素的数据类型一致,才可以进行排序) | s.sort() |
reverse() |
反转列表元素 | s.reverse() |