1.list操做python
name = 'xiaohei,xiaobai,xiaohuang'
id = 1
#数组、list、array
stus = ['xiaohei','xiaobai','xiaohuang','cxdser']
#0 1 2 3 4 5 6
#下标、角标、索引
#最后一个元素的下标能够写-1
#增长
# stus.append('wangyan')#在list末尾增长一个元素
# stus.append('xiaohei1')#在list末尾增长一个元素
# stus.insert(3,'xiaobai1')#在指定位置添加元素
# stus.insert(1000,'xiaobai1')#若是你指定的下标不存在,那么就是在末尾添加
# print(stus)mysql
#改
# stus[0]='王彦'
# print(stus)git
#查看
# print(stus)
# print(stus[-1])
# print(stus.count('hhaha'))
#查看某个元素在这个里面的个数,若是该元素不存在,那么返回0
# print(stus.index('sdfsdfs'))
#找到这个元素的下标,若是有多个,返回第一个,若是找一个不存在的元素,会报错
stus = ['xiaohei','xiaobai','xiaohuang','cxdser','xiaohei']
#删元素
# stus.pop()#默认删除最后一个元素,若是指定下标,那么删除指定的元素
# stus.remove('xiaohei')#删除list里面的一个元素
# del stus[0]
#stus.clear()#清空整个list
# print(stus)
# stus.reverse()#反转list
# nums = [9,31,345,12,457,2352,12143,2321]
# nums.sort(reverse=True)
# #排序,默认排序是升序,若是指定了reverse=True就是按照降序拍
# print(nums)sql
#多维数组
# 二维数组 三维数组
# all_nums = [ 1233, 4526, [7489,150,111] ]
# three = [ 1223, 4526, [7389,110,131, ['heiheihei','12314'] ]]
a = [112,2312,4233]
b = [41,52,36]
# a.extend(b)#合并两个list
# print(a)
# print(b)
# print(all_nums[2][1])api
2.list循环和切片数组
# for name in names:
# print(name)
#若是直接for循环一个list的时候,
# 那么每次循环的值都是这个list里面的元素
# names = ['haha','hehe','heihei']
#切片
nums = [1,2,3,4,5,6,7,8,9,10]
# print(nums[-1:-8:-1])#步长
#步长是正数的话从左往右取
#步长是负数的话从右往左取
# print('没有:1',nums[:6])app
#切片一样适用于字符串,字符串也有下标
# title='今 天 发 苹 果 '
# print(title[:4])
# for i,t in enumerate(nums): #enumerate能够同时循环下标和值
# print(i,t)性能
#就是list取值的一种方式
# print(nums[2:4])
#print(nums[:6])#若是切片前面一个值不写的话,从开头取
# print(nums[3:])##若是切片后面的值不写的话,取到末尾
# print(nums[:])#若是前面的值和后面的值都不写的话,那么全取过来spa
#切片是顾头不顾尾指针
#注册,死循环
# username,paswd
# nams = ['haha']
# if 'haha' in nams:
# print('hhaha')
usernames = [] #全部的用户名
while True:
username= input('用户名:')
passwd = input('密码:')
if usernames.count(username) == 0: #判断找到的个数是否为0,为0的话,表明这个用户没有被注册过
print('注册成功!')
usernames.append(username)
else:
print('用户已经被注册')
# 非空即真
# 非0即真
3.非空即真
# print(1>2)
# a=1
# b=2
# if a==b:
# print('xxx')
# 非空即真
# 非0即真
4.字典操做
#字符串、整形、list、字典
#王彦 38 男 昌平区 20k xx
# stus = [
# ['王彦',30,'nan','xxx','20k','x'],
# ['王彦',30,'nan','xxx','20k','x','xx','xx'],
# ['王彦',30,'nan','xxx','20k','x'],
# ['王彦',30,'nan','xxx','20k','x'],
# ]
# k=v
#取值方便、速度快
#查
d = { 'name':'王彦',
'age':18,
'sex':'男',
'addr':'昌平区',
'money':10000000 ,
'xx':'xxx'
}
print(d['haha'])#若是写了不存在的key,会报错
print(d.get('SDFSDF'))#若是get不到的话,返回None
#增长
d['shengao']=198
d.setdefault('weight',130)
#字典是无序的
#修改字典的
d['shengao']=200 #若是这个key存在的话,修改他的值,若是key不存在的话,新增一个
#删除
# d.pop('shengao')#删除某个key
#d.popitem()#随机删除一个
# del d['shengao']
#d.clear()#清空字典
# print(d.keys())#获取到字典全部的key
# print(d.values())#获取到全部的values
# d.has_key('addr') #python2里面字典有这个方法,有没有这个key
# if 'addr' in d :#判断key是否在这个字典里头
# print('addr')
# print(d.items())#是吧字典的k和v转成一个二维数组
# for k,v in d.items():#
# print(k,v)
# int()#int类型
# str()#抓成字符
# list()#转成list
# res = list(d.items())
# print(res[0])
# for k in d: #性能好
# print(k,d.get(k))
5.元组操做
# a = (1,2,3,5,5)
# mysql1 = ('127.0.0.1',3306,'my','root','123456')
# mysql2 = ('127.0.0.1',3307,'my','root','123456')
# print(mysql1.count('my'))#找个数
# print(mysql1.index('my'))#返回下标
#元组也是list,只不过是不可变的
6.注册、登陆练习
#一、帐号/密码/密码确认
#二、非空
#三、已经存在的不能注册
all_user = {'niuhanyang':'123456','tlx':'123456'}
while True:
username = input('username:').strip()
pwd = input('pwd:').strip()
cpwd = input('cpwd:').strip()
if username and pwd and cpwd:
if username in all_user:
print('用户名已经存在,请从新输入')
else:
if pwd==cpwd:
all_user[username]=pwd
print('注册成功!')
break
else:
print('两次输入的密码不一致')
else:
print('帐号/密码/确认密码不能为空')
#登陆程序
# 一、非空
# 二、若是输入的用户名不存在,要提示
#三、输入帐号密码
while True:
username = input('username:').strip()
pwd = input('pwd:').strip()
if username and pwd:
if username in all_user:
src_pwd = all_user[username]
if src_pwd == pwd:
print('欢迎登陆')
break
else:
print('密码输入错误!')
else:
print('输入的用户不存在')
else:
print('帐号/密码不能为空')
7.文件读写
f = open('ybq.txt','a+',encoding='utf-8')
f.seek(0)#seek移动指针的时候,只对读好使,对写很差使
# f.truncate()#清空文件内容
print(f.read())#读取文件里面的所有内容
print(f.tell())#查看当前文件指针的位置
# print(f.readline())#只读取一行的内容
# print(f.readlines())#读取文件里面全部的内容,把文件里面每一行的内容放到一个list里面
# f.write('mpp'+'\n')
# print(f.read())
names = ['ybq','mpp','tlx','ply','yjy']
st = 'ybq,mpp,tlx'
tu=('sdf','sdfs','sdfsd')
d={'name':'xx'}
# f.write(names)
f.writelines(tu) #写的时候,传入一个可迭代的对象
f.close()
#文件指针
#file() #python2里面
#open()
#文件打开有3种方式
# 读 r #若是打开的文件的时候没有指定模式,那么默认是读
# 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错
# 写 w #w模式会清空原有文件内容
# 写读模式 w+
#只要沾上w,他就会把文件内容清空
#追加 a
# 追加读写
f = open('a.txt', 'w')
for i in range(3):
f.write(xx+'\n')
#高效处理文件的方法
fw = open('ybq.txt',encoding='utf-8')
count = 1
#直接循环文件对象的话,就是循环文件里面的每一行
for f in fw:
f = f.strip()
stu_lst = f.split(',')
print(stu_lst)
8.字符串方法
#可变变量 list、字典
#不可变变量 元组、字符串
#
li = [1,1,2,3,4,5,6,7,8,9]
li2 = li[:] #深拷贝
# li2 = li #浅拷贝
# print('这里li的内存地址',id(li))
# print('这里是li2的内存地址',id(li2))
#
# for i in li2:
# if i%2!=0:
# li.remove(i)
# print(li)
#在循环list的时候不能删东西
#字符串这些方法都不会改变原来字符串的值
name = 'besttest'
# new_name = name.strip() #默认是去掉两边的空格和换行符
# new_name= name.lstrip() #默认是去掉左边的空格和换行符
# new_name= name.rstrip()#默认是去掉右边边的空格和换行符
# new_name = name.count('t')#查找某个字符串在字符串里面出现的次数
# index = name.find('d')#找到这个字符串,返回它的下标,若是不存在的话,返回-1
# index = name.index('d')#找到这个字符串,返回它的下标,若是不存在的话,报错
# print(name.upper())#把全部字母都变成大写的
# print(name.lower())#把全部字母都变成小写的
file_name = 'a.xls'
# print(file_name.endswith('.xls'))#判断一个字符串是否以xx结尾
sql = 'select * from user; select'
sql.startswith('select')#判断一个字符串是否以xx开头
# f = '{name} 欢迎光临 age :{age} '
# print(f.format(name='原宝青'))#字符串格式化
# d = {'name':'yuanbaoqiang','age':18}
# print(f.format_map(d))#字符串格式化,它传进去的是一个字典
new_sql = sql.replace('select','update')#字符串替换,第一个old,new
# print(new_sql)
# print('122s'.isdigit())#是不是数字
# print('&'.isalnum()) # 是否包含数字或字母
# st = 'a b c d f g'
# st_list = st.split()#若是什么都不写的话,是按照空格分割
# print(st_list)
slit = ['a', 'b', 'c', 'd', 'f', 'g']
s2='hhhhhhhhhh'
tu = (1,2,3,4,5)
d={'name':'nnn','age':18,'sex':1}
res = '*'.join(d)
print(res)
if 'name' not in d:
pass
#能够遗忘的new_name = name.capitalize()#首字母大写name.center(50,'*') #把字符串放中间,两边用*# print('aaAA'.islower()) # 是不是小写字母# print('AAaa'.isupper()) # 是不是大写字母# print('sdfsdf'.isalpha()) # 是不是英文字母