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 基礎 - 元組與簡易購物車實做的更多相关文章

  1. Python 基礎 - for流程判斷

    今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...

  2. Python 基礎 - if else流程判斷

    hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...

  3. python基礎學習第二天

    字符编码 # 需知:## 1.在python2默认编码是ASCII, python3里默认是unicode## 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf ...

  4. Python 基礎 - 字符編碼

    Python 解釋器在加載 .py 文件中的代碼時,會對內容進行編碼 (默認 ascill) ASCII (American Standard Code for Information Interch ...

  5. Python 基礎 - 數據類型

    標準數據類型 Python3 中有六個標準的數據類型 1 Number(數字) 2 String(字符串) 3 List (列表) 4 Tuple (元組) 5 Sets (集合) 6 Diction ...

  6. Python 基礎 - 文件操作_v2

    嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...

  7. Python 基礎 - 字符轉編碼操作

    回顧字符編碼的前世今生 ASCII 只能儲英文或特殊字符,只占一個字節,一個字節8bit,不能儲中文,所以才出現Unicode Unicode 不管是中文或英文,都是占二個字節,一個字節8bit UT ...

  8. Python 基礎 - 字典的操作使用

    接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...

  9. Python 基礎 - 列表的使用

    如果想要存所有 Marvel's The Avengers 角色的人名,該如何存呢?請用目前已學到的知識來實做- #!/usr/bin/env python3 # -*- coding:utf-8 - ...

随机推荐

  1. Flapper Bird的学习笔记(三)

    因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 完成音效的添加 单例模式 游戏的状态切换 1. 单例模式 首先呢,说一下单例模式.何为单例?单例模式是一种常用的软件设计模式.在它的核心结构中 ...

  2. Socket编程 -- 全双工通信

    //这是客户端package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...

  3. Java系列笔记(2) - Java RTTI和反射机制

    目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...

  4. Python学习之路

    从今天开始学习Python,没有什么特殊的目的,只是觉得这门语言比较有意思,既然现在可能也不会用到,那就直接从Python3学起吧! 本人开始学习时,还是喜欢听别人讲,于是又找到了小甲鱼的<零基 ...

  5. 进程和线程及Linux下的编程

    一.概述 进程和线程网络上有一堆解释,我不喜欢抄袭,也不喜欢套用太教科书的说法.就以我自己的理解来说说进程和线程吧,当然自己的理解肯定不是很严谨,但是理解起来应该会比教科书快一点.进程和线程都可以认为 ...

  6. AX2012自定义注释脚本开发

    废话少说,直接进入主题: 1.在类xppSource中增加一个类似的方法: eg. Source ifElse(Source _condition = '', Source _ifStatement ...

  7. hibernate 返回新插入数据的Id

    例如 表明 studentInfo String sql="set set nocount on studentInfo(列名,列名) values('值','值');select @@id ...

  8. HTML5与CSS3经典代码

    1)全屏背景 body { background: url(../img/pic.jpg) no-repeat center center fixed; background-size: cover; ...

  9. Gnu/Linux的学习探索

    1.Gnu/Linux是一个基于POSIX和UNIX的多用户多任务 支持多线程多CPU的类UNIX的操作系统. 继承了UNIX以网络为核心的设计思想 是性能稳定的多用户网络操作系统. 1991年10月 ...

  10. 【zz】Matlab 二值图像形态学函数 bwmorph

    原文地址:http://blog.sina.com.cn/wind8961 函数功能: 对二值图像进行数学形态学(Mathematical Morphology)运算. 语法格式: BW2 = bwm ...