for 循环:
1、for循环写不了死循环
2、else:循环"正常"结束后执行else
例:
for i in range(3):
print(i)
字典:
1、字典是无序的
2、循环字典中的keys,例如:
dict1={'name':['nina','lucy','mike'],'age':[11,22,33]}
for k in dict1:
print(k)
3、用in来判断一个值是不是字典里面的话,判断的是字典的key,例如:
if 'name' in dict1:
print('ok')
4、key不存在的时候会返回报错信息:print(dict1['color'])
5、get获取返回值时,如果查询结果不存在不会报错,支持返回一个指定值:print(dict1.get('haha','name'))
6、支持改
dict1['name']='yes'
dict1.update(name='no')
print(dict1['name'])
7、支持增
dict1['add']='miaomiao'
dict1.setdefault('qq','ww')
print(dict1)
8、支持删
del dict1['name']#删除一个key
dict1.pop('age')#删除一个key
dict1.popitem()#随机删
print(dict1['name'])
print(dict1.keys())#打印keys
print(dict1.values())#打印value
print(list(dict1.values()))#打印values,每个keys对应的value作为列表的一个元素,变成一个嵌套列表
print(type(dict1.values()))#打印出valus的类型,类型为dict_values
9、字典的嵌套
user_info={
'nina':
{'age':28,'color':'blue'},
'lily':
{'age': 28, 'color': 'blue'}
}
print(user_info['nina']['age'])#打印出28
user_info={
'nina':
{'age':28,'color':['blue','yellow'],'money':100},
'lily':
{'age': 28, 'color': 'blue','money':300}
}
print(user_info['nina']['color'][1])#打印出yellow:字典加列表的嵌套
10、把字符串转换成字典:使用eval,例如:
with open('b.txt','a+',encoding='utf8') as f:
f.seek(0)
new_user_info=eval(f.read())
print(type(new_user_info))
字符串方法:
name = 'my \t name is {name},age is {age}.'
print(name.capitalize()) # 大写
print(name.center(50, '-')) # 使用-补足50个字符,把name放中间
print(name.endswith('u')) # 是否以x结尾--常用---1
print(name.expandtabs(30)) # 补\t的次数--了解
print(name.find('n')) # 查找字符串的索引,找到不到返回-1---常用
print(name.index('n')) # 查找字符串的索引,找不到直接报错
print(name.format(name='niuniu', age=18)) # 这个是格式字符串,再第一节的博客里面已经写了---常用---2
fill=input('请输入名字:')
src = 'select username,password from user where name like "%{name}%" or "%{name}%";'#参数需要用{}括起来
newsrc=src.format(name=fill)
print(newsrc)
print(name.format_map({'name': 'niuniu', 'age': 19})) # 这个也是格式化字符串,后面跟的是一个字典,字典在后面也会写
print('abA123'.isalnum()) # 是否只包含数字和字母--了解,不用记
print('abA'.isalpha()) # 是否是英文字母--了解,不用记
print('122'.isdigit()) # 是否是数字--常用---3
print('aa'.isidentifier()) # 是否是一个合法的变量名
print('aa'.islower()) # 是否是小写字母
print('AA'.isupper()) # 是否是大写字母
print('Loadrunner Book'.istitle()) # 是不是一个标题,判断首字母是否大写--了解
print('+'.join(['hehe', 'haha', 'ee']))# 拼接字符串,如使用+--必须会,列表变为字符串,连接list中的每一个元素,列表中的元素必须时字符串类型--常用---4
print('+'.join(('hehe', 'haha', 'ee'))) # 拼接字符串,如使用+--必须会,列表变为字符串,连接list中的每一个元素,列表中的元素必须时字符串类型
print(name.lower()) # 变成小写---常用---5
print(name.upper()) # 变成大写---常用---6
print('\nmysql \n'.lstrip()) # 默认去掉左边的空格和换行
print('\nmysql \n'.rstrip()) # 默认去掉右边的空格和换行
print('\nmysql \n'.strip()) # 默认去掉两边边的空格和换行,strip(i):表示删除字符串两边的i--常用---7
p = str.maketrans('abcdefg', '1234567') # 前面的字符串和后面的字符串做映射
print('cc ae gg'.translate(p)) # 输出按照上面maketrans做映射后的字符串
# 下面是反解
new_p = str.maketrans('1234567', 'abcdefg')
print('cc ae gg'.translate(new_p))print('mysql is db.'.replace('mysql', 'oracle', 1)) # 替换字符串--常用---8
print('mysql is db.'.replace(' ', '', 2)) # 替换字符串---表示去除中间的空格,替换2次
print('mysql is is db'.rfind('')) # 返回最右边字符的下标
print('1+2+3+4'.split('+')) # 切割字符串,返回一个list,如['1', '2', '3', '4']---常用---9
print('1+2+3\n1+2+3+4'.splitlines()) # 按照换行符分割---常用--10
print('Abcdef'.swapcase()) # 大小写反转
username=['nina,18','qq,99','haha,24']#取列表中元素的切片
for u in username:
names=u.split(',')[0]
print(names)
数据类型
http://www.nnzhp.cn/blog/archives/162---参考
[]表示列表,列表比字符串取值方便,便于增删改查
names = ['nina','sault','alsa','bonny','clare']#一维数组
下标,索引,角标
计算机从0开始计数
print(names[1])
#增# #
names.append('daring')#从末尾给列表增加元素
names.insert(8,'yes')#指定位置添加元素,如果指定的下标不存在则在末尾添加
numbers=[1,2,3,4,5]
names.extend(numbers)#把number的元素加入到names这个列表中
union=names+numbers#合并2个列表,把2个列表的元素放到union里面
print(names+numbers)#打印出两个列表
print(union)
#查# #
print(names)
print(names.count('nina'))#查询元素出现的次数
print(names.index('nina'))#查询元素的下标,有重复元素时只能返回第一个出现的下标
names.reverse()#反转列表
names.sort()#默认升序,写上reserve=True就是降序
name.srot(reserve=True)
print(names[-1])#下标-1表示最后一个元素
others = [1,2,['qq','ww']]#二维数组
three = [1,2,['qq','ww',[1,2,3]]]#三维数组
print(three[2][2][1])#查询多维数组的元素
print(three[-1][-1][1])#或如下,-1即取数组里面的最后一个元素
print(three[-1].index('ww'))#查询嵌套列表的下标
#改# #
names[0]='ninanie'
#删# #
del names[0]
names.pop()#默认删除最后一个元素
names.pop(0)#如果传入下标,则删除指定位置的元素
names.pop(9)#不存在下标时,越界会报错
names.remove('sault')#删除列表中指定的元素,而非下标
names.clear()#清空列表,变为一个空列表
print(names)
#切片:切片同样适用于字符串
names = ['nina', 'sault', 'alsa', 'bonny', 'clare','wing',[11,22,33,44,55,66]]
print(names[1:3])#切片取值顾头不顾尾,即从下标1开始取一直取到小于下标3的元素['sault', 'alsa']
print(names[:3])#前面的下标可以不写,表示从头开始取
print(names[1:])#后面的下标可以不写,表示取到最后
print(names[:])#都不写,表示取原来的列表的全部元素
numbers=[0,1,2,3,4,5,6,7,8,9,10,11,12]
print(numbers[1:12:2])#表示切片的区间时[1:12],步长为2,即取下标1,3,5,7,9,11
print(numbers[::1])#显示全列表元素,步长为1
print(numbers[::-1])#切片里面如果步长是负数,是从后面往前面开始取值的,步长为1
print(numbers[::-2])#切片里面如果步长是负数,是从后面往前面开始取值的,步长为2
s = 'abcdefghijklmnopqrstuvwxyz'#字符串的值不可以修改,错误写法:s[0]=q
print(s[:6:-1])#返回结果:zyxwvutsrqponmlkjih
可变变量:如list
不可变变量:如字符串,元组
元组:小括号表示元组
infos = ('root','198.168.0.1','3306',123456)
print(infos.count('3306'))#统计元组中元素出现的次数
print(infos.index('3306'))#返回元组中元素的索引,元组只能用index和count这两种方法
print(infos[-1])#元组也支持切片,显示元组的最后一个元素
print(infos[:2])#元组也支持切片,下标从头取到1
print(infos[::-1])#元组也支持切片,步长为1
循环list的时候,不要删除list中的元素,会导致元素的下标错位
li=[1,1,2,3,4,5,6,7]
for i in li:
if 1%2!=0:
li.remove(i)
print(li)
正确写法:
li=[1,1,2,3,4,5,6,7]
li2=li.copy()
for i in li:
if i%2!=0:
li2.remove(i)
print(li2)
print(li)
'''交换两个变量的值'''
a=1
b=2
a,b=b,a
print(a,b)
a=a+b
b=a-b
a=a-b
print(a,b)
文件读写
f=open('b.txt','r',encoding='utf8')
f=open('b.txt','r+',encoding='utf8')#r+:读写模式,只要模式例沾上r,文件不存在时都会报错
f=open('b.txt','w+',encoding='utf8')#w+:写读模式,只要沾上w,就会清空以前的内容
f=open('b.txt','a+',encoding='utf8')#追加读模式
print(f.read())#读取文件所有内容
print(f.readlines())#返回一个字符串列表,list里面每个元素时文件的每一行
print(f.readlines()[2:3])#读取某一行
print(f.readline())#一次只读取一行
打开文件有三种方式,默认时读的方式打开文件,文件存在且不往文件写东西的时候用w
读 r,如果文件不存在会报错
写 w,以写的方式打开文件不存在时,会新建一个文件;如果文件存在会清空原来的文件内容
追加 a
f.write('\n新增')#写内容,只能是字符串
f.seek(0)#移动文件指针到最前,使写入新内容后可读取
print(f.read())
f.writelines(['123\n','www\n'])#写的是list
f.seek(0)
i=1
for line in f:#循环一个文件的时候循环的是文件的每一行
print('第{hang}行:line'.format(hang=i,line=line))
i+=1
f.close()
with open('b.txt','a+',encoding='utf8') as f:#这种写法不需要再close文件
f.seek(0)
for line in f:
print(line)