powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / неправильная работа переменных в функции
5 сообщений из 5, страница 1 из 1
неправильная работа переменных в функции
    #39921046
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решаю такую задачу:
В основной ветке программы вызывается функция cylinder(), которая вычисляет площадь цилиндра. В теле cylinder() определена функция circle(), вычисляющая площадь круга по формуле πr2. В теле cylinder() у пользователя спрашивается, хочет ли он получить только площадь боковой поверхности цилиндра, которая вычисляется по формуле 2πrh, или полную площадь цилиндра. В последнем случае к площади боковой поверхности цилиндра должен добавляться удвоенный результат вычислений функции circle().

пишу код:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
def cylinder():
    a=int(input("1-площадь боковой поверхности 2- полная площадь целиндра "))
    h=int(input("введите высоу цилиндра"))
    r=int(input("введите радиус круга "))
    p=3.14
    def circle():
        Scircle=p*r**2
    if a==1:
        bok=2*p*r*h
        print(bok)
    elif a==2:
        poln=(Scircle*2)+bok
        print(poln)
   
cylinder()



Пишет ошибку Scircle не определен.

Traceback (most recent call last):
File "C:\Users\nichik_yv\AppData\Local\Programs\Python\Python36-32\1.py", line 15, in <module>
cylinder()
File "C:\Users\nichik_yv\AppData\Local\Programs\Python\Python36-32\1.py", line 12, in cylinder
poln=(Scircle*2)+bok
NameError: name 'Scircle' is not defined

Как переделать код чтобы эту переменную было видно при выборе 2 варианта ?
...
Рейтинг: 0 / 0
неправильная работа переменных в функции
    #39921484
witte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd
Как переделать код чтобы эту переменную было видно при выборе 2 варианта ?


Вот так работает? Scirсle - локальная переменная в circle, а if (изначально) относился к cylinder, вот и не видно там было этой переменной.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
def cylinder():
    a=int(input("1-площадь боковой поверхности 2- полная площадь целиндра "))
    h=int(input("введите высоу цилиндра"))
    r=int(input("введите радиус круга "))
    p=3.14
    def circle():
        Scircle=p*r**2
        if a==1:
            bok=2*p*r*h
            print(bok)
        elif a==2:
            poln=(Scircle*2)+bok
            print(poln)
   
cylinder()
...
Рейтинг: 0 / 0
неправильная работа переменных в функции
    #39921510
witte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd,

Да, определение переменной bok тоже надо вынести вверх из if-a к Scircle.
...
Рейтинг: 0 / 0
неправильная работа переменных в функции
    #39921629
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
witte,

ошибки не пишет, но результат не печатает. Наверное как то еще print перенести нужно

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
def cylinder():
    a=int(input("1-площадь боковой поверхности 2- полная площадь целиндра "))
    h=int(input("введите высоу цилиндра"))
    r=int(input("введите радиус круга "))
    p=3.14
    def circle():
        Scircle=p*r**2
        bok=2*p*r*h
        if a==1:
            print(bok)
        elif a==2:
            poln=(Scircle*2)+bok
            print(poln)
        
cylinder()
...
Рейтинг: 0 / 0
неправильная работа переменных в функции
    #39921687
witte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd
Наверное как то еще print перенести нужно

Нет, не нужно. Нужно самую малость подумать почему не печатает.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / неправильная работа переменных в функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]