Значение локальной переменной k1 не используется - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать простое меню с некоторыми условиями, но я продолжал получать ошибку «Значение локальной переменной 'k1' не используется» в используемых строках. Я попытался изменить его на глобальный, но ничего не произошло.

def menu():

    print(" 1.Köşelerde ve Boyut Ortalarında Ast/8 kadar donatı \n 2. Köşelerde Ast/3, Boyut Ortalarında "
          "Ast/16 kadar donatı, \n 3.Karşılıklı Ast/2 kadar donatu \n 4.Tüm boyutlarda Ast/4 kadar donatı"
          "\n 5.Köşelere eşit dağılmış olarak k1=1")
    choice = input()

    if choice == "1":
        print("Asst/8 seçtiniz")
        if n > 1:
            k1 = 1.08
        else:
            k1 = 1.07 + 1.349*n - 3.994*n*n + 4.062*n*n*n - 1.406*n*n*n*n

    elif choice == "2":
        print("Ast/3 seçtiniz")
        if n > 1:
            k1 = 1.025
        else:
            k1 = 1.028 + 0.633*n - 1.868*n*n + 1.816*n*n*n - 0.584*n*n*n*n

    elif choice == "3":
        print("karşılıklı")
        if mk/mu > 0.4:
            print("Ast/2 formülleri için geçerlilik şartı sağlanmadı.")
        else:
            k1 = 1 + ((mk/mu) * (mk/mu))

    elif choice == "4":
        print("Ast/4 için")
        if n > 1:
            k1 = 1.12
        else:
            k1 = 1.137 + 1.233*n - 3.445*n*n + 3.083*n*n*n - 0.87*n*n*n*n
            print(k1)

    elif choice == "5":
        k1 = 1

    else:
        print("Listede olmayan bir seçeneği seçemezsiniz.")
        menu()


menu()
Astk1 = Ast * k1
print(Astk1)

1 Ответ

0 голосов
/ 29 мая 2020

Это проблема области видимости: k1 определяется в функции menu(), поэтому без какого-либо вмешательства он будет доступен только в этой функции (локальная область). Вы можете определить глобальную переменную (неодобрительно) или, что еще лучше, menu() вернуть значение k1. например:

# just change the end of your function:
    else:
        print("Listede olmayan bir seçeneği seçemezsiniz.")
        k1 = menu()   # if k1 wasn't set, call menu again and use its value

    return k1         # return the value you settled on

my_k1 = menu()
Astk1 = Ast * my_k1
print(Astk1)

Надеюсь, что это поможет, удачного кодирования!

...