Python 基礎 - 元組與簡易購物車實做
tuple(元組)
其實跟列表差不多,也是存一組數,只不過是它一旦建立了,就不能修改了,只能做 切片
跟 查詢
,所以只叫 只讀列表
語法: name = ("Rogers", "Stark", "Thor", "Loki")
它只有二個方法可以使用,一個是 count()
、一個是 index()
。接下來就簡單試試這二個功能怎麼用
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
names = ("Rogers", "Stark", "Thor", "Loki", "Thor", "Thor")
print(names.index("Stark"))
print(names.count("Thor"))
---------------執行結果---------------
1
3
Process finished with exit code 0
什麼時候才會使用到 tuple(元組)
,一般大都是會用在有連接資料庫的文件時,當你要設定不能變動的設定,如:IP位置,Port號等,就可以使用元組,當服務啟動時,就只吃你設定好的元組,假設有別人再去改動你的設定檔時,會報錯,再來就是使用元組也可以提醒別人,這個配置請不要隨便修改跟異動。
接下來要應用之前所學到的,來建構一個簡單的購物車
目前的需求是:
- 啟動程序後,讓使用者輸入預算,並打印出商品列表
- 允許使用者根據商品編號來購買商品
- 使用者選擇商品後,檢查預算是否足夠?如果夠,就直接扣款,如果不夠,就提醒使用者預算不足
- 可以讓使用者隨時退出購物的程序,退出時,請打印出使用者已購買的商品及餘額
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
product_list = [
('iPhone', 100),
('Mac Pro', 1000),
('iPad Mini', 150),
('Bike', 50)
]
budget = input("請輸入你的購買預算:")
shopping_car = []
if budget.isdigit():
budget = int(budget)
while True:
for index, item in enumerate(product_list):
#print(product_list.index(item), item)
print(index, item)
user_choice = input("請選擇要購買的商品:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice >= 0:
product_itme = product_list[user_choice]
if product_itme[1] <= budget:
shopping_car.append(product_itme)
budget -= product_itme[1]
print("Added %s into shopping car, your current balance is \033[31;1m%s\033[0m" %(product_itme, budget))
else:
print("\033[41;1m你的餘額[%s]...不夠了!!!\033[0m" %(budget))
break
else:
print("你輸入錯誤商品代號\033[34;1m[%s]\033[0m了,請重新輸入" %(user_choice))
elif user_choice == 'q':
print("---------------購買清單---------------")
for p in shopping_car:
print(p)
print("\033[41;1m你的餘額[%s]...\033[0m" % (budget))
print('Exit')
exit()
else:
print("invalid option")
Python 基礎 - 元組與簡易購物車實做的更多相关文章
- Python 基礎 - for流程判斷
今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...
- Python 基礎 - if else流程判斷
hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...
- python基礎學習第二天
字符编码 # 需知:## 1.在python2默认编码是ASCII, python3里默认是unicode## 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf ...
- Python 基礎 - 字符編碼
Python 解釋器在加載 .py 文件中的代碼時,會對內容進行編碼 (默認 ascill) ASCII (American Standard Code for Information Interch ...
- Python 基礎 - 數據類型
標準數據類型 Python3 中有六個標準的數據類型 1 Number(數字) 2 String(字符串) 3 List (列表) 4 Tuple (元組) 5 Sets (集合) 6 Diction ...
- Python 基礎 - 文件操作_v2
嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...
- Python 基礎 - 字符轉編碼操作
回顧字符編碼的前世今生 ASCII 只能儲英文或特殊字符,只占一個字節,一個字節8bit,不能儲中文,所以才出現Unicode Unicode 不管是中文或英文,都是占二個字節,一個字節8bit UT ...
- Python 基礎 - 字典的操作使用
接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...
- Python 基礎 - 列表的使用
如果想要存所有 Marvel's The Avengers 角色的人名,該如何存呢?請用目前已學到的知識來實做- #!/usr/bin/env python3 # -*- coding:utf-8 - ...
随机推荐
- ExtJs 进度条(轮询)
客户端代码: Ext.onReady(function () { Ext.get('mb').on('click', function () { Ext.Ajax.request({ url: roo ...
- iOS开发者证书申请过程
真机测试前准备工作:1.苹果的MAC一台.如果你用的是***不知道可不可以,反正我没用过...一般公司都会给你配开发工具的.2.iphone手机一部.(本人纯屌丝,用的iphone4)3.开发者账号. ...
- 1476. Lunar Code
http://acm.timus.ru/problem.aspx?space=1&num=1476 由于前一列对后一列有影响,所以需要保持前一列的状态, 但无需用状态压缩来保存(也保存不了) ...
- 【Python⑤】python序列---list和tuple
sequence 序列 sequence(序列)是一组有顺序的对象的集合.序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的对象.对象还可以是另一个序列.序 ...
- Bootstrap <基础五>表格
Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格 ...
- (转)客户端触发Asp.net中服务端控件事件
第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为su ...
- scanf_s 可能会出现的死循环
VS2015中提供了scanf_s().在调用时,必须提供一个数字以表明最多读取多少位字符. scanf_s("%s& ...
- c++ 之 编译期多态&运行期多态
编译时多态:程序运行前发生的事件 —— 函数重载.运算符重载 .模板 ——静态绑定 运行时多态:程序运行时发生的事件 —— 虚函数机制——动态绑定 template<typename T> ...
- json字符串返回到js中乱码
Ajax 的post请求值返回到js中时出现中文乱码的情况,但是在action中写入时并未乱码,解决办法在action中写入前,加上这两行: request.setCharacterEncoding( ...
- jquery中的children()和contents()的区别
1.children()只会返回元素节点 2.contents()还可以返回文本节点