笔记目录速看:
一,基本语法
1,注释
2,行与缩进
3,语句换行
二,变量和数据类型
1,变量和赋值
2,变量的类型(数字类型,布尔类型,字符串类型,列表类型,元组类型,字典类型,集合)
三,标识符和关键字
1,标识符
2,关键字
四,简单数值类型
1,整形
2,浮点型
3,布尔类型
4,复数类型
5,数字类型转换
五,运算符
1,算术运算符
2,赋值运算符
3,复合赋值运算符
4,比较运算符
5,逻辑运算符
6,成员运算符
六,位运算
1,按位与
2,按位或
3,按位异或
4,按位取反
5,按位左移
6,按位右移
七,运算符优先级
学习目标:
1,了解python中的关键字
2,掌握python的变量和变量类型
3,掌握python中的标识符,能识别合法的标识符
4,了解python不同运算符的使用
(正片开始)
一,基本语法
1,注释:分为单行注释和多行注释
(1).单行注释:Py中的单行注释以#开头。如下所示:
#第一行注释
#print("HelloWorld!") #第二行注释
(2).多行注释:可以使用三引号作为开头和结束符号。如下所示:
"""
print("认真学习,不要摆烂!!!", ..., a = 1, x = "泽是小白")
"""
2,行与缩进
一般情况下Python的缩进是使用一个Tab键或者四次空格作为一个缩进的,(据说一个资深的程序都是使用Tab键的,个人也比较喜欢使用Tab键)如下所示:
#以下为正确示范
if age < 18:
print("抱歉") #该行的print距离上一段代码的if的正下方为一个Tab键
else:
if ismale: #该行的if距离上一段代码的else的正下方为一个Tab键
print("欢迎") #该行的print距离上一段代码的if的正下方为一个Tab键
else: #该行的else距离上三段代码的else的正下方为一个Tab键
print("禁止!!!")#该行的print距离上一段代码的else的正下方为一个Tab键
#正确示范结束
#以下是错误示范
if True:
print("正确") #该行的print距离上一段代码的if的正下方为一个Tab键
else:
print("正确") #该行的print距离上一段代码的else的正下方为一个Tab键
print("错误") #缩进不对,Py会报错
#错误示范结束
3,语句换行
在Python中一般情况下是一行写完一条语句,但如果语句过长的话我们就需要换行。这时我们可以使用圆括号()来实现。
print('我是泽'
'我从小学就对电脑感兴趣'
'初中喜欢玩手机'
'高中喜欢手机和电脑'
'大学确定目标,当一名程序员')
当然也可以使用 \ 来实现。
(反斜杠 \ 加上一个特殊字符就变成一个转义字符,例如\n就表示换行的意思)
注意:在[ ],{ },( )中的语句,不需要使用圆括号进行换行
dijia = ['item_redblue', 'item_red',
'item_blue']
二,变量和数据类型
1,变量和赋值
Python中的变量用来存储数据,其类型和值在赋值的那一刻起被初始化。
num1 = 100 #将100赋值给变量num1
num2 = 101 #将101赋值给变量num2
and = num1 + num2 #将变量num1与变量num2的和赋值给and
num1与num2分别存储的数据是100和101,and存储的数据是num1和num2的数据之和,即201。
2,变量的类型
(1),数字类型
数字类型分为整形,复数,浮点型
(2),布尔类型。
bool()
#bool()内置函数可以直接给出True或False结果
(3),字符串类型
"pass" #无论引号里面的内容是什么,只要出现在引号里面,都是字符串
(4),列表类型
dijia = [1, one, ten, ..., '我是列表里的一员'] #列表用[]表示
(5),元组类型
dijia = (1, one, ten, ..., '我是元组里的一员') #元组用( )表示
(6),字典类型
dijia = {"小泽" : "小泽泽", ...} #列表用键值对表示
(7),集合
type({"dijia"}) #在大括号中加入一个字符串(元素)
<class 'set'> #一个集合
集合最大的特性就是唯一性,即集合中所有的元素都是独一无二的,并且是无序的!
Python将集合分为可变和不可变两种对象。
前者为:set()
后者为:forzenset()
三,标识符和关键字
1,标识符
若希望在程序中表示一些东西,需要程序员自定义一些符号和名称,而我们把这些符号和名称叫做标识符。
!!!命名规则:
1,标识符由字母,下划线和数字组成,且数字不能作为开头!
2,要区分大小写
3,不能使用关键字
2,关键字
关键字指的是具有特殊功能的标识符
help() #进入帮助系统
help > keywords #查看所有的关键字列表
help > return #查看return关键字的说明
help > quit #退出关键字系统
四,简单的数值类型
1,整形
整数类型(int)简称为整形,用于表示整数。
二进制:0b10100101101
八进制:0o101101
十进制:55
十六进制:0x14
2,浮点型
浮点型(Float)用于表示实数。浮点型字面值可以使用十进制或者科学计数法进行表示。
3,布尔类型
布尔类型的数据只有两种结果:True和Flase。
bool值没有操作。
所有的空结果都是Flase, 所有的非空都是True。
#布尔类型
#使用bool()内置函数可以直接给出True或Flase的结果
bool(59)
59
bool("假")
True
bool("Flase")
True #不管内容是什么,只要在引号里面,全部都是字符串,对于字符串而言,只有空字符串的结果为Flase,其他都是True,哪怕只有一个空格
bool(Flase)
Flase
bool("") #此处是个空字符串
Flase
bool(" ") #两个引号中加了一个空格,结果为True
True
#同理,无论数值多少,只有等值于0的结果才是Flase,其他情况也都为Flase
以下结果几乎都为Flase的情况:
1,定义为Flase的对象:None和Flase #None表示一无所有,Flase表示假
2,值为0的数字类型:0, 0.0, 0j, Decimal(0), Fraction(0, 1) #Fraction(0, 1)表示分子为0,分母为1的有理数
3,空的序列和集合:"", (), [], {}, set(), range(0)
4,复数类型
用于表示数学中的复数,例如5+3j。
两大特点:
(1),复数由实数部分和虚数部分构成,表示为:real+imagj或real+imagJ
(2),复数的实数real和虚数imag都是浮点型
5,数字类型转换
int(x[,base]) #将x转换为一个整数
float(x) #将x转换为一个浮点数,默认为六位小数
complex(real[,imag])#创建一个复数
五,运算符
1,算术运算符
操作 | 说明(结果) |
x + y | x+y的结果 |
x - y | x-y的结果 |
x * y | x乘以y的结果 |
x / y | x除以y的结果 |
x // y | x地板除以y的结果(地板除:确保两个数相除的结果是一个整数,若不是整数,则向下取整,向小的数取。例如:3//2的结果为1,-3//2的结果为-2) |
x % y | x除以y的余数(例如:3%2和6%2的结果分别为1和0) |
-x | x的相反数 |
+x | x本身 |
abs(x) | x的绝对值 |
int(x) | 将x转换成整数 (是取整数,不是四舍五入!例如:int(3.14)结果为3,int(9.99)结果为9) |
float(x) | 将x转换成浮点数 |
complex(re, im) | 返回一个复数,re是实部,im是虚部 |
c.conjugate() | 返回c的共轭复数 |
divmod(x, y) | 返回(x // y, x % y) |
pow(x, y) | 计算x的y次方 (pow函数支持第三个参数,若为pow函数传入第三个参数,那么会将幂运算的结果与第三个参数进行取余运算。例如:pow(2, 3, 5)的结果为3,即2 ** 3 % 5,结果为3) |
x**y | 计算x的y次方 |
公式:X == (X // Y)*Y + (X % Y)
2,赋值运算符
赋值运算符只有一个,即=,它的作用是把赋值号右边的值赋值给左边。例如:
x = 1
anInt = 12
anFloat = 2.2
anStr = 'string'
aList = ['a', 'b', 'c']
anArray = (1, 2, 3)
aMap = {1:'a', 2:'b', 3:'c'}
x = y = z = 1 #为多个变量赋同一值
x+=1等同于x = x + 1 #增量赋值(减法等同理)
a, b = 1,4 #将多个值赋值给多个变量
x = 2
y = 5
x, y = y, x #变量交换
3,复合赋值运算符
运算符 | 说明 | 实例 |
+= | 加法赋值运算符 | 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 |
4,比较运算符
运算符 | 说明 |
== | 检查两个操作数的值是否相等 |
!= | 检查两个操作数的值是否不相等 |
> | 检查左边操作数的值是否大于右边操作数的值 |
< | 检查左边操作数的值是否小于右边操作数的值 |
>= | 检查左边操作数的值是否大于等于右边操作数的值 |
<= | 检查左边操作数的值是否小于等于右边操作数的值 |
5,逻辑运算符
运算符 | 逻辑表达式 | 说明 |
and | x and y | 布尔“与”,若x为Flase,x and y就返回Flase,否则返回y的值 |
or | x or y | 布尔“或”,若x为True,则返回True。否则返回y的值 |
not | not x | 布尔“非”,若x为True,则返回Flase,若x为Flase,则返回True |
6,成员运算符
运算符 | 说明 | 实例 |
in | 如果在指定的序列中找到值就返回True,否则返回Flase | x在y序列中,如果x在y序列中返回True |
not in | 如果在指定的序列中没有找到值返回True,否则返回Flase | x不在y序列中,如果x不在y序列中返回True |
六,位运算
1,按位与
指参与运算的两个数各对应的二进位进行“与”操作,只有对应的两个二进位都是1时,结果位才为1,否则结果位为0。
2,按位或
指参与运算的两个数各对应的二进位进行“或”操作,只要对应的两个二进位有一个为1时,结果位就为1。
3,按位异或
将参与运算的两个数对应的二进制位进行比较,如果一个位为1,另一个位为0,则结果位就为1,否则结果位为0。
4,按位取反
将参与运算的数的二进位的每一位进行取反,0取反为1,1取反为0。
5,按位左移
指二进位全部左移n位,高位丢弃,低位补0
6,按位右移
指将二进位全部右移n位,移出的位丢弃,移进的位补符号位0
七,运算符优先级
优先级1比2小,依次往下,优先级逐渐增大
优先级 | 运算符 | 说明 |
1 | lambad | Lambad表达式 |
2 | if - else | 条件表达式 |
3 | or | 布尔“或” |
4 | and | 布尔“与” |
5 | not x | 布尔“非” |
6 | in, not in,is, is not, <, <=, >, >=, !=, == | 成员测试,同一性测试,比较 |
7 | | | 按位或 |
8 | ^ | 按位异或 |
9 | & | 按位与 |
10 | <<, >> | 移位 |
11 | +,- | 加法,减法 |
12 | *, @, /, //, % | 乘法,矩阵乘法,除法,地板除,取余数 |
13 | +x, -x, ~x | 正号,负号,按位翻转 |
14 | ** | 指数 |
15 | await x | Await表达式 |
举例:
a = 20, b = 10,c = 15, d = 5,e = 0
e = (a + b) * c / d = 90
e = ((a + b) * c) / d = 90
e = (a + b) * (c / d) = 90
e = a + (b * c) / d = 90