我无法将列表中的元素转换为整数

时间:2014-11-24 23:47:03

标签: python arrays string list int

我的任务是以下内容 1.设计并编写程序来模拟银行。您的程序应该读取帐号,PIN码, 并从文本文件开始余额。输入文件中的每行文本都将包含所有信息 关于一个银行帐户 - 帐号,PIN和期初余额。所有信息字段都是 用冒号分隔。以下是一些示例输入: 516; 5555; 20000 148; 2222; 10000 179; 9898; 4500 我的问题是我不知道如何把这些元素变成我可以操纵的整数,例如有人取钱,这是我到目前为止所拥有的

def bank():
  myfile = pickAFile() 
  file = open(myfile)
  contents = file.readlines() 
  for i in range (0, len(contents)):
    items = contents[i].split(";")
  choice = requestInteger(" 1 - Withdraw, 2 - Deposit, 3 - Exit program ")
  if (choice == 1):
    PIN = requestInteger("Please enter your PIN")
    if (PIN == items[1]):
      print items[0]
    print("Invalid PIN")

我的if语句不会工作,因为items中的所有内容都是字符串而不是int,语言是JES,它使用python语法但是java库

1 个答案:

答案 0 :(得分:0)

---新答案--- 感谢您的反馈 - 您可以使用相同的投射技术和列表理解。

items = [int(j) for j in contents[i].split(";")]

您可以选择使用try / except块包围它,具体取决于您对传入数据质量的信心。

---老答案--- 您可以在requestInteger()调用之后立即将其转换为整数:

...
choice = requestInteger(...)
try:
  choice = int(choice)
except ValueError:
  # Spit some error message back
if (choice == 1):
...