Part 01.python回顾
基本数据类型
6大基本数据类型
- Number(数字):int(整型), float(浮点型), bool(布尔型), complex(复数)
- String(字符串)
- List(列表)有索引index的集合,可重复存储元素的
- Tuple(元祖)定义之后不能再修改的List,有索引index的集合,可以重复
- Set(集合)没有索引index,元素不能重复
- Dictionary(字典)key-value, key的存储方式等同于Set,key没有索引index不能重复
()小括号-——元祖tuple
[]中括号——列表list
{}大括号——集合set
多个变量的赋值:
# 连续赋值
a = b = c = 1
print(a,b,c)
# 多个变量分开赋值
a,b, c = 1, 1.1, 'Hello'
print(a,b,c)
#输出:
#1 1 1
#1 1.1 Hello
Number(数字)
python为动态语言,可直接定义各类型变量(浮点数,多种进制)
var1 = 1.10
var2 = 10
var3 = 0xA0F
var4 = 0o37
print(var1)
print(var2)
print(var3)
print(var4)
#输出:1.1 10 2575 31
删除变量
del var1
复数
#复数 1+i python语言使用j表示i,前面必须加数字
var6 = 1 + 1j # 定义形式 a+bj
print(var6)
#输出:(1+1j)
强制数据类型转换
a = 1.7
print(a, type(a))
b = int(a) # 浮点型强制转换成整型,不做四舍五入
print(b, type(b))
#输出:1.7 <class 'float'>
# 1 <class 'int'>
数字运算
# 加减乘除,幂运算,
print( 10 + 10 )
print( 10 - 10 )
print( 10 * 10 )
print( 10 / 10 )
print( 10 ** 3 ) #幂运算,a**b: a的b次方
print( 10 // 3 ) #除整,除法运算保留整数部分
print( 10 % 3 ) # 取余,取余数
/ 与 / / 的区别
num1=2234/1000
num2=2234//1000
print(num1)
print(num2)
#输出:
#2.234
#2
数学函数
import math
print(abs(-2)) #绝对值
print(math.exp(2))
print(min([1,2,3]))
print(max([1,2,3]))
print(round(3.6))
print(pow(2,3))
print(math.sqrt(4))
生成随机数
import random
print(random.choice(range(2,10))) # [a,b) a默认为0
数学常量
# pi, e
print(math.pi)
print(math.e)
#输出:3.141592653589793
# 2.718281828459045
三角函数
print(math.sin(math.pi))
print(math.acos(1))
#输出:1.2246467991473532e-16
# 0.0
布尔型
print(True) # 表示 真
print(False) # 表示 假
逻辑运算
print("True and True =", True and True)
print((not True))
print(True or False)
数值比较
# < > >= <= ==
print(1 > 2)
print(1 <= 2)
print(1 == 2)
#输出:False
# True
# False
String(字符串)
编码格式是字符串的本质
英文字符,ASCII 8位 (码表) 2^8个字符
更多字符,Unicode 16位 (码表) 2^16
引号 (单双可嵌套)
# 单引号,双引号都可
var1 = 'Apple'
var2 = "Bananas"
var3 = '"Apple"'
var4 = "'Bananas'"
# var5 = " "Apple" " #非法
# var6 = ' 'Bananas' ' #非法
#输出:Apple Bananas "Apple" 'Bananas'
字符串的索引index
#python的索引从0开始,0,1,2,3,4,5,...
# Apple
# 01234
print("倒数第一个",var1[-1]) # 单一元素
print("正数第一个",var1[0]) # 单一元素
#var1 = 'Apple'
print(var1[0:2]) # 范围 [a,b)
print(var1[:2]) # a默认0
print(var1[2:]) # b默认到end
#输出:Ap Ap ple
转移符号
#使用反斜杠 \ (/\)
print('\'')
print('\\')
print("\"")
print("absddddddwafljc\ #连接
gfcwligc")
print("Hello World!",end='') #取消换行
print('aaa')
#输出:'
# \
# "
# absddddddwafljcgfcwligc
# Hello World!aaa
换行和tab键等常用符号
print("aaa\naaaa")
print("aaa\taaaa")
print("a\000bc")
print("aaa\rbbbbbb")
#输出:aaa
# aaaa
# aaa aaaa
# a bc
# bbbbbb
字符串 调用函数的三种方式
- 直接写函数名调用:这是python自带的内建函数
- 使用package名.函数名:这是包的自建函数
- 使用对象.函数名:这是对象所属的类的自建函数
print("aaa".capitalize())
print("aAC".lower())
print("aAs".upper())
print(max("abc"))
print(min('abc'))
print('aaabcccbddd'.split('b')) #以'b'劈开
输出:
List(列表)
list 是装元素的容器, 有增删改查
定义: 元素可以是不同的数据类型,容器中也可以装容器
list1 = ['aaa',111,222,1.11]
print(list1)
list2 = [[1,2,3],'aaa',['a','b']]
print(list2)
#输出:['aaa', 111, 222, 1.11]
# [[1, 2, 3], 'aaa', ['a', 'b']]
读取列表元素
print(list1[0]) # index正着数从0开始
print(list1[2])
print(list1[-1]) # index倒着数从-1开始,
print(list1[-4])
#选取一段元素
print(list1[1:3]) # [1,3)
print(list1[-4:-1]) # [-4,-1)
print(list1[:3]) #左区间默认从0开始
print(list1[2:]) #右区间默认到end结束
# 嵌套选取元素,也能进行区间选取
print(list2[0][0:2])
删除
list3 = [1,2,3,4,5,6,'1','b','c']
list3.remove(list3[0]) # 只能删一个元素
del list3[0:2] # 删除一段元素
修改
#先查询定位,再重新赋值
list4 = [1,2,3,4,5,6,'1','b','c']
list4[6] = 'a'
print(list4)
增加
list4.append('d')
print(list4)
list4.insert(2,33)
print(list4)
#输出:[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']
# [1, 2, 33, 3, 4, 5, 6, 'a', 'b', 'c', 'd']
列表的拼接
a = [1,2,3]
b = [4,5,6]
c = a + b
print(c)
列表的截取
d = c[0:3]
print(d)
#输出:[1, 2, 3]
列表的内建函数
e = [1,1,2,2,2,3,4,5,6,9]
print(e)
print(len(e)) #长度
print(max(e)) #元素
print(min(e))
print(e.count(2)) #某个元素出现的次数
e.reverse() #讲函数的时候会有深刻的理解
print(e)
e.clear()
print(e)
print(1 in e)
#输出:[1, 1, 2, 2, 2, 3, 4, 5, 6, 9]
# 10
# 9
# 1
# 3
# [9, 6, 5, 4, 3, 2, 2, 2, 1, 1]
# []
# False
练习
# 列表存储一个人的姓名,籍贯,民族,身份证号(虚假的,格式要正确),家庭住址,然后把生日提取出来
person = ['旺仔', 'earth', 'X族', '123123202107071234','Mars' ]
info = person[0]+'的生日是'+person[3][6:10]+'年'+person[3][10:12]+'月'+person[3][12:14]+'日'
print(info)
#输出:旺仔的生日是2021年07月07日
Tuple(元祖)
只能查,不能做与修改有关的操作
tup1 = (1,2,3,'a','b','c')
print(tup1)
print(tup1[0])
print(tup1[0:2])
print(tup1[-1])
print(tup1[:3])
print(tup1[3:])
#输出:(1, 2, 3, 'a', 'b', 'c')
# 1
# (1, 2)
# c
# (1, 2, 3)
# ('a', 'b', 'c')
tup1[0] = 11 非法
del tup1[0] 非法
内置函数
tup2 = (1,2,2,3,4,5,6,7,8,9)
print(max(tup2))
print(min(tup2))
print(len(tup2))
print(9 in tup2) #判断元素是否在元组里 True/False
#输出:
#9
#1
#10
#True
Set(集合)
元素不能重复,没有索引index
定义
set1 = {
1,1,2,3,4,4,8,5,4,'a','b','c'}
print(set1)
#输出:
#{1, 2, 3, 4, 5, 8, 'b', 'a', 'c'}
# 查询
print(set1) #只能查整个set因为没有索引
#增:添加元素
set1.add('f')
#删除
set1.remove('f')
# 修改=增加+删除,因为没有索引index查询,没有直接的修改
内置函数
print(len(set1))
set1.clear()
print(set1)
#输出:
#9
#set()
列表list、元祖tuple、集合set的三者间的强制转换
list1 = [1,2,2,3,4,6,2,3]
print(set(list1))
set2 = {
1,2,3}
print(list(set2))
print(tuple(set2))
tup1 = (1,2,3)
print(set(tup1))
list1 = [1,2,2,3,4,6,2,3]
print(1 in list1)
#输出:
#{1, 2, 3, 4, 6}
#[1, 2, 3]
#(1, 2, 3)
#{1, 2, 3}
#True
Dictionary(字典)
dict = {key1:value1, key2:value2, …},容器中只有元祖tuple能当key值
dict1 = {
'name':'zhang_san', 'age':22, 'job':'software engineer','ID':'zhang_san',0:'000'}
print(dict1)
#输出:{'name': 'wangzai', 'age': 6, 'job': 'software engineer', 'ID': 'wang_zai', 0: '000'}
增删改查
# 查询:访问
print(dict1[0])
print(dict1['name'])
# 修改
dict1['age'] = 23
print(dict1)
# 增加
dict1['car'] = 'BYD'
print(dict1)
# 删除
del dict1[0]
print(dict1)
#输出:
#000
#wangzai
#{'name': 'wangzai', 'age': 66, 'job': 'software engineer', 'ID': 'wang_zai', 0: '000'}
#{'name': 'wangzai', 'age': 66, 'job': 'software engineer', 'ID': 'wang_zai', 0: '000', 'car': 'FT'}
#{'name': 'wangzai', 'age': 66, 'job': 'software engineer', 'ID': 'wang_zai', 'car': 'FT'}
内置函数
print(len(dict1)) #一个key:value算一个元素
print('age' in dict1)
dict1.clear()
print(dict1)
#输出:
#5
#True
#{}