繁体   English   中英

为什么不能将此数字设为整数?

[英]Why can't I make this number an integer?

我需要比较两个值:列表中的第一个变量和用户的输入。 用户的输入已经是整数,但是代码不允许我将其他值转换为整数形式。

我已经尝试过“ int”,“ float”和“ complex”,但没有成功。

这是我的代码:

Stock = open("stock.txt","r")
Next = False
print("Products avaliable are: ")
for loop in range (10):
    StockProduct = Stock.readline()
    product = StockProduct.split("\t")
    print(product[0] , product[1])
while Next != True:
    USERproduct = int(input("Which product did you buy? "))
    Amount = int(input("How many did you buy? "))
    for loop in range (10):
        StockProduct = Stock.readline()
        product = StockProduct.split("\t")
        productONE = product[0]

        if USERproduct == int(productONE) :
            USER2 == product
            print(USER2)
            Next = True
        else:
           USERproduct = int(input(" 2 Which product did you buy? "))
         #   Amount = int(input("2 How many did you buy? "))

输出为:

Traceback (most recent call last):
  File "C:\Users\User\Documents\Task 3.py", line 20, in <module>
    if USERproduct == int(productONE) :
ValueError: invalid literal for int() with base 10: ''
>>> 

这是在学校进行的受控评估。

我认为您可以通过两个更改来使程序工作。 首先,不要遍历10行,而只是遍历文件。 其次,浏览完文件后,您需要将其倒回开始或重新打开。

Stock = open("stock.txt","r")
Next = False
print("Products avaliable are: ")
for StockProduct in Stock:
    product = StockProduct.split("\t")
    print(product[0] , product[1])
while Next != True:
    USERproduct = int(input("Which product did you buy? "))
    Amount = int(input("How many did you buy? "))
    Stock.seek(0)
    for StockProduct in Stock:
        product = StockProduct.split("\t")
        productONE = product[0]

        if USERproduct == int(productONE) :
            USER2 == product
            print(USER2)
            Next = True
        else:
           USERproduct = int(input(" 2 Which product did you buy? "))
         #   Amount = int(input("2 How many did you buy? "))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM