• sys模块的问题,深浅COPY的应用场景,元祖与购物车程序练习-打印彩色33[31;1m--------33[0m


    打印彩色:%s为变量,格式化

    print("Added %s into shopping cart,your current balance is 33[31;1m%s33[0m" %(p_item,salary) )
    想要红色用[31,绿色用[32,背景是红色是[41,背景的绿色是[42

    sys模块是C语言写的,所以在模块目录里是找不到sys.py这种模块的。

    浅COPY的意思,就是第二个列表的内容只是第一个列表的数值引用。

    浅COPY实现的三种方法:

    P1,P2为夫妻,他们的存款为子列表,那么如果P1,P2为浅COPY,那么修改任何一个人的存款,另外一个人的存款也同时修改。

    元祖tuple:只读列表

    语法:它是列表,但是不是中刮号了,而是圆刮号。

    names=("1","2","3")

    它只有2个方法,一个count,一个index

    比如你的程序启动了,你的数据库连接,可以写成元祖。这样数据库连接就不能改,并且更改就会报错!

    商品列表

    提示余额不足:

    退出界面:打印购买清单,以及余额

    enumerate函数的应用,自动把你的列表变成(下标,数值)的元祖列表:

    打印彩色:%s为变量,格式化

    print("Added %s into shopping cart,your current balance is 33[31;1m%s33[0m" %(p_item,salary) )
    想要红色用[31,绿色用[32,背景是红色是[41,背景的绿色是[42

    最终代码以及解析:
    #创建商品列表,每个商品都是一个元祖列表
    product_list = [ ('Iphone',5800), ('Mac Pro',9800), ('Bike',800), ('Watch',10600), ('Coffee',31), ('Alex Python',120), ]
    #创建一个列表,购物车,临时变量 shopping_list
    = []
    #让用户输入工资 salary
    = input("Input your salary:")
    #如果输入的是数字,那么才执行下一步
    if salary.isdigit():
    #将输入的数字的字符串,强制转换成数字整型 salary
    = int(salary)
    #进入死循环
    while True:
    #将商品列表导出商品的索引数字以及商品元祖
    for index,item in enumerate(product_list):
    #用这个方法也可以,就是比较low,速度效率低
    #print(product_list.index(item),item)
    #打印出索引数字以及商品元祖列表 print(index,item)
    #让用户选择购买哪个商品 user_choice
    = input("选择要买嘛?>>>:")
    #如果用户输入的是数字类型的字符串
    if user_choice.isdigit():
    #将用户输入的数字型字符串强制转换成数字整型 user_choice
    = int(user_choice)
    #如果用户的选择小于商品列表的长度,大于等于0,其实这里len(product_list)也可以用index+1来替代
    if user_choice < len(product_list) and user_choice >=0:
    #将用户选择的商品元祖赋值给p_item p_item
    = product_list[user_choice]
    #如果商品的价格小于等于工资
    if p_item[1] <= salary: #买的起
    #商品追加到字符串shopping_list,这个临时变量,购物车
    shopping_list.append(p_item)
    #工资减去商品的价格 salary
    -= p_item[1]
    #提示用户已经将商品加入购物车,剩余的工资是多少钱
    print("Added %s into shopping cart,your current balance is 33[31;1m%s33[0m" %(p_item,salary) ) #如果商品的价格大于工资,那么提示购买不成功
    else: print("33[41;1m你的余额只剩[%s]啦,还买个毛线33[0m" % salary)
    #如果用户输入的数字大于商品列表的个数,那么提示购买的商品不存在,在这里就是输入大于等于6的商品标号。
    else: print("product code [%s] is not exist!"% user_choice)
    #用户输入q来退出程序,用exit来退出脚本
    elif user_choice == 'q': print("--------shopping list------")
    #打印购买的商品清单
    for p in shopping_list: print(p)
    #打印剩余的工资
    print("Your current balance:",salary)
    #退出脚本 exit()
    #如果用户商品选择的时候输入的是除数字以外的字符,那么提示输入错误
    else: print("invalid option")
    #如果用户在工资那边瞎输入,提示错误
    else:
    print("invalid option")


  • 相关阅读:
    sqlserver中死锁问题
    sqlserver循环
    自动装箱和拆箱的原理
    资源文件
    SqlServer函数
    PGSql
    SOAP和REST
    Replication
    office等资料下载
    mysql
  • 原文地址:https://www.cnblogs.com/itfat/p/7341601.html
Copyright © 2020-2023  润新知