目录
-
二、python基础语法
2.1 注释
单行注释:#
多行注释:””” ”””
2.2 变量
程序是用来处理数据的,而变量就是用来存储数据的
变量的定义:
变量是内存中一块空间,存储规定范围内的值,值可以改变
变量赋值语法:
变量名 = 值
变量名1 = 变量名2 = 变量名3 = 值
第二种赋值语句中的变量1、2、3从内存角度来看是指向同一块内存地址,可以使用命令来查看变量的内存地址 id(变量名)
2.3 标识符
即开发人员自己定义的名称,可以是变量名,也可以是函数名或者类名,以及模块名
- 由字母、数字、下划线组成 _h_123
- 不能以数字开头
- 不能以关键字作为标识符
- 标识符区分大小写
命名规则:
见名知意
驼峰命名法
如何查看python的关键字?
import keyword
print(keyword.kwlist)
2.4 关键字
2.5 python数据类型
type(),查看变量的数据类型
数据类型一共分为两大类:可变数据类型、不可变数据类型
不可变数据类型:数字(number)、字符串(string)、元组(tuple)、集合(set)
可变或者不可变都是针对的内存地址来判断的
可以通过查看内存地址的方法来进行判断
2.6 数字类型
注意:python中数字不区分长短整形、单双进度
数字类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建:num=15
Int:整型,Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
Float:浮点型,用来表示带有小数部分的数据,比如10.5 -33.3e10
Bool:布尔类型,用来表示逻辑真、逻辑假,只有两个值True或者False,在Python中它们的数值分别为1和0,可以跟其它数据类型的数据进行运算
Complex:复数类型,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
2.7 字符串类型
python中使用单引号、双引号、三对双引号来表示字符串
区别在于三队双引号可以保留字符串的格式
字符串的拼接:+、*
注意:字符串和数字变量之间不能进行运算
字符串常用方法:
title():首字母大写
lower():将整个字符串都小写 大写转小写
upper():将整个字符串都大写 小写转大写
replace(old,[,new][,count]):将字符串中的old子串替换为new,替换count次,默认全部替换
split(sep):将字符串用给定的标准分割,并且以列表形式返回分割后的元素组
len(字符串变量名):计算字符串的长度
注意:字符串方法并不会修改字符串变量在内存中存放的值
格式化输出:
如果希望输出文字信息的同时,可以一起输出数据,就需要使用格式化操作符
% 被称为格式化操作符,专门用于处理字符串中的格式
包含%的字符串被称为格式化字符串
%和不同的字符连用,可以实现输出不同的数据类型
注意:%后面只能跟一个值
课件上的格式化字符中,重点演示以下格式化字符
格式化字符 | 含义 |
%s | 字符串 str |
%d | 有符号十进制整数,%0nd表示输出的整数显示n位数,不足的地方使用0补全 |
%f | 浮点数,%.0nf表示小数点后只显示n位 float |
%% | 输出% |
可以在一个输出语句中同时输出多种不同格式的数据,需要在格式化操作符后面使用元组数据类型
2.8 切片
切片定义:序列的截取,用来实现对序列的操作
语法:
变量名[起始下标:截止下标]
注意:前闭后开区间,即截止下标处的值取不到
用法:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
如果你想要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
2.9 列表
标识:[ ]
索引从0开始
列表常用的方法:
L.insert(index,var) #在指定位置插入元素
L.pop(index) #返回最后一个元素,并从list中删除之 pop:弹
根据下标来删除
注意:pop所谓的删除不是物理删除,而是仅仅将元素从列表中移除,如果你需要使用移除的元素,只需要拿变量来接收
L.remove(var) #删除第一次出现的该元素 remove:删除
真正意义上的删除,将元素从内存中彻底磨出了
L.count(var) #该元素在列表中出现的个数 count:统计个数
L.index(var) #该元素的位置,无则抛异常 index:下标/索引
注意:如果元素在列表中有多个值,index只能返回该元素第一次出现的下标
L.extend(list) #追加list,即合并list到L上 extend:扩展
L.sort() #排序,函数本身实现是从小到大
sorted(列表变量) 排序不改变原列表变量值
L.reverse() #反转 将目标列表旋转180度,把头换到尾
L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
共用了同一块内存地址
L1 = L[:] #L1为L的克隆,即另一个拷贝。
两步:L[:]通过切片,将L列表中的全部拿出来了
将拿出来的值重新填充到另一块内存地址中
2.10 元组
标识:()
特点:不能修改
注意:空元组的定义要使用(值,),不能直接赋值一个( )
2.11 集合
标识:{ }
特点:无需不重复的序列
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合运算:
a = set('newdream66')
b = set('news90')
print(a - b) # a和b的差集 即打印a中存在,但b中不存在的元素
print(b - a) # b和a的差集 即打印b中存在,但a中不存在的元素
print(b | a) # a和b的并集 即打印a和b中的所有元素,并去掉重复的
print(a&b) # a和b的交集 即打印a和b中都存在的元素
print(a ^ b) # a和b中不同时存在的元素
利用set集合的不重复特性,可以帮我们快速实现数据的去重
2.12 字典
相信所有人对下面的新华字典都不陌生,每个人学生时代一定使用过这个东西。那它跟python中的字典是什么关系呢?
答案是,此字典即彼字典。都是通过一个关键字,来查询这个字对应的释义。只不过这个“关键字”在python中称为【key】,“释义”称为【value】
标志:{ }
字典是由key和value组成:{‘key’:value}
字典两个注意事项:
1、字典中的键必须独一无二,但值则不必。创建时如果同一个键被赋值两次,后一个值会被记住;
2、键必须不可变,可以用数字,字符串或元组充当,但是不可以用列表
3、值可以是任何数据类型
创建字典:
语法1:
字典名 = {key1:value1, key2:value2, key3:value3}
语法2:使用dict类
空字典:字典名 = dict()
通过映射字典对象:字典名 = dict(字典对象名)
通过迭代变量:字典名 = dict([(key, value), (key, value)]) 或者
字典名 = dict(([key, value], [key, value]))
通过参数:字典名 = dict(key=value, ket = value)
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2) |
语法3:通过fromkeys函数
语法:字典名 = dict.fromkeys(序列,value)
用法,将序列中的每一个元素作为key,每个key对应统一的value
更新/插入字典值:
字典名[key] = value
如果key不存在,则进行插入元素的操作;如果key存在,则进行修改元素值的操作
字典常用方法:
1、adict.keys() 返回一个包含字典所有KEY的列表;
2、adict.values() 返回一个包含字典所有value的列表;
3、adict.clear() 删除字典中的所有项或元素;
4、adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
5、adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
6、adict.update(bdict) 将字典bdict的键值对添加到字典adict中,无则添加,有则覆盖
2.13 数据类型转换
自动类型转换:低精度转高精度,不涉及溢出,会自动转换
强制类型转换:高精度转低精度
常见数据类型转换:
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
dict(d) 创建一个字典。d 必须是一个序列(key,value)元组
2.14 eval()函数
将字符串当成有效表达式来求值并返回计算结果
eval(‘1 + 1’) à 2
2.15 python输入输出语句
input():通过input函数从键盘录入的数据全部都是字符串类型
print():输出语句
format()格式函数输出
语法:
str字符串.format()。字符串中需要填充值的位置使用{ }保留,format函数对应{ }中的参数个数
2.16 python运算符与表达式
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 三元运算符
- 身份运算符
- 成员运算符
算术运算符:用于数学计算
赋值运算符:完成变量的赋值
关系运算符:判断两个操作数之间的关系
逻辑运算符:
位运算符:把数字转换为二进制进行计算
运算符:
注意:位运算符号的操作是将数值对应的二进制+1之后乘以-1
三元运算符
成员运算符:判断值是否在序列中
in not in
身份运算符:比较两个对象的内存地址
is is not
代码缩进:
python中没有象征命令结束的标识符(java中的 ; 号),以及表示作用域的控制符号(Java中的 { } 号)。而是使用缩进(tab/空格 )来进行替代
2.17 python控制语句
顺序、分支和循环语句
拿到钱的小王出去买菜了。他老婆说:“honey啊,到了菜市场如果你看了西瓜的话就买一个,否则你就买个冬瓜。还有,我想吃鸭脖,买不到的话你就不要回来了哦!”
问题: 小王一定会买到西瓜吗? |
if判断语句
语法:
if 判断条件:
执行语句
else:
执行语句
------------------------------
if 判断条件:
执行语句
elif 判断条件:
执行语句
-------------------------------
if 判断条件:
if 判断条件:
if 判断条件:
循环语句
买不到鸭脖,小王就不能回家啦。如果你是小王会怎么做? 方案一: 定位到所有的菜市场,依次跑一边,看有没有鸭脖 方案二: 明确结果:一定要买到鸭脖。购买的地方无所谓 方案一和二有什么区别? 方案一中,小王跑完了几个菜市场之后就没有地方可以去了,那就注定了菜市场没有的话他就没法回家了 方案二,则相对较好,只关心买到鸭脖,所以小王可以选择任意地点去购买,而不用受限于菜市场的个数 |
for循环
语法:
for 变量 in 迭代对象:
循环体
while循环
语法:
while 判断条件:
循环体
[else:
执行语句]
range函数:
语法:
range(起始值,截止值,步长),返回值是一个形式列表
小王一家家的将每个超市都跑一遍,效率太低了。他想了个办法,到超市之后呢,就直接问下工作人员,如果对方说没有的话,那他就不进去了,直接跑下一家。
小王在没有买到鸭脖的情况下,如何才能回家呢?
答案就是他老婆允许他没买到的情况下直接回家!
break语句:
用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在while和for循环中。
如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
continue 语句:
用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
循环嵌套:
在循环体内再写一个循环体
语法:
for 变量名 in 范围:
for 变量名 in 范围:
循环体
while 判断条件:
while 判断条件:
循环体
end参数,实现print函数输出内容后显示的内容,
语法:
end = ‘希望显示的内容’
如果不希望print函数输出后换行直接将end参数设置为空值即可:end=’’
小练习1 打印一个三角形 9*9 |
答案: 方法一: >>> for i in range(1,10): ... print('*' * i) 方法二: row = 1 while row <= 9: col = 1 while coe <= row: print(‘*’, end=’’) col += 1 print() row += 1 方法三: for row in range(1,10): |
课堂练习2: 打印一个九九乘法表 分析每一个乘法式子能得出一个结论: 列数 * 行数 = 值 答案: for row in range(1,10): |
pass语句:
占位符,是一个空语句,表示此处不用执行任何内容,但是需要预留出内存的位置。即 占座
如果对您有帮助,请打赏则个