Python第二章学习笔记

Python第二章学习笔记


1.数据类型

1.int(整型)
如a = 2

2.float(浮点型)
如a = 2.5

3.bool(布尔型)
如a = True

4.complex(复数)
如a = 4+5j

5.None(空值)	#不能理解成0

赋值方法:a,b,c,d=2,2.5,True,4+5j #交互赋值
强制类型转换:int/float/complex/str/tuple/chr/list(a) 

2.Random随机数

import random	#调用模块
1.print(random.random)	#返回0~1之间一个随机数

2.print(random.randrange(1,100,10)) #返回1~100之间间隔10的一个随机数,如11,21

3.d=range(1,10,2)	#创建数字列表
for i in d:
    print(i,end='')
  输出:13579
  
4.print(random.randint(0,10))	#返回0~10之间一个随机整数

5.返回随机的一个元素 做随机抽奖
li = ['一块手表','一部苹果手机','10000元人民币','摩托车']
print(random.choice(li))

6.sample 随机获取部分元素
生成6位数的随机验证码:
str = '0123456789abcdefghijklmnopqrstuvwxyz'
res = random.sample(str,6)
for r in res:
    print(r,end='')
  输出:2kt8f4

3.字符串

基础

格式:
s = 'abc'
或
s = "abc"

输出:
print('%s'%s)	#输出abc
print('abc')	#输出abc

a = input('输入s:')
print(type(a))	#输出<class 'str'>

下标:变量名[下标]	#范围0~最后
print(s[0])		#输出a
for i in s:
	print(i,end='')	#输出abc

切片:截取变量里面的部分元素值
格式:[开始:结束:步长]
print(s[0:2:])	#输出ab
print(s[0:2:2])	#输出a
print(s[:-1:])	#输出ab(从后往前切,最后一个元素下标-1)

运算:
s1 = 'abc'
s2 = 'efg'
print(s1+s2)	#输出abcefg
print(s1*2)		#输出abcabc

注意:字符串里元素不能通过下标赋值修改
s1[0] = 'y'
print(s1)

一些字符串常见操作

有一个字符串
s = 'My name is ckc'
  • find
检测na是否包含在myStr中,如果是返回开始元素的索引值,否则返回-1

print(s.find('na',0,8))		#输出3
print(s.find('ag',0,8))		#输出-1
  • index
和find方法一样,如果字符串不在myStr中,或直接报错
  • count
返回c在start和end直接在myStr中出现的次数

print(s.count('c',0,20))	#输出2
  • replace
把s中s1(旧元素)替换为s2(新元素),如果指定了count,则替换不超过count次
s1 = 'name'
s2 = 'familie name'
print(s.replace(s1,s2))		#输出 My familie name is ckc
  • rfind
在字符串中查找指定子串的最后一次出现的位置。如果没有找到,就返回-1

print(s.rfind('c'))		#输出13
  • rindex
与rfind一样,只不过如果没有找到就直接报错

4.列表

列表名 = [列表选项1,列表选项2,....,列表选项n]
如:namelist = ['ckc',50,False,7.8,3+4j,None]
特点:列表中存储的元素是可以不同类型的

支持下标操作
print(namelist[0])	#输出ckc

循环遍历列表
for i in namelist:
	print (i)
或者
length = len(namelist)
i = 0
while i<length:
	print(namelist[i])
	i+=1

常见操作

  • 基础
num = [0,10,20,50,60]

修改元素
num[0] = 5
print(num)	#[5, 10, 20, 50, 60]

组合
num1 = [30,40]
print(num+num1)		#[0, 10, 20, 50, 60, 30, 40]

重复
print(num*2)	#[0, 10, 20, 50, 60, 0, 10, 20, 50, 60]

in判断元素是否在列表中,如果找到返回True,反之False
if 0 in num:
	print(True)
else:
	print(False)	#True

截取(包左不包右)
print(num[0:3])		#[0, 10, 20]
  • 函数(添加元素:append,extend)
len() 求列表元素个数
num = ['逻辑','值']
print(len(num))		#2

max() 获取列表元素最大值
liste = [100,99,2,9999]
print(max(liste))	#9999

min()最小值
print(min(liste))	#2

append:添加元素(整体)
num = ['逻辑','值']
num.append('逻辑值')
print(num)		#['逻辑', '值', '逻辑值']

extend:添加元素(个体)
a = [1,2]
b = [3,4]
a.extend(b)
print(a)		#[1, 2, 3, 4]

extend和append区别
1.append()方法将一个元素作为整体添加到列表的末尾,而extend()方法将一个可迭代对象的每个元素分别添加到列表的末尾。
2.append()方法会增加列表的长度1,而extend()方法会增加列表的长度等于可迭代对象的长度。

  • 查找元素
python中查找的常见的方法
 in(存在):如果存在返回的结果为True,反之False
 not in(不存在):如果不存在结果为True,反之False

num = [0,1,2,3,4,5]
NUM=int(input('输入一个数字'))
if NUM in num:
	print('exist')
else:
	print('Not find')

index返回索引
print(num.index(2))		#2

count返回出现次数
print(num.count(1))		#1
  • 删除元素(del/pop/remove)
del:根据下标进行删除
pop:删除最后一个元素
remove:根据元素的值进行删除

name = ['c','k','c']
del name[0]		#['k', 'c']
name.pop()		#['c', 'k']
name.remove('k')	#['c', 'c']
  • 排序(sort/reverse)
sort将列表按照特定的顺序重新的排列,默认由小到大
li = [9,100,78,0,111,-3]
li.sort()		#[-3, 0, 9, 78, 100, 111]

reverse()将列表li中的元素按照相反的顺序排列
li.reverse()	#[-3, 111, 0, 78, 100, 9]
				#注意是列表中逆序,不是从大到小

5.元组

python的元祖和列表类似,不同之处在于元祖的元素不能修改,比如身份证号

格式:
    元祖名 = (元祖元素1,元祖元素2.....元祖元素n)
    
本质:
    一个有序的集合
  • 常见操作
创建空元组
a = ()
print(a)
print(type(a))	#() <class 'tuple'>

定义元祖的时候只定义一个元素
b = (1,)
print(b)	#(1,)

删除元组
c = (1,2,3)
del c	
print(c)	#错误,因为c已经不存在了。错误信息是:NameError: name ‘c’ is not defined

元组组合
d = (4,5,6)
print(c+d)		#(1, 2, 3, 4, 5, 6)

元祖的截取(与列表一样包左不包右)
print(d[0:2])	#(4, 5)

元祖的嵌套(二维元祖),元素是一维元祖	#有点像C里的二维数组
e = ((1,3,5),(2,4,6))
print(e[0][2])
for temp in e:
     for t in temp:
        print(t,end='')
'''
5
135246
'''

len,max/min,count/index用法与列表相同

6.字典

格式:
     {key:value,key:value....}
定义一个变量info为字典类型
info = {"name":"周杰伦","age":30,"address":"北京"}

说明:
   字典和列表一样,存储多种类型的数据
   列表中找某一个元素,根据下标找,默认下标从0开始
   字典中找元素,根据名字(就是:前面的那个值--》key)
   
字典:
   字典中的每一个元素分为两个部分,前面是键   后面是值
   例如:
      key   --------->   name
      value  --------->  周杰伦 
  • 根据键找值
ich = {'name':'ckc','age':21,'adress':'Jiangsu'}
print(ich)	#获取所有元素:{'name': 'ckc', 'age': 21, 'adress': 'Jiangsu'}

获取单个元素---语法格式:字典变量名[键的名字]
print(ich['name'])	#ckc
print(ich['age'])	#21
  • get函数
在我们不确定字典中是否存在某一个键而又想获取它的值,可以使用get(),可以设置默认值
print(ich.get('no'))	#None
print(ich.get('no','100'))	#100
  • 修改元素
    格式:变量名[修改键名] = 新的值
ich['age'] = 25
print(ich['age'])	#25
  • 添加元素
    格式:变量名[“键”] = 数据时,如果该键在字典中不存在,会自动创建
ich['sex']='male'
print(ich['sex'])	#male
  • 删除元素
    del :删除指定的元素
    clear():清空字典
del ich['age']
print(ich)	#{'name': 'ckc', 'adress': 'Jiangsu', 'sex': 'male'}
ich.clear
print(ich)	#{}
del ich		#删除字典所有元素  相当于内存里面删除
  • 字典中常用函数
len():测量字典中,键值对的个数
len(ich)

keys():返回一个包含字典中所有key的列表
ich.keys()	#dict_keys(['name', 'age', 'adress'])

values():返回一个包含字典中所有值value的列表
ich.values()	#dict_values(['ckc', 21, 'Jiangsu'])

items():返回一个包含所有(键   值)元祖的列表
ich.items()		#dict_items([('name', 'ckc'), ('age', 21), ('adress', 'Jiangsu')])
  • 遍历
1.遍历所有键/值
a = ich.keys/values()
for i in a:
	print(a)

2.获取字典中键值对
b = ich.items()
for key,value in b:
	print(key,value)
'''
name ckc
age 21
adress Jiangsu
'''
  • 字典和列表优缺点
字典和列表比较:
1.查找和插入的速度较快,不会随着key-value的增加而变慢
2.需要占用较大的内存

列表占用空间小

7.集合

集合与之前的列表和元祖类似,可以存储多种类型数据,这些数据不能重复
格式:
a = {value1,value2…}
或者
b = set(value,value2…)
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

理解:
只有value,没有key

本质:
无序,不重复元素的集合

集合支持intersection(交集),union(并集),difference(差集)和sysmmetric difference(对称差集)等运算

  • 创建

集合的创建 ,需要列表/元祖/字典作为集合的元素
注意:重复的元素在集合中会被自动过滤掉

  1. set函数创立
a = set([1.2])	#列表
b = set({'name':'ckc','age':21})	#字典
c = set((3,4))	#元组
print(type(b))	#<class 'set'>
  1. {}创建
a = {'apple','orange','banana'}
print(a) 
  • 常见操作

添加add

a = {1,2,3}
a.add(5)
print(a)	#{1, 2, 3, 5}
a.add((5,6))
print(a)	#{1, 2, 3, 5, (5, 6)}

a.add([4,5]) #列表元素可修改,不能添加
a.add({5:‘hello’,6:‘world’}) #字典元素可修改,不能添加

update()可以插入list/tuple/String打碎插入(无序,去重)

a.update([7,8])
print(a)	#{1, 2, 3, 5, 6, 7, 8, (5, 6)}
a.update({'name':'ckc','age':21})
print(a)	#{1, 2, 3, 'age', 5, 6, 7, 8, 'name', (5, 6)}
a.update('0')
print(a)	#{1, 2, 3, 'age', 5, 6, 7, 8, 'name', (5, 6), '0'}

删除

a.clear()
print(a)	#set()

遍历

for i in a:
	print(i,end='')

交集/差集/并集 开发场景:好友之间的共同爱好

交集 &

s = set([1,2,3,4])
s2 = set([3,4,5,6])
print(s & s2)	#{3, 4}
print(s.intersection(s2))	#{3,4}

并集 |

print(s | s2)	#{1, 2, 3, 4, 5, 6}
print(s.union(s2))	#{1, 2, 3, 4, 5, 6}

差集 -

print(s - s2)	#{1,2}
print(s.difference(s2))		#{1,2}

差集 对称差集

print(s.symmetric_difference(s2))	#{1, 2, 5, 6}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值