字符编码

# 需知:
#
# 1.在python2默认编码是ASCII, python3里默认是unicode
#
# 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
#
# 3.在py3中encode,在转码的同时还会把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('選擇無效')

最新文章

  1. OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
  2. javascript的垃圾收集机制
  3. 分享一个c#t的网页抓取类
  4. SQL分页查询结果不一致
  5. 【转载】C/C++ 函数指针 总结
  6. POJ 1995
  7. Android源码分析:HeaderViewListAdapter
  8. cxf2.7.10与Spring3.0.5集成时报错如下
  9. UVa 324 - Factorial Frequencies
  10. 201521123068 《java程序设计》 第10周学习总结
  11. SQL数据库基础知识-巩固篇&lt;一&gt;
  12. C/C++中__builtin_popcount()的使用及原理
  13. Tomcat学习笔记(二)—— 一个简单的Servlet容器
  14. java日期和时间Date、Calendar、SimpleDateFormat
  15. JVM-Ubuntu18.04.1下编译OpenJDK8
  16. vscode快捷键大全
  17. 搭建Elasticsearch平台
  18. 批量MD5命名文件
  19. 数据库 —— mySQL相关
  20. myeclipse查询mysql出来的汉字是乱码

热门文章

  1. Linux测试环境简单使用教程
  2. SpringCloud与微服务系列专栏
  3. Shiro身份验证及授权(二)
  4. 【学习笔记】Linux基础(二):Linux的基本操作
  5. divide and conquer - 最大连续子序列 - py
  6. 量子搜索算法 Grover search
  7. Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
  8. HDU_2510_打表
  9. MySQL关系型数据库基础操作
  10. Git 小课堂 004