前言一、标识符和变量
1.1 标识符命名规则1.2 变量1.3 注释 二、数据类型
2.1 字符串2.2 数值类型
2.2.1 整数2.2.2 浮点数2.2.3 复数 2.3 序列类型
2.3.1 列表2.3.2 元组2.3.3 range 2.4 字典2.5 集合2.6 布尔2.7 比特2.8 数据转换 三、运算符
3.1 算术运算符3.2 比较(关系)运算符3.3 赋值运算符3.4 逻辑运算符3.5 位运算符3.6 成员运算符3.7 身份运算符3.8 运算符优先级 四、程序结构
4.1 顺序结构4.2 选择结构
4.2.1 单分支结构4.2.2 二分之结构4.2.3 多分支结构 4.3 循环结构
4.3.1 for循环4.3.2 while循环4.3.3 循环关键字 五、函数
5.1 函数定义5.2 函数参数
5.2.1 形式参数5.2.2 实际参数 5.3 函数调用 总结
前言
万丈高楼平地起,要学好一门编程语言,基础是必须的,没有牢固的地基,摩天大楼也会垮掉。
一、标识符和变量 1.1 标识符命名规则
标识符命名法则:由数字、字母或者下划线组成,数字不能开头,对字母的大小写敏感。
合法的标识符:stark_lin、stark_lin88、Stark_lin、StarkLin、starkLlin。
不合法的标识符:88stark_lin、stark-lin、#stark_lin、%starkLin、if、as、import。
变量就是内存的别名,比如stark_lin是我的博客名字,同学看到stark_lin就知道是林老师,stark_lin就是我的别名,但是同学们知道我的真实名字吗?
标识符和变量的关系是:标识符包括变量名,除此之外还有函数名、类名等。
单行注释用#号
number = 100 #number存放是100的整数
多行注释用三对双引号或者单引号
单引号
''' 这个方法是用来计算年龄的 ''' def cal_age(): pass
双引号
“”“ 这个方法是用来计算年龄的 ”“” def cal_age(): pass二、数据类型 2.1 字符串
字符串:string,是由英文的双引号("")或者单引号(’’)包裹起来的字符。比如:“stark_lin”、“hello world”、‘verilog HDL’、‘Artificial Intelligence’、“FPGA”、‘tensorflow2.1’、"!@#$%^&*()"。
2.2 数值类型 2.2.1 整数 整数和数学中的整数一致。
如:1、2、3、4、5、6、100、1000、100000
申请整数:
number = 1002.2.2 浮点数
浮点数就是数学当中的小数。
比如:3.1415,1.14、2.1414
申请浮点数:
pi = 3.14152.2.3 复数
复数包括实部和虚部,比如1+2j,实部是1,虚部是1j。
合法的复数:1 + 1j、1j、2+ 2j
申请复数:
com_number = 2 + 2j2.3 序列类型 2.3.1 列表
列表:list,使用符号[],在数学里面称为中括号。在python中列表是序列类型的数据,就像我们平时排队上车,队伍中排在第一个位置的人优先上车,排在最后一个人最后上车。一般认为队伍第一个人的位置是1,最后一个人的位置是队伍的总人数。列表和排队是大致相同的,唯一不同的地方是列表第一个元素的位置是0,最后一个元素的位置是列表元素总的个数减1(因为是从0开始编号),列表中的元素使用英文逗号(,)隔开。
比如:[1,2,3]、[3.14,“stark_lin”,True],[‘AI’,[2,3,4,4]]
申请列表:
lst1 = [1,2,3]
lst2 = list("123")
2.3.2 元组
元组:tuple,使用符号(),在数学里面称为小括号。元组和列表大致相同,唯一不同的地方是在元组中的元素不能修改。还是排队上车的例子,公交车司机要求很严,不允许你帮别人排队。
申请元组:
tpl1 = (1, 2, 3) tpl2 = tuple([1, 2, 3])#传入的是序列sequence,序列包括字符串,元组,range tpl3 = 1, 2, 32.3.3 range
range是一个对象,中文意思就是范围。我们可以通过range去创建列表,在for循环里面经常使用range去指定要循环的区间。
使用方法:
range(start, stop[, step]) #[start, stop)组成的区间是左闭右开 #start:开始 #stop:结束 #step:步长2.4 字典
字典(dictionary)和我们平时使用的牛津字典差不多,我们可以通过牛津字典的字母表a可以查找到以a开头的单词abandon(放弃),这告诉我们万事开头难,只要克服第一关,那后面的学习就是一马平川。字典的符号是数学里面的大括号{},里面的元素是成对的,通过英文逗号(,)隔开。
空字典:
dct1 = dict()
dct2 = {}
2.5 集合
集合set与字典使用的是同一个符号{},不同的地方是在集合中的元素不是成对出现,并且集合中的元素性质和数学中的集合是一致的,集合有交集、并集、差集。
空集合:
st1 = set()#因为{}用来创建字典,所以只有这一种方法创建
2.6 布尔
英国著名的数学家,逻辑代数的创始人布尔,boolean,因其对逻辑代数做出的重大贡献,因此取名bool来纪念他,其他计算机语言比如java、c、c plus plus中都有这种布尔类型数据。在布尔类型中,只有两种情况,要么对(True)要么错(False),在条件中要么条件成立,要么不成立。
2.7 比特bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。
2.8 数据转换以上python数据是可以通过内置方法进行转换。每个数据类型的内置函数在前面的单词中已经标红。
三、运算符 3.1 算术运算符
| 符号 | 使用方法 | 说明 |
|---|---|---|
| + | 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 |
| >= | a >= b | a大于等于b |
| <= | a <= b | a小于等于b |
| == | a == b | a等于b |
| != | a != b | a不等于b |
| 符号 | 使用方法 | 说明 |
|---|---|---|
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | 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 |
| 关键字 | 使用方法 | 说明 |
|---|---|---|
| and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。 |
| or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。 (a or b) 返回 10。 |
| not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False |
a 为 60,b 为 13
| 符号 | 使用方法 | 说明 |
|---|---|---|
| & | 按位与运算符:参与运算的两个值,如果两个相应位都为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。 |
| 关键字 | 使用方法 | 说明 |
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
| 关键字 | 使用方法 | 说明 |
|---|---|---|
| is | is 是判断两个标识符是不是引用自一个对象。 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False。 |
| is not | is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。 | 如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
id()内置函数是用来查看对象的身份,不同的对象有不同的id号码
3.8 运算符优先级| 关键字 | 说明 |
|---|---|
| ** | 指数 (最高优先级) |
| ~ + - | 按位翻转, 一元加号和减号 |
| * / % // | 乘,除,取模和取整除 |
| + - | 加法减法 |
| >> << | 右移,左移运算符 |
| & | 位 ‘AND’ |
| ^ | | 位运算符 |
| <= < > >= | 比较运算符 |
| <> == != | 等于运算符 |
| = %= /= //= -= += *= **= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not and or | 逻辑运算符 |
注意:不清楚直接用小括号()提高优先级。
四、程序结构
所有的程序基本上都是顺序结构、选择结构、循环结构组成。我们使用的application,我们玩的游戏都包含程序三大结构。
4.1 顺序结构 程序从上到下顺序执行。
单分支结构中只有一个条件(condition),如果if条件condition成立就执行条件语句里面的语句state,如果条件不成立继续执行后面的程序,因为整个程序还是顺序结构。
if condition: state4.2.2 二分之结构
双分支结构中有两个条件,if如果condition条件成立就执行state1语句,如果条件不成立,就执行state2语句。执行完选择语句过后继续执行其他程序。
if condition: state1 else: state24.2.3 多分支结构
多分支结构有多个条件,if如果条件condition1成立就执行state1语句,否则判断condition2条件,如果成立就执行state2,否则判断condition3,如果成立就执行state3…,否则执行state4。
if condition1: state1 elif condition2: state2 elif condition3: state3 ...... else: state44.3 循环结构
循环就是重复,我们每天醒来第一件事就是睁眼、洗漱、吃早餐、工作、下班、睡觉,重复着同样的事情,直到我们生命的尽头。人的一生可能就是一段程序。
4.3.1 for循环for循环一般和range固定搭配,当然你也可以和其他数据类型搭配比如:列表、字典、字符串等。下面程序中range的范围是10,存在数字0-9,i使用了成员运算in,i的值可以是0-9,所以state语句会重复执行10次。
for i in range(10): state4.3.2 while循环
while循环和for循环功能差不多,只是while循环一般用于循环次数不明确的场景,两种循环可以通过彼此互相实现。condition是while循环的判断条件,每次循环都会去执行判断condition是否成立,如果成立就继续执行state语句,否则就跳出循环。如果condition每次改变,而条件一直成立,那它就是一个死循环。
while condition: state4.3.3 循环关键字
break:在循环中使用break表示跳出整个循环,break与他当前最近的循环配套,在嵌套循环中要知道哪个break是和哪个循环配套的。
continue:在循环中使用continue表示跳出当前这一次循环,继续执行下一次循环,不会跳出整个循环。
有点像答题,continue是跳过难的题目,而不是像break一样遇到难题直接交卷不做了。
五、函数 5.1 函数定义
函数的作用就是对代码进行封装,隐藏代码的细节,函数的定义如下。通过关键字def(define)定义函数,函数名满足标识符的命名规则,函数内部的state就是被隐藏的代码细节。括号里面的parm1,parm2…是函数的参数。
def 函数名(pram1, parm2,...): state5.2 函数参数 5.2.1 形式参数
形式参数是在定义函数时使用的参数。如下代码中的r半径就是形式参数。
def cal_area(r): pi = 3.14 return pi * r ** 2
形式参数也可以给定默认值。
def cal_area(r=4.0): pi = 3.14 return pi * r ** 2
也可以有多个形式参数。
def cal_area(width, height): return width * height
注意:默认参数不能在其他参数的前面。
def cal_area(width, height=10): return width * height5.2.2 实际参数
实际参数就是在调用函数时使用的参数,形式参数好比是画个建筑图,而实际参数就是实实在在的大楼。
r = 2.0 #实际参数 cal_area(r)5.3 函数调用
函数调用只需要使用定义好的函数名和传入实际参数。
r = 2.0 #实际参数 cal_area(r)#函数调用
总结
本期的python基础第一部分就到这里,后期将推出python基础(二),敬请期待!感谢你的观看。



