Базовый питон, функция def и отзыв для текстового меню - PullRequest
0 голосов
/ 23 июля 2011

Я только начал играть с python и искал совета.

Проблема в МЕНЮ (), по какой-то причине в 7-й строке я получаю синтаксическую ошибку

    $ MENU()

Не уверен, что я делаю неправильно.

def MENU():
    print("Menu:")
    print("     0. Menu")
    print("     1. Random Number Generator")
    access = int(input("Make a selection from the above list: ")

MENU()   ## Problem area

if access == 1:
    ## Random Number Generator
    import random
    ## Imports random functions
    count = 0
    b = 0
    ## Creates the loop function, printing out the dataset
    while count < 100:
        count += 1
        a = random.randrange(1,101)
        print(count,". ", a, end=" | " )
        b += a
    ## Shows the average values for the program, output
    else:
        print()
        print("Finish!")
        print(b)
        print(b/100)
        menu()
else:
    MENU()

Контекст: я использую эту систему только для улучшения своего языка, а также для предотвращения создания сотен файлов из 10 строк.

Ответы [ 2 ]

4 голосов
/ 23 июля 2011

Вы пропустили закрывающие скобки в строке 5:

access = int(input("Make a selection from the above list: "))
                                                            ^
3 голосов
/ 23 июля 2011

Я только что просмотрел ваш код, и, хотя вы, вероятно, уже поняли его, я подумал, что несколько советов могут помочь вам больше узнать о Python.

Во-первых, стиль действительно важен для Python, поскольку он является пробелом. Язык также имеет несколько замечательных функций, которые могут сократить объем кода, что опять-таки поощряет хороший стиль. Существует нечто, называемое руководствами PEP, которые представляют это. PEP-8 - руководство по стилю для Python, я очень рекомендую прочитать его, если вы изучаете Python.

Также, когда я изучал питон, я нашел этот учебный питон, руководство по трудному пути отличным ресурсом. Python - это действительно весело, когда вы начинаете, надеюсь, вам понравится! Ниже приведена еще одна версия вашего кода, которая может иметь больше смысла.

import random # All imports should be at the top, if you know 
              # you are going to use them.

def menu():
    print("Menu:")
    print("     0. Menu")
    print("     1. Random Number Generator")
    access = int(input("Make a selection from the above list: "))
    return access # See explanation

access = menu() # See explanation

if access == 1:
    count = 0
    b = 0

    while count < 100:
        count += 1
        a = random.randrange(1,101)
        print(count,". ", a, end = " | " )
        b += a

    print()
    print("Finish!")
    print(b)
    print(b/100)
    menu()

else:
    menu()

** Объяснение: здесь важно сохранить значение доступа в переменной. Вы не можете установить значение внутри функции и ожидать его обновления для остальной части скрипта. Это из-за обзора.

** Также, если вы ожидаете, что меню будет вызываться снова каждый раз после того, как выбор был выполнен, вам необходимо несколько переосмыслить структуру.

Другой способ сделать это - использовать цикл for. Для этого вам нужно что-то вроде:

    for i in range(100):
         a = random.randrange(1,101)
         print(count,". ", a, end = " | " )
         b += a

    print()
    print("Finish!")
    print(b)
    print(b/100)
    menu()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...