2011-12-28 4 views
-2

Я хочу напечатать цифры от 1 до 100, но для кратных 3 Я хочу напечатать «Быстро», для кратных 7 Я хочу напечатать «Автомобиль» и для кратных как 3 & 7 Я хочу напечатать «Fast Car» вместо этого номера. Здесь я пытаюсь реализовать его с помощью Python. Это моя первая программа на Python. Здесь я получаю синтаксическую ошибку. Кто-нибудь может мне с этим помочь??Быстрая реализация автомобиля в python

for num in range(1,100) 
      if num%3==0 & num%7==0 
      print "Fast Car" 
      elif num%3==0 
      print"Fast" 
      elif num%7==0 
     print "Car" 
      else 
     print num 
+0

Я дал 1 вкладку после 2-го утверждения elif (заявление печати) –

+2

Примечание: оператор '&' не означает логические «и». Вместо этого используйте оператор 'и'. – Howard

+0

Возможный дубликат [Python FizzBuzz в одной строке] (http://stackoverflow.com/questions/6890037/python-fizzbuzz-in-one-line) –

ответ

5

Журнал ошибок должен дать вам несколько советов о линии, в которой вы получите сообщение об ошибке.

Тем не менее, вы забыли использовать : в конце вашего заявления и за ваши если заявления:

for num in range(1,100): 
    if num%3==0 and num%7==0: 
     print "Fast Car" 
    elif num%3==0: 
     print"Fast" 
    elif num%7==0: 
     print "Car" 
    else: 
     print num 

Edit: и не забывайте, что вы должны правильно отступа (это путь Python работает)

Edit 2: блин, Никлас поднял эту точку передо мной :)

Наконец, если вы никогда раньше не написана на Python, попытайтесь читать и следовать учебник, один из лучших, безусловно, Dive into Python

Редактировать 3: посмотреть на ответ Johnsyweb за комментариями, и ссылку на PEP 8 (стайлинга)

+0

N.B: '&' не означает логические "и". Вместо этого используйте оператор 'и', как сказал Говард в комментариях выше. – Johnsyweb

+1

@Johnsyweb: спасибо. Я исправил свой код – JMax

3

Вы должны иметь двоеточия в конце каждой линии if, elif и else. Также ваша идентификация неверна ...

+0

Спасибо Mr.Niclas. Теперь он работает. Здесь я дал 1 вкладку после каждого if..elif..else. заявления. Сколько места мне нужно дать для правильной идентификации? Есть ли какое-либо конкретное правило для идентификации в Python? –

+1

Нет проблем. Нет специального правила о том, сколько пространств вы используете (или если используете вкладку) синтаксически. Но хорошим правилом в соответствии с PEP-8 является всегда идентификационный блок с 4 пробелами. Это настоятельно рекомендуется. –

+0

Да, я думаю, что мой ответ охватывает рекомендуемый отступ. – Johnsyweb

1

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

for num in range(1,100): 

Возможно, вам может понадобиться еще одно место, но я не уверен. Я бы попробовал сам код, но у меня нет времени прямо сейчас.

+0

Спасибо Mr.John ..Теперь он работает .. –

+0

Mr.John .. Пожалуйста, проверьте это .. http://py-ide-online.appspot.com/ –

2

Чтобы получить представление о Python, его синтаксис и отступ, вам нужно работать с помощью a Python tutorial (пробелы очень важны).

for num in range(1, 100): # For-statements end with a colon 
    if num % 3 == 0 and num % 7 == 0: # Indentation is important 4 spaces per 
             # block. 'and' is "logical and". 
             # if-statements also end in a colon. 
     print "Fast Car" # This line is indented 4 spaces from the 'if' 
    elif num % 3 == 0: # This lines up with 'if' and ends with a colon 
     print "Fast"  # Indented 4 spaces from 'elif' 
    elif num % 7 == 0: # See previous 'elif' 
     print "Car"  # See previous 'print' 
    else:    # This lines up with 'if' and ends with a colon# 
     print num  # See previous 'print' 

Я также рекомендую читать через PEP 8 -- Style Guide for Python Code.

Удачи вам! Python - отличный язык.

Смежные вопросы