算法 + 数据结构 = 程序
变量与变量名
定义变量
变量就是可以变的量
赋值语句:
name = "小明"
内存空间:栈、堆
在栈中声明了一个变量名(标识符)“name”,堆中一个值“小明”,“name”指向“小明”。
地址
需要取到“小明”的值的时候,就打变量名,变量名指向了“小明”所在的地址,
print(id(name)) # 打印上面的地址
注释
“#”是注释,解释器不会执行
如何快速对一段代码加注释:选中需要注释的部分,Ctrl + / (?问号)
也可以给变量名起多个变量值
name1 = name2 = name3 = "小明" # 三个变量名指向同一片内存空间
print(id(name1))
print(id(name2))
print(id(name3))
如何快速复制一行:光标移到最右边,Ctrl + d(pycharm快捷方式)
name1 = "小刚" # 黄色高亮:代表提醒,但不是报错。红色波浪线:就是报错。学会看报错
name1 = name2 = name3 = "小明"
name1 = "小刚"
print(name1)
print(name2) # 不会报错,计算机的代码是从上网线执行的
内存空间里面的栈和堆:name1 的指向发生变化,另外两个不变。
但是如果 name1、name2、name3 都指向了“小刚”,那就没有“小明”了,Python有一个垃圾回收机制,过一段时间会回收(释放,删除)没有变量名指向的值。为什么要释放?如果不释放,就会一直暂用内存空间,导致运行速度底下。
命名规则
字母、数字、下划线 组成
注意
- 不能数字开头&纯数字(
- 不能使用python内置关键字等
- 不能用python数据类型
- 严格区分大小写
命名习惯
标识符命名:见名知意
变量命名不推荐使用数据类型命名,但实际上也可以。
str = "小明"
print(str)
数据类型
数据类型
数值
int(整形)
float(浮点型)
布尔型
True(真)
False(假)
str(字符串)
list(列表)
tuple(元组)
set(集合)
diot(字典)
什么时候用布尔型?只有两种情况的时候、判断对错的时候。
数值类型
python 中有一个 type() 可以告诉类型
name = "小明"
print(type(name)) # 字符串
a = True
print(type(a)) # 布尔类型
字符串类型
var1 = '小明' # 单引号
var2 = "小明" # 双引号(英文的)
var3 = '''小明''' # 三引号(同下)
var4 = """小明""" # 三引号(没有变量名的情况下是多行注释)
注释有单行注释和多行注释。
列表与元组
list1 = ["", "", "", ""]
tu1 = ("", "", "", "")
字典与集合
两个都用大括号,区分看里面的元素
#集合当中的元素分布和列表元组一致
set1 = {"", "", "", ""}
# 字典当中的元素均为键值对
dict1 = {"name": "小明", "age": "20"}
运算符
算数运算符
符号 | 描述 | 实例 | |
---|---|---|---|
+ | 加 | print(1+1) 输出结果为2 | |
- | 减 | print(1-1) 输出结果为0 | |
* | 乘 | print(2*2) 输出结果为4 | |
/ | 除 | print(4/2) 输出结果为2 | |
// | 整除 | print(9//4) 输出结果为2 | 取整,不会保留小数。9/4 = 2……1 |
% | 取余 | print(9%4) 输出结果为1 | 求模。9/4 = 2……1 |
** | 乘方 | print(2**4) 输出结果为16 | 幂运算,2^4, |
() | 优先级 | print((1+1)*3) 输出结果为6 |
赋值运算符
运算符 | 描述 | 实例 | |
---|---|---|---|
= | 赋值 | 将=右侧的结果赋值给=左侧的变量名 | “==”两个等号才是等于(见下) |
复合赋值运算符
运算符 | 描述 | 实例 | |
---|---|---|---|
+= | 加法赋值运算符 | a+=1等价于a=a+1 | |
-= | 减法赋值运算符 | a-=1等价于a=a-1 | |
*= | 乘法赋值运算符 | a*=1等价于a=ax1 | a*1 |
/= | 除法赋值运算符 | a/=1等价于a=a/1 | |
//= | 整除赋值运算符 | a//=1等价于a=a//1 | |
%= | 取余赋值运算符 | a%=1等价于a=a%1 | |
**= | 次方赋值运算符 | a**=1等价于a=axx1 | a**1,a^1 |
比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a != b) 为 False |
> | 运算符左侧操作数结果是否⼤于右侧操作数结果,如果⼤于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
>= | 运算符左侧操作数结果是否⼤于等于右侧操作数结果,如果⼤于等于,则条件为真,否则为假 | a=3,b=3,则(a >= b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于等于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
逻辑运算符
前后可以跟表达式
运算符 | 逻辑表达式 | 描述 | 实例 | |
---|---|---|---|---|
and | a and b | 如果 a 为 False,a and b 返回False | True and False, 返回False。 | 与,前后都是真,才是真 |
or | a or b | 如果 a 为 True,a or b 返回True | False or True, 返回True。 | 或,有一个是真,就是真 |
not | not b | 如果 b 为 True, not b 返回False | not True 返回 False; not False返回 True | 非,不是,取反 |
day 02 作业
# 变量 & 运算符
# 1、定义好自身的属性如:姓名,身高,年龄,爱好等,并且使用变量名输出数据
# 2、小坤本次考试语文95.5,数学88,英语65,计算小坤本次考试平均值,取整数部