Day3筆記

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()) # 是不是英文字母

相關文章
相關標籤/搜索