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 - ...
随机推荐
- Flapper Bird的学习笔记(三)
因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 完成音效的添加 单例模式 游戏的状态切换 1. 单例模式 首先呢,说一下单例模式.何为单例?单例模式是一种常用的软件设计模式.在它的核心结构中 ...
- Socket编程 -- 全双工通信
//这是客户端package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- Python学习之路
从今天开始学习Python,没有什么特殊的目的,只是觉得这门语言比较有意思,既然现在可能也不会用到,那就直接从Python3学起吧! 本人开始学习时,还是喜欢听别人讲,于是又找到了小甲鱼的<零基 ...
- 进程和线程及Linux下的编程
一.概述 进程和线程网络上有一堆解释,我不喜欢抄袭,也不喜欢套用太教科书的说法.就以我自己的理解来说说进程和线程吧,当然自己的理解肯定不是很严谨,但是理解起来应该会比教科书快一点.进程和线程都可以认为 ...
- AX2012自定义注释脚本开发
废话少说,直接进入主题: 1.在类xppSource中增加一个类似的方法: eg. Source ifElse(Source _condition = '', Source _ifStatement ...
- hibernate 返回新插入数据的Id
例如 表明 studentInfo String sql="set set nocount on studentInfo(列名,列名) values('值','值');select @@id ...
- HTML5与CSS3经典代码
1)全屏背景 body { background: url(../img/pic.jpg) no-repeat center center fixed; background-size: cover; ...
- Gnu/Linux的学习探索
1.Gnu/Linux是一个基于POSIX和UNIX的多用户多任务 支持多线程多CPU的类UNIX的操作系统. 继承了UNIX以网络为核心的设计思想 是性能稳定的多用户网络操作系统. 1991年10月 ...
- 【zz】Matlab 二值图像形态学函数 bwmorph
原文地址:http://blog.sina.com.cn/wind8961 函数功能: 对二值图像进行数学形态学(Mathematical Morphology)运算. 语法格式: BW2 = bwm ...