浪里花 发表于 2017-10-26 15:41:34

我这里写了一个购物车,但是为什么输入q就执行不下去?

我这里写了一个类似于简单的购物车的小程序,目标是输入q要,打印购物列表,但是这里就出错了,往有人帮忙看看,哪里出错了,为什么总是跳回24行代码去判断输入是否为数字,按道理,我那里是走elif啊,怎么没下去?
代码如下:
# Author:Caoronghe
product_list=[
    ("Iphone",5800),
    ("Computer",8900),
    ("Coffo",198),
    ("Inflatable_doll",899)
    ]
shop_list=[]
user_salary=input("请输入你的工资是:")
#select_commodity=int(input("请输入要购买的商品编号:"))
if user_salary.isdigit():
    user_salary=int (user_salary)
    while True:
      '''
      for zlist in product_list:
            print(product_list.index(zlist),zlist)#每循环一次用zlist赋值商品列表里的一个元素,
            缺点不断的查
            print (zlist)
      '''
      for index , zlist in enumerate(product_list):#这里用了一个enumerate方法查找列表元素的下标直接打印
            print(index,zlist)
      user_choice=input("请输入选择的商品编号:")
      if user_choice.isdigit:
            user_choice=int(user_choice)
            if user_choice<len(product_list)and user_choice>=0:
                p_list=product_list
                if p_list<=user_salary:#买得起
                  shop_list.append(p_list)
                  user_salary-=p_list
                  print("将 %s 加入了购物车,您所剩的余额为: \033[31;1m%s\033[0m"%(p_list,user_salary))
                else:
                  print("\033啦,还买个毛线啊!\033[0m" % user_salary)
            else:
                print("商品列表里不存在你输入的序号:%s"% user_choice)
      elif user_choice == "q":
            print("---shop_list---")
            for p in shop_list:
                print(p)
            print("您现在所剩的余额是:",user_salary)
            exit()

      else:
            print("earro oppion")

BngThea 发表于 2017-10-26 16:29:35

23行,函数别忘了括号
if user_choice.isdigit():

浪里花 发表于 2017-10-26 16:38:11

BngThea 发表于 2017-10-26 16:29
23行,函数别忘了括号
if user_choice.isdigit():

我擦,我怎么犯了这低级错误,新手的苦恼,我找了半天就是找不到哪出错了,呜呜,感谢,跪谢,困扰了我好久,非常感谢{:5_92:}
页: [1]
查看完整版本: 我这里写了一个购物车,但是为什么输入q就执行不下去?