Python integerları string olarak görüyor

mehanil

Centipat
Katılım
23 Temmuz 2021
Mesajlar
100
Python:
from time import sleep
def main():
    try:
        ls = []
        pass_value = int(input("Please enter your credits at pass.\n --> "))
        ls.append(pass_value)
        if ls[0] % 20 == 0 and 0 <= pass_value <= 120:
            noproblem()
        else:
            problem()
        defer_value = int(input("Please enter your credits at defer.\n --> "))
        ls.append(defer_value)
        if ls[1] % 20 == 0 and 0 <= defer_value <= 120:
            noproblem()
        else:
            problem()
        fail_value = int(input("Please enter your credits at pass.\n --> "))
        ls.append(fail_value)
        if ls[2] % 20 == 0 and 0 <= fail_value <= 120:
            noproblem()
        else:
            problem()
        def noproblem():
            if pass_value == 40 and defer_value == 0 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 20 and defer_value == 20 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 20 and defer_value == 0 and fail_value == 100:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 0 and defer_value == 40 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif fail_value + defer_value == 0:
                print("Progress\n")
                sleep(2)
                main()
            elif fail_value + defer_value == 20:
                print("Progress (module trailer)\n")
                sleep(2)
                main()
            elif fail_value + defer_value >= 40:
                print("Do not Progress - module retriever\n")
                sleep(2)
                main()
        def problem():
            print("Out of range.\n")
            sleep(2)
            main()
    except:
        print("Integer required.\n")
        sleep(2)
        main()
main()

Python bu kodda inputları sürekli string olarak görüyor. Neden acaba?
 
Python:
from time import sleep
def main():
    try:
        ls = []
        pass_value = int(input("Please enter your credits at pass.\n --> "))
        ls.append(pass_value)
        if ls[0] % 20 == 0 and 0 <= pass_value <= 120:
            noproblem()
        else:
            problem()
        defer_value = int(input("Please enter your credits at defer.\n --> "))
        ls.append(defer_value)
        if ls[1] % 20 == 0 and 0 <= defer_value <= 120:
            noproblem()
        else:
            problem()
        fail_value = int(input("Please enter your credits at pass.\n --> "))
        ls.append(fail_value)
        if ls[2] % 20 == 0 and 0 <= fail_value <= 120:
            noproblem()
        else:
            problem()
        def noproblem():
            if pass_value == 40 and defer_value == 0 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 20 and defer_value == 20 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 20 and defer_value == 0 and fail_value == 100:
                print("Exclude\n")
                sleep(2)
                main()
            elif pass_value == 0 and defer_value == 40 and fail_value == 80:
                print("Exclude\n")
                sleep(2)
                main()
            elif fail_value + defer_value == 0:
                print("Progress\n")
                sleep(2)
                main()
            elif fail_value + defer_value == 20:
                print("Progress (module trailer)\n")
                sleep(2)
                main()
            elif fail_value + defer_value >= 40:
                print("Do not Progress - module retriever\n")
                sleep(2)
                main()
        def problem():
            print("Out of range.\n")
            sleep(2)
            main()
    except:
        print("Integer required.\n")
        sleep(2)
        main()
main()

Python bu kodda inputları sürekli string olarak görüyor. Neden acaba?
İlk olarak problem fonksiyonu yerine bir while True atayip bir except ile if else kullanarak kafa karışıklığını önleyin, bu kod ile çalışmak sağlıklı değil.

Neden string olduğu şu an anlaşılmıyor fakat eğer integer değilse formatında yazın. İnteger olmadığı zaman while True olduğu için başa döner.
 
İlk olarak problem fonksiyonu yerine bir while True atayip bir except ile if else kullanarak kafa karışıklığını önleyin, bu kod ile çalışmak sağlıklı değil.

Neden string olduğu şu an anlaşılmıyor fakat eğer integer değilse formatında yazın. İnteger olmadığı zaman while True olduğu için başa döner.
Teşekkürler, deneyeceğim.
 

Geri
Yukarı