python基礎學習第二天

字符编码

# 需知:
#
# 1.python2默认编码是ASCII, python3里默认是unicode
#
# 2.unicode 分为 utf-32(4个字节),utf-16(占两个字节)utf-8(1-4个字节) so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
#
# 3.py3encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

#-*-coding:gb2312 -*- #这个也可以去掉
__author__ = 'Alex Li'

import sys
print(sys.getdefaultencoding())


msg = "i am 我爱北京天安门"
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")

print(msg)
print(msg_gb2312)
print(gb2312_to_unicode)
print(gb2312_to_utf8)


字符格式化

ctrl+D複製一行、
ctrl+?注釋

佔位符
%d:d==digital數字
%s:s==string字符
%f:f==float小數

exit():退出程序,也可以如exit("you are wrong")


數據運算
整型integrate
長整型long
python3不區分整型和長整型了,統稱整型
浮點型float

布爾值:真或假,True False

字符串:"hello world!",'222'
字符串拼接不建議使用“,+”符號,慢而且,佔用內存使用%s來拼接
如下:
name="hua"
print("姓名是:%s" %name)
*******************************************
range(3):代表3次【0,1,2】,以此類推range(4)4次【0,1,2,3】


range(1,101):1代表從1開始,101代表到100
例:for i in range(1,101,2):
if i %2==1:
print(i)
輸出結果是1~101之間的奇數
range(1,101,2):2代表步長
例:for i in range(1,101,2):
print(i)
輸出結果是1~101之間的奇數

不輸出結果是50~70之間數
例:for i in range(1,101):
if i<50 or i>70
print(i)

#輸入用戶名和密碼判斷是否正確,錯誤可以輸入3次
_user = "hua"
_password = "123"

for i in range(3):
userName = input("Name:")
passWord = input("password:")
if userName == _user and passWord == _password:
print(" welcome %s login....." % userName)
break #跳出中斷,break for之後就不會執行後面的else語句
else:
print("password and userName is invalid...")
else: #只要上面的for語句正常執行完畢,中間沒有被打斷就會執行else語句
print("you login 3 ,please don't login...")



_user = "hua"
_password = "123"
counter = 0
while counter < 3:
userName = input("Name:")
passWord = input("password:")
if userName == _user and passWord == _password:
print(" welcome %s login....." % userName)
break #跳出中斷,break for之後就不會執行後面的else語句
else:
print("password and userName is invalid...")
counter += 1
else: #只要上面的for語句正常執行完畢,中間沒有被打斷就會執行else語句
print("you login 3 ,please don't login...")

***********************************************************
break:跳出當前循環
continue:跳出本次循環,繼續執行下一次循環,

keep_going = False

for i in range(10):
if i < 5:
continue
print(i)
for j in range(10):
print(j)
if j == 6:
keep_going = True
break #因為內循環退出了
if keep_going:
break #所以我也退出了
*************************************************
列表 元組
#增刪改查
#查 切片
a=[]代表列表格式:a=['xiaohu','jinxing','ligang','sanpang','wuchao']
a[1:3]:代表從索引1開始到索引3前面的一個值,如結果是jinxing ligang
print(a[1:]):代表打印從索引1到最後的所有的值
print(a[1:-1]):代表从索引1到倒數第2個值全部取出來
print(a[1:-1:1]):從索引1開始到倒數第2個左到右一個一個去取
print(a[1::2]):從索引1開始左到右隔一個去取
print(a[1:-1:1]):從索引1開始左到右隔一個去取
print(a[3::-2]):從索引3開始右到左隔一個去取


#增加
#append:在最後增加 a.append('內容')
#insert:插入到某一個位置 a.insert(索引位置,'插入的內容'):a.insert(2,'你好')

#修改:直接把位置的內容替換掉
a[1]='hai':把索引位置1的內容修改為hai
a[1:3]=['hai','hhh']:把索引1和2的內容替換掉

#刪除 remove pop del
a.remove('刪除的內容')或者a.remove(a[0])
a.pop(1):1代表索引位置 ,
b=a.pop(1):把1代表索引位置的內容刪除賦給b
a.pop()默認刪除最後一個字符串
del a[0] :刪除a列索引0的內容
del a:刪除整個a的列表,從內存中刪掉
a.clear()清空全部內容



#列表中字符串出現的次數 :count
方法:a=['to','be','or','not','to','be'].count('to')
print(t)

#extend 方法添加整體添加到後面
a=[1,2,3]
b=[4,5,6]
a.extend(b) 執行之後a是有變化的
print(a):---[1,2,3,4,5,6]
print(b)---[4,5,6]
a+b:[1,2,3,4,5,6] 執行之後a和b的內容都沒有變化



#index:當不知道索引值的時候使用根據內容找位置
a=['xiaohu','jinxing','ligang','sanpang','wuchao']
print(a.index('jinxing'))

#reverse把列表字符串倒敘排列
a.reverse()

#sort,無序列表按照順序排列
x=[4,6,2,1,7,9]
x.sort() / x.sort(reverse=True)
print(x)----x=[1,2,4,6,7,9]


b=sorted(x)
print(x)



身份判斷
type(a) is list


元組:tuple不可以修改只能讀

tup1()空元組
tup2(12,)記得只有一個元素的時候要加逗號


列表嵌套
a=[[1,2,3],4,'alex',(2,3,4)]
a[0] =[1,2,3]
b[1]
相當於:print(a[0][1])

for i in enumerate(product_list):默認從0開始
(0, ['Mac', 9000])
(1, ['kindle', 800])
(2, ['tesla', 900000])
(3, ['book', 105])
(4, ['bike', 2000])

for i in enumerate(product_list,1):默認從1開始
(1, ['kindle', 800])
(2, ['tesla', 900000])
(3, ['book', 105])
(4, ['bike', 2000])



a,b=[2,3]相當於a=2,b=3
print(a)-->輸出2
print(b)-->輸出3

for i, v in enumerate(product_list, 1):
print(i, v)
輸出如下:
1 ['Mac', 9000]
2 ['kindle', 800]
3 ['tesla', 900000]
4 ['book', 105]
5 ['bike', 2000]

************************************************************
 
'''
購物車程序
實現輸入工資
購物列表:
1.Mac 9000
2.kindle 800
3.testla 900000
4.book 105
5.bike 2000

購買物品,可以持續購買
最後來個購買列表
顯示餘額
'''
salary = input('please input your salary:') shopping_car =[] product_list = [ ['Mac', 9000], ['kindle', 800], ['tesla', 900000], ['book', 105], ['bike',2000] ] if salary.isdigit(): #判斷輸入的是否是數字 salary = int(salary) # for i in product_list: # print(product_list.index(i), i) while True: for i, v in enumerate(product_list, 1): print(i, '.', v) choice = input('請選擇商品編號[退出:q]:') if choice.isdigit(): choice=int(choice) if choice > 0 and choice <= len(product_list): p_item = product_list[choice-1] if p_item[1] < salary: salary -= p_item[1] shopping_car.append(p_item) else: print('餘額不足','還剩%s'%salary) print(p_item) else: print('編碼不存在') elif choice == 'q': print('---------您購買的商品如下------------') for i in shopping_car: print(i) print('還剩%s元' %salary) break else: print('選擇無效')
posted @ 2020-01-20 16:16  chiy  阅读(378)  评论(0编辑  收藏  举报