Ⅰ.变量
0x00 什么是变量?
变量,就是会变化的数值。
变量就是一个装东西的盒子
变量是用于存放数据的容器。我们通过变量名获取数据,甚至数据可以修改。
网上有许多教程都是这么讲到,但这个是错误的。在python中变量并不是一个盒子,而是个一个值贴上了他的标签 。
例子:
a = 10
b = a
我们思考一下,这在python中发生了什么?
如果用图片表示是这样
没想到吧,python变量里存储的不是像C\C++那样的存储值,而是存储了数据的地址。
可能有有些人不大相信,我们这里给出一个例子让大家彻底相信
id函数是什么?
我们使用help函数获取帮助
参考翻译:
有关模块内置函数id的帮助:
id(obj,/)
返回对象的标识。
这保证在同时存在的对象中是唯一的。
(CPython使用对象的内存地址。)
跑的有点远了,我继续回归正题。
0x01 变量赋值
python是动态变量,什么是动态变量?
就是一个变量的属性是可以变化的,而且没有变量声明。
在python中变量赋值可以使用=操作符,语法为
变量名 = 值
我们通过一个例子
n = 666 # int类型
f1 = .0 # float类型,等价于0.0
f2 = 0. # 等价于0.0
s = "623" # 字符串类型
b = True # 布尔类型
0x02 命名规则
在Python中不是什么名字都可以的
规则如下:
- 变量名只能包含字母、数字和下划线。
- 变量名必须以字母或下划线开头。
- 变量名不能是Python关键字,如if、while、for等。
n@ = 10 # 错误:使用了特殊符号
变量 = 666 # 正确:Python允许使用中文作为变量名
1n = 888 # 错误:使用了数字作为开头
_n = 999 # 正确:下划线可以作为开头
0x03 命名规范
一般来说有四种编程命名规范:
匈牙利命名法
匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物。那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所以才产生了这样一个命名规范,估计现在已经没啥人用了吧……一个十分系统却又琐碎的命名规范。
该命名规范,要求前缀字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,单词第一个字母大写。
如:
inumber = 666
sName = "666"
驼峰式命名法
驼峰式命名法,又叫小驼峰式命名法(所以自然就存在大驼峰命名法啦……)。
该命名规范,要求第一个单词首字母小写,后面其他单词首字母大写,简单粗暴易学易用。
myAge = 18
myName = ""
帕斯卡命名法
帕斯卡命名法,又叫大驼峰式命名法。
与小驼峰式命名法的最大区别在于,每个单词的第一个字母都要大写。
MyAge = 18
MyName = ""
下划线命名法
下划线命名法并不如大小驼峰式命名法那么备受推崇,但是也是浓墨重彩的一笔。尤其在宏定义和常量中使用比较多,通过下划线来分割全部都是大写的单词。
该命名规范,也是很简单,要求单词与单词之间通过下划线连接即可。
my_age = 18
my_name = ""
但我们坚持使用一个命名规范,肯定会有用的,这是毋庸置疑的。
—— 不重要
0x04 解包操作
Python中有个语法糖,语法为
变量A, 变量B, ... = 值1, 值2, ... # 等价于 变量A = 值1
# 变量B = 值2
这个就是解包操作。
为什么是语法糖呢?
在C++中是没有解包操作的,所以要交换变量需要
auto Temp = a;
a = b;
b = Temp;
但是在Python中只需要一行代码,
a, b = b, a
就问你帅不帅
解包操作还有很多用处,在后面会经常用的
0x05 调用变量
我们在代码中直接使用变量名即可。
a = 10
print(a) # 输出: 10
0x06 删除变量
在程序中有些变量不需要了,但是还会占用内存。
那怎么办?
当然是删掉他呀!
在python中删除变量要使用del关键字。
语法为:
del 变量名 # 如果有多个变量需要删除用,号隔开即可
如:
a = 10
del a
print(a)
可以看到变量在删除后就无法使用了
0x07 变量的作用域
在Python中,变量的作用域指的是可以访问变量的代码块。Python中有三种类型的变量作用域:
- 局部变量:定义在函数内部,只能在函数内部访问。
- 全局变量:定义在函数外部,可以在整个程序中访问。
- 嵌套作用域变量:定义在一个函数内部的函数中,只能在这个函数内部和嵌套的函数中访问。
以下是一个使用局部变量和全局变量的示例:
python
x = 5 # 全局变量
def my_func():
x = 10 # 局部变量
print("x = ", x)
my_func()
print("x = ", x)
在上面的示例中,函数my_func()中的变量x是一个局部变量。当函数被调用时,Python将在函数内部创建一个名为x的新变量,并将其值设置为10。当函数返回时,这个变量将被销毁。在函数外部,变量x仍然是全局变量,并且它的值仍然是5。
这些代码不需要理解,只需要知道有这个概念就可以了
Ⅱ. 运算符
0x00 什么是运算符?
本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4和5被称为操作数,"+"号为运算符。
Python语言里常用的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
接下来让我们一个个来学习Python的运算符。
0x01 Python算术运算符
python中的二元算术运算符列表如下:
运算符 | 语法 | 作用 |
+ | a + b | 把a和b相加 |
- | a - b | 把a减去b |
* | a * b | 把a乘以b |
/ | a / b | 把a除以b |
% | a % b |
或取a除以b的余数 |
// | a // b | 获取a除以b的整数部分 |
** | a ** b | 获取a的b次方 |
二元算术运算符的语法都可以整理为如下:
值1 运算符 值2
a = 21
b = 10
c = 0
c = a + b
print("1 - c 的值为:", c)
c = a - b
print("2 - c 的值为:", c)
c = a * b
print("3 - c 的值为:", c)
c = a / b
print("4 - c 的值为:", c)
c = a % b
print("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print("6 - c 的值为:", c)
a = 10
b = 5
c = a//b
print("7 - c 的值为:", c)
0x02 Python比较运算符
运算符 | 作用 |
== | 等于——对象是否相等 |
!= | 不等于——对象是否不相等 |
> | 大于——左值是否大于右值 |
< | 小于——左值是否小于右值 |
>= | 大于等于——左值是否大于等于右值 |
<= | 小于等于——左值是否小于等于右值 |
语法为:
左值 比较符 右值
这里不剧透更多,到时候if判断会讲到
0x03 逻辑运算符
逻辑运算符列表为:
逻辑符 | 作用 |
not | 为True返回False,为False返回True |
and | 与——左值和右值全为True返回True,否则返回False |
or | 或——左值和右值中有一个是True返回True,否则返回否 |
语法为:
左值 逻辑运算符 右值
这里不剧透跟多,到时候if判断会讲到
0x04 赋值运算符
列表为:
赋值运算符 | 作用 |
= | 不用讲了吧 |
+= | 等价于 a = a+b |
-= | 等价于 a = a-b |
... |
这个其他的都依次类推。
Ⅲ.类型转换
0x00 转换类型的函数
来源于网络
0x01 转化类型的作用
因为输入函数的返回值都是str,需要其他类型,转化函数就有用了
0x02 计算输入数字的和
先定义两个变量
a = input("请输入a的值:")
b = input("请输入b的值:")
再把它们转换成int类型
a, b = int(a), int(b)
再把它们相加:
c = a + b
输出c的值
print("a + b =", c)
完整代码:
运行结果:
(乱码不重要)