字典/列表问题求助——已解决【值类型问题】

问题1:  字典好像可以用== 比较?  但是我不同电脑好像运行不出来。

问题2: 好像判断某个值在列表里 可以用 in? 但是运行不出来

先附上问题1代码:

# 银行自助存取款系统


#初始账号信息
Account=[{"卡号":"1","密码":"123","金额":"10000"},{"卡号":"2","密码":"121","金额":"15000"},{"卡号":"15","密码":"143","金额":"15000"}]
#定义学生信息输出函数
def showAccu(Account):
    print("{0:5}{1:10}".format("账户金额",Account["金额"]))
#账户密码登陆
while True:
    print("="*20,"银行自助系统","="*20)
    ac1={}
    ac1["卡号"]=input("请输入卡号:")
    ac1["密码"]=input("请输入密码:")
    #账户密码比对
    for i in range(len(Account)):    #提取卡号、密码构建新的字典
        ac2={}
        ac2["卡号"]=Account[i]["卡号"]
        ac2["密码"]=Account[i]["密码"]
        if ac1==ac2:            #这个地方 发现我用不同的电脑,有些能运行出来,有些不行
            while True:
                print("="*20,"欢迎进入本系统","="*20)
                print("{0:1}{1:15}{2:20}".format(" ","1.账户查询","2.取款"))
                print("{0:1}{1:15}{2:20}".format(" ","3.存款","4.退出系统"))
                print("="*50)
                key=input("请输入选择:")
                if key=="1":
                    print("="*15,"账户查询","="*15)
                    showAccu(Account[i])
                    input("请输入回车继续:")
                if key=="2":
                    print("="*15,"取款系统","="*15)
                    BaseMoney=int(Account[i]["金额"])   #原始金额
                    DrawMoney=int(input("请输入要取金额:")) #取款金额
                    a=BaseMoney-DrawMoney
                    if BaseMoney-DrawMoney>=0:     #金额更新
                        Account[i]["金额"]=a
                        showAccu(Account[i])
                    else:
                        print("="*15,"账户金额不足","="*15)
                    input("请输入回车继续:")
                if key=="3":
                    print("="*15,"存款系统","="*15)
                    BaseMoney=int(Account[i]["金额"])
                    SaveMoney=int(input("请输入要存金额:")) #取款金额
                    b=BaseMoney+SaveMoney
                    Account[i]["金额"]=b
                    showAccu(Account[i])
                    input("请输入回车继续:")
                if key=="4":
                    print("="*15,"再见","="*15)
                    input("请输入回车退出!")
                    break
            break
        else:
            break
    print("="*20,"密码或账户信息错误","="*20)

    print("="*20,"请重新登录","="*20)


问题点2代码:

#初始账号信息
Account=[{"卡号":1,"密码":123,"金额":10000},{"卡号":2,"密码":121,"金额":15000},{"卡号":15,"密码":143,"金额":15000}]
#定义学生信息输出函数
def showAccu(Account):
    print("{0:5}{1:10}".format("账户金额",Account["金额"]))
#账户密码登陆
print("="*20,"银行自助系统","="*20)
key1=input("请输入卡号:")
key2=input("请输入密码:")
listNum=[]
listCode=[]
# 遍历填充卡号/密码列表
for i in range(len(Account)):
    listNum.append(Account[i]["卡号"])
    listCode.append(Account[i]["密码"])
    print("{0:5}{1:10}".format("账户金额",listNum[i]))
    print("{0:5}{1:10}".format("账户金额",listCode[i]))
print(listNum)
print(listCode)
 # 比对输入卡号是否在列表里   
if key1 in listNum:  # 不论卡号密码输入与预存是否一直,运行一直跳到  ==》账户信息错误 !感觉这里没判断,默认else!
    #比对密码
    if key2 in listCode:
        print("="*20,"欢迎进入本系统","="*20)
        print("{0:1}{1:15}{2:20}".format(" ","1.账户查询","2.取款"))
        print("{0:1}{1:15}{2:20}".format(" ","3.存款","4.退出系统"))
        print("="*50)
        key=input("请输入选择:")
    else:
        print("="*20,"密码错误","="*20)


else:
    print("="*20,"账户信息错误","="*20)


=============================================================

问题已解决:发现是input默认你会输入任何值,默认是输入字符串的。问题1里我初始定义列表里用的字符串,因此是可以运行正常的,哪怕是我input不是数字,而是字母。

但是问题2里的初始定义用的为 整形 值。因此要么变成字符串。 要么 输入key1 key2 强制转换成int类型

key1=int(input(""))

可以用type来确认值的类型,比较确认!



最后今后编程注意:

值的类型!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值