python学习day2-3
一.运算符与表达式
1.表达式
- 概述
由变量,常量和运算符组成的式子称为表达式
ALLOWED_EXT = ['.txt','.py']
2.算数运算符
- 格式
| + | - | * | / | % | // | ** |
| 加 | 减 | 乘 | 除 | 取余 | 整除 | 求幂 |
- 格式
# + a = 1 b = 2 c = a + b print(c) # - a = 1 b = 2 c = a - b print(c) # * a = 1 b = 2 c = a * b print(c) # / # print(4 / 2) # % print(10 % 3) # // print(4 // 2) print(10 // 3) # ** print(2 ** 2)
3.赋值运算符
-
= 赋值
4.复合运算符
| += | a += b | a = a + b |
| -= | a -= b | a = a - b |
| *= | a *= b | a = a * b |
| /= | a /= b | a = a / b |
| %= | a %= b | a = a % b |
| //= | a //= b | a = a // b |
| **= | a **=b | a = a ** b |
实例:
# += a = 1 b = 2 # a += b a = a + b # -= a -= b a = a - b # *= a *= b a = a * b # /= # a /= b # a = a / b # print(a) # //= # a //= b # a = a // b # **= # a **= b # a = a ** b # %= # a %= b # a = a % b print(a)
5.真值与假值
-
True / 1
-
假值
# True print(3 > 1) print(3 < 1) username = 'zhangsan' password = 123456 if username == 'lucky' and password == 123456: print('欢迎',username) else: print('请输入正确的用户名或者密码')
6.关系运算符
| > | >= | < | <= | == | != |
| 大于 | 大于等于 | 小于 | 小于等于 | 等于 | 不等于 |
实例:
print(1 > 1) # False print(1 >= 1) # True print(1 < 1) # False print(1 <= 1) # True print(1 == 1) # True print(1 != 1) # False print(ord('a')) #97 print(ord('b')) #98
7.逻辑运算符
| and | x and y | 返回布尔值的True和False两侧为真才为真 |
| or | x or y | 返回布尔值的真或假,一侧为真就为真 |
| not | not x | 返回布尔值的真或假,真为假 假为真 |
实例:
# 逻辑与 and print(True and True) # True print(True and False) # False print(False and False) # False print(1 and 0) # False print(3 > 1 and 1 > 3) # False print(3 > 1 and 1 > 3 and 3 > 1) # False # 逻辑或 or print(True or True) # True print(True or False) # True print(False or False) # False print(1 or 0) # True print(3 > 1 or 1 > 3) # True print(3 > 1 or 1 > 3 or 3 > 1) # True # 逻辑非 not print(not True) # False print(not False) # True print(not 'a') print(not '') print(not '0') print(not '0.0...')
8.成员运算符
| in | 如果在指定的序列中找到对应的值 则为真 |
| not in | 如果在指定的序列中不存在对应的值 则为真 |
# in nameList = ['彭于晏', '吴彦祖', '刘德华'] name = input('输入你喜欢的明星的名字:') # 判断你喜欢的明星是否在nameList里 在为真 则输出print语句的内容 # if name in nameList: # if name not in nameList: if not name not in nameList: # 字符串格式化 把name变量发到对应的%s的位置上 print('你喜欢的明星:%s今晚会来'%name) # 当为假的时候 执行else else: print('你喜欢的明星:%s今晚不会来'%name)
9.身份运算符
| is | 判断两个标识符是否引用同一个对象是的话 则为真 否则为假 |
| is not | 判断两个标识符是否不是引用同一个对象 不是的话 则为真 否则为假 |
# is 判断两个标识符是否引用同一个对象是的话 则为真 否则为假 a = 1 b = 1 # print(a is b) # id 查看变量的存储地址 # print(id(a)) # print(id(b)) x = [1, 2, 3] y = [1, 2, 3] print(x is y) print(x is y) # print(id(x)) # print(id(y))
is 判断的是 两个变量是否引用同一个对象,也就是这个变量在内的地址为同一个我们看到的是两个 但实际存储为一个 使用id查看内存地址
二.数据类型
概述:
在python中变量是没有类型的,它的6类型取决于你所给的值
标准数据类型
-
-
String 字符串类型
-
List 列表
-
Tuple 元组
-
Set 集合
-
1.Number数值类型
-
-
float 浮点型(小数)
-
bool 布尔型(True 和 False)
-
实例:
# int num1 = 123 num2 = 123.0 num3 = True # 使用type函数查看类型 print(type(num1)) # int print(type(num2)) # float print(type(num3)) # bool
关于数值计算的模块
| 函数名 | 说明 |
|
mach.ceil(num) import math |
向上取整 |
|
math.floor(num) import.math |
向下取整 |
| round(num,[num]) | 将值进行四舍五入,参数2可选可有可无 |
| pow(x,y) | x的y次幂 |
| randrange(star,stop,step) | 返回一个区间的随机数 start起始值 终止值,步长(默认1) |
| randint(start,end) | 随机整数 |
实例:
import math num1 = 1.2 num2 = 1.5 num3 = 1.5234 # 向上取整 # print(math.ceil(num1)) # 向下取整 # print(math.floor(num1)) # print(round(num1)) #1 # print(round(num2)) #2 # print(round(num3, 2)) #2 # print(round(num3, 2)) #1.52 print(pow(2, 3, )) # 8 print(pow(2, 3, 2)) #0 import random # 导入随机模块 (random 模块就是一个写了很多函数功能的py文件) print(random.randrange(1, 10)) # 步长为2 print(random.randrange(1, 10, 2)) print(random.randint(1, 100))
2.序列
概述:
序列是字符串,列表,元组的统称
特点:
-
-
默认索引值都是从零开始
-
可以通过切片的方法得到一个范围内的元素
-
3.String字符串
python中的字符串都是使用单引号或者双引号括起来的称为字符串
-
变量[索引]
索引值 从0开始 依次递增 最后一位可以使用-1获取
-
字符串的截取格式:
变量[头下标:尾下标]
-
步长
示例:
str1 = 'lucky' # 取值 print(str1[0]) # l print(str1[1]) # u print(str1[-1]) # y print(str1[-2]) # k # uc # 1称为头下标 2称为尾下标 取值不包含尾下标 print(str1[1:3]) # luck print(str1[0:4]) print(str1[0:-1]) # 获取 # 添加步长参数 print(str1[:]) # 获取所有 print(str1[0:]) # 获取所有 print(str1[:-1]) # 获取所有不包含最后一位 print(str1[:2]) # lu print(str1[:3]) # luc print(str1[::1]) # 获取所有 步长为1(默认为1) print(str1[::2]) # 获取所有 步长为2 lcy # * 将字符串str1 重复2次 # print(str1 * 2) print('l' in str1)
# + 在字符串中使用+作为字符串的拼接
a = 'a'
b = 'b'
c = 1
# print(a + b) #ab
print(a + c) #报错
注意事项:
1.反斜杠可以用来转义具有特殊意义的字符
2.字符串中的+作为字符串拼接
3.*代表重复次数
4.字符串类型的元素不可被更改
5.在字符串的左侧添加字母r,可以将当前字符串进行转义
str1 = 'lucky is good man' str2 = 'lucky is g\'ood man' # 添加引号进行转义成普通字符 str3 = "lucky is g'ood' man" #添加引号进行转义成普通字符 str4 = "lucky is g\"ood man" #添加引号进行转义成普通字符 str5 = "lucky is g\nood man" #\n为换行符 str6 = "lucky is g\\tood man" #\t为水平制作=表符,相当于一个tab键,转义为普通字符 print(str1) #lucky is good man print(str2) #lucky is g'ood man print(str3) #lucky is g'ood' man print(str4) #lucky is g"ood man print(str5) # lucky is g 和 ood man print(str6) #lucky is g\tood man
| \\ | 转义斜杠 |
| \字符串结尾 | 续行符 |
| \n | 换行符 |
| \t | 水平制表符 |
| \r | 回车 |
格式化输出
%d%s %f字符串中的占位符
str1 = "我叫:%s 我今年%d岁了 我的存款为:%f"%("lucky", 18, 2.00)
format格式化
str2 = "我叫:{} 我今年{}岁了 我的存款为:{}".format(name, age, money) print(str2)
函数
| 函数名 | 函数说明 |
| splitStr.join(str) | 以splitstr作为分割合并为新字符串 |
| strip()/lstrip/rstrip | 默认清除字符串俩侧/左侧/右侧的空白字符以及指定字符 |
| max()/min() | 返回字序列中的最大值和最小值 |
| chr() | 将整数转换为对应的字符 |
| ord() | 将字符转换为对应的ASCII值 |
| replace(old,new,[max]) | 将old字符替换为new字符默认替换所有 max为替换次数 |
| find()/index() | 从左侧查找某个字符出现的位置 如果查询不到则返回-1 |
| rfind()/rindex() | 从右侧查找某个字符出现的位置 如果查询不到则返回-1 |
| split(str) | 以str字符串作为拆分 返回拆分后的列表 |
| upper() | 将字母转换为大写 |
| lower() | 将字母转换为小写 |
作业:
题1:按照in和 not in的案例 写出一个 判断 .txt 不允许上传 但是.doc .md .py 可以上传的案例
a = ['.doc', '.md', '.py'] b = input('请输入文件名') if not b not in a: print('成功上传%s文件'%b) else: print('上传%s文件失败,没有该文件名'%b)
题2:将字符串lucky倒着输出
a = 'lucky' print(a[::-1])
题3:将lc从lucky中切片取出
a = 'lucky' print(a[0:3:2]) print(a[0:-1:2])
4.列表
-
列表是Python中使用最频繁的数据类型
-
列表是写在[] 中间 用逗号分隔的元素
(2)格式:
-
[元素1,元素2.....]
(3) 本质:有序的集合
(4) 创建
-
创建空列表
变量 = []
-
创建有元素的列表 list2 = ['lucky', 18]
(5) 元素的操作
格式:
-
列表[索引]
-
列表[头下标:尾下标]
-
实例:
获取单个元素
# 创建列表 nameList = ['山上', '井边', '河里'] # 获取单个元素 print(nameList[0]) #山上 print(nameList[1]) #井边 print(nameList[-1]) #河里 # 当给定的索引不存在 报 IndexError: list index out of range print(nameList[3]) #报错
列表切片:
# 切片 print(nameList[0:]) #['山上', '井边', '河里'] print(nameList[:-1]) #['山上', '井边'] print(nameList[:]) #['山上', '井边', '河里'] print(nameList[::1]) #['山上', '井边', '河里'] print(nameList[::-1]) #['河里', '井边', '山上'] print(nameList[::2]) #['山上', '河里']
元素更改
# 元素的更改 # 获取 print(nameList[0]) nameList[0] = '山里' print(nameList) #['山里', '井边', '河里']
切片更改值
# 更改山上和井边 print(nameList[0:2]) nameList[0:2] = '松' #['松', '河里'] nameList[0:2] = '松下啊' #['松', '下', '啊', '河里'] nameList[0:2] = ['松下'] #['松下', '河里'] nameList[0:2] = ['松下', '树上'] #['松下', '树上', '河里'] print(nameList)
-
del 列表[index]
-
del 列表[切片]
-
del 列表[index], 列表[index]...
-
列表[index/切片] = []
-
list = [1, 2, 3] # 删除列表 del list # 列表清空 list = [] # 删除列表中的某个元素 del list[0] del list[0], list[1] del list[0], list[0] del list[0:2] del list[0:2] print(list) list[0:2] = [] print(list)
列表的其他操作
# + name = ['lucky'] age = [18] # 列表的拼接 print(name + age) #['lucky', 18] # * 重复次数 print(name * 2) #['lucky', 'lucky'] # in not in print('lucky' in name) #True
-
概述:也就是列表中的元素还是一个列表
-
# 多维列表 info = [ ['lucky', 18], ['迪丽热巴', 30] ] # 迪丽热巴 # print(info[1][0]) info[1][0] = 'yellow' print(info) #[['lucky', 18], ['yellow', 30]]
-
列表元素的值是可修改与删除
-
列表写在[]中 使用逗号隔开
-
列表可以被索引和切片
-
列表使用+进行拼接 拼接的元素类型必须是相同
-
*
列表的常用函数
| 函数 | 函数说明 |
| len() | 统计长度 |
| count() | 统计某个元素出现的次数 |
| append() | 向列表中追加一个值 |
| extend() | 向列表中追加多个值 |

浙公网安备 33010602011771号