学习总结——python的基础2

#可变类型  不可变类型


 
stus = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
words = '啊哈哈哈'
# 取出list里每一个元素
for i in stus:
print(i)
# 取出字符串中每一个字符
for j in words:
print(j)



# 切片,list取值的一种方式
print(stus[1:3]) #顾头不顾尾,只取到下标为1-2的元素,不取下标为3的元素,以list形式
print(stus[:3]) #开头下标写0和不写一样
print(stus[-1]) #-1代表最后一个元素
print(stus[1:]) #如果后面下标不写,代表取到结尾
print(stus[:]) #开头的下标和结尾的下标都不写,代表取整个list
print(nums2[0:11:2])  #第二个冒号后面值代表步长,是隔几个元素取一次
print(nums2[::-1]) #步长为负数的话,则从右往左取值
# 切片同样适用于字符串




# 元祖,是不可变
cities = ('beijing','shanghai') #一旦定义好,就不能再变了
cities[0]='天津'   # TypeError: 'tuple' object does not support item assignment
print(cities.count('beijing')) # 输出beijing的次数
print(cities.index('beijing')) # 输出beijing第一次出现的标位
s = '小黑、小白' #字符串定义好后也不能进行修改
s[0]='' # TypeError: 'str' object does not support item assignment



a,b,c,d = 1,2,3,4  # 多个变量定义
print(c)
e = f = g = 0 #多个变量相同值定义



a,b = 1,2
# # 不引入第三方变量的方式把a,b交换
a,b = b,a
print(a,b)
# 或者
a = 1
b = 2
a = a+b #1+2=3
b = a-b #3-2=1
a = a-b #3-1=2
print(a,b)



# 非空即真,非0即真
# 实现同样的功能,代码越少越牛逼

a = 1
b = 2
print(a==b)
# 1当然不等于2啦,所以输出 False
s = [1,2,3,4,5]
print( 1 not in s)
# 1明明就在s里面,所以输出 False

举一个栗子~
# age name sex addr phone qq email

# k - v
xiaohei= { 'name':'小黑',
'age':18,
'sex':'男',
'addr':'上海',
'qq':'123456789',
'email':'[email protected]'
}
print(xiaohei)
# 输出:{'email': '[email protected]', 'addr': '上海', 'age': 18, 'name': '小黑', 'sex': '男', 'qq': '123456789'}

# 增加
xiaohei['身高'] = 180
xiaohei.setdefault('house','无房')
# 输出:{'house': '无房', 'email': '[email protected]', 'addr': '上海', 'age': 18, 'name': '小黑', 'sex': '男', '身高': 180, 'qq': '123456789'}
xiaohei['age'] = 25
xiaohei.setdefault('age',30) # setdefault 这种方式,如果key已经存在,那么就不会修改,如果key不存在,就新增
print(xiaohei)
# 字典是无序的

# 修改
xiaohei['身高'] = 185
print(xiaohei)

# 删除
xiaohei.pop('身高') # 指定key删除,删除时key不存在是会报错的
del xiaohei['sex'] # 用del来删,删除时key不存在是会报错的
print(xiaohei)

# 取值
print(xiaohei['addr']) # 若key不存在则会报错
print(xiaohei.get('email')) # 若key不存在返回None
print(xiaohei.get('email','[email protected]')) # 若key不存在,可以指定一个值返回

xiaohei.clear() # 清空字典
xiaohei.popitem() # 随机删除一个key

yaoyuan = {'chouyan':'1包','name':'遥远'}
xiaohei.update(yaoyuan) # 把后面的字典合并到前一个字典里
print(xiaohei)
print(xiaohei.values())
print(xiaohei.keys())
#-----------------------------------------------------------------------#
for k,v in xiaohei.items(): # 循环取出字典中的key与对应的values
print(k,v)
#-----------------------------------------------------------------------#


字符串常用方法
######需要记的!!!######
# print(name.count('i')) #查询次数a
# print(name.endswith('.jpg')) #判断字符串是否以XX结尾
# print(name.startswith('138')) #判断字符串是否以XX开头
# # bool类型:True 、 Falsea
# print(name.upper()) #都变成大写
# print(name.lower()) #都变成小写
# print(name.find('d')) #找不到元素时,不会报错,会返回-1
# print(name[1]) #字符串也可以根据下标取值的
# print(name.isdigit()) #判断是否纯数字
# print(name.isspace()) #判断是否全都是空格
# print(name.strip()) #去掉字符串两边的东西,默认去掉两边的空格和换行符
# print(name.lstrip()) #至去掉左边的
# print(name.rstrip()) #至去掉右边的
# print(name.replace('abc','哈哈哈',1)) #替换字符串,把前面的替换成后面的,1表示替换1次,不写明全替换
# print(names.zfill(5)) #在前面补0
# print(names1.split()) #1、分割字符串;2、把字符串变成一个list;3、默认以空格和换行符分割的
# print(names2.split(',')) #以逗号进行分割
# stus = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
# print(';'.join(stus)) #1、把list变成字符串;2、以某个字符串连接(这里是以分号连接)

# 一些次要的:
# print(name.capitalize())  # 把字符串首字母大写
# print(name.center(50,'*')) #把字符串居中的
# print(name.index('a')) #找不到元素时,会报错
# print(name.isidentifier()) #判断是否为一个合法的变量名
# print(name.isalnum()) #只要有英文/数字就返回true
# print(name.isalpha()) #判断是否全为英文/汉字的
# print(name.istitle()) #判断首字符是否大写
#-----------------------------------------------------------------------#
import string

print(string.ascii_letters) #所有大小写字母
print(string.ascii_lowercase) #所有的小写字母
print(string.ascii_uppercase) #所有的大写字母
print(string.digits) #所有的数字
print(string.punctuation) #所有的特殊字符


读写文件
# 1、打开文件
# 2、对它进行读/写
# 3、关闭文件
#-----------------------------------------------------------------------#
abc.txt内容为:

哈哈
哈哈哈
哈哈哈哈
哈哈哈哈哈

f = open('abc.txt',encoding='utf-8')
print('readline的结果:',f.readline())   #读取文件一行的数据
# 当上面一行的readline读完第一行时,指针已经到了第二行,所以下面的readlines只能读到第二行以后的数据
print('readlines的结果:',f.readlines()) # 获取文件里面的所有的数据,每一行的数据放到一个list里面
# 当上面readlines读完所有数据后,后面没有数据了,所以read什么都没读取到
print('read的结果:',f.read()) # 获取文件里面的所有内容

所以结果为:

#-----------------------------------------------------------------------------------------------#
# 只读模式 r 读写模式 r+
# 只能读,不能写,文件不存在会报错 # 打开不存在的时候也会报错
#-----------------------------------------------------------------------------------------------#
# 写模式 w 写读模式 w+
# 覆盖以前文件,里面的内容,不能读,文件不存在的话,会帮你创建一个
# 只要沾上r,文件不存在肯定会报错
# 只要沾上w,文件内容肯定会被清空
#-----------------------------------------------------------------------------------------------#
# 追加模式 a+
# 能读、能写、不会清空以前的内容,文件不存在会创建
#-----------------------------------------------------------------------------------------------#

举一个栗子:

# 将一个list中的所有元素依次写入abc.txt中
f = open('文件读写','a+',encoding='utf-8')
names = ['aaa','bbb','ccc']  
for name in names: # 利用for循环将list中的元素依次取出
f.write('\n'+name) # 再依次写入abc.txt中
f.seek(0)# 移动文件指针到最前面
print(f.read())
f.close()


猜你喜欢

转载自www.cnblogs.com/Printwj/p/9145818.html