2013-06-09 2 views
0

Итак, я изучаю, как программировать с Python (мой первый язык программирования), и я полный новичок с ним. Я использую inventwithpython, а также codecademy.com. Вещь с codecademy заключается в том, что они действительно не так хороши в обучении программированию из того, что я сравниваю с этим с изобретением. В одном из учебников там я хочу, чтобы я определял две функции и называл их друг с другом. Я думаю, что я очень близко делаю это правильно, и я чувствую, что правильный способ сделать это смотрит на меня прямо в лицо. Так вот код:Простая дилемма. Я занимаюсь определением и вызовом двух функций, которые используют друг друга в Python.

def cube(number2): 
    pine = number2**3 
    return pine 

def by_three(number2): 
    if number2 % 3 == 0: 
     return cube(number2) 
    else: 
     return False 

number2 = raw_input("Pick a number") 

by_three(number2) 

А вот ошибка, я получаю от интерфейса:

Traceback (most recent call last): 
    File "python", line 13, in <module> 
    File "python", line 6, in by_three 
TypeError: not all arguments converted during string formatting 

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

+0

Это ваш код? Он говорит «строка 6 в by_three», но есть только 4 строки в функции – TerryA

+0

@Haidro Да, это весь код. Я думаю, это означает, что это 6 строк во всем коде, который находится в блоке def by_three. – David

+0

Это не значит, что: p, но когда я его запускаю, я получаю 'строку 2'. – TerryA

ответ

2

raw_input() возвращает строка. И вы пытаетесь использовать выражение modulo со строкой, поэтому вы получаете эту ошибку.

Преобразовать строку в целое число с помощью функции int():

number2 = int(raw_input("Pick a number")) 

Кстати, Codecademy не так уж плохо: р. Это просто запутывает, потому что разные авторы создают разные учебники.

+0

Я буду продолжать использовать codecademy, но в большей степени больше похожа на вторичный инструмент для изобретения. Codecademy, которую я понимаю, хороша, но у нее много сбоев, таких как проблема, с которой я столкнулся, я ее сохранил и запустил, и, хотя он не работал должным образом с интерпретатором, сам сайт по-прежнему дал зеленую стрелку для продолжения моего следующий урок, который я не хотел делать, так как я действительно не делал этого правильно. – David

+0

@DavidTheDreamerBenditt Да, это очень багги. Если у вас проблемы, на сайте есть форум, который вы можете проверить – TerryA

+0

Хорошо, я сделаю это. Это очень иронично, потому что для сайта, который преподает кодирование и овладение программированием, его сайт загружен с ошибками. : P – David

2

Вы не придумали номер. Для этого воспользуйтесь функцией int().

def cube(number2): 
    pine = number2**3 
    return pine 

def by_three(number2): 
    if number2 % 3 == 0: 
     return cube(number2) 
    else: 
     return False 

number2 = int(raw_input("Pick a number")) 

print by_three(number2) 
+0

Большое вам спасибо. Вы, ребята, очень быстро отвечаете :) Я надеюсь стать очень опытным в Python, а затем на C++, но сейчас я просто пытаюсь преодолеть эти простые препятствия, которые только нообы, как я, переезжают: P – David

+0

@DavidTheDreamerBenditt Я начал с Python давно. Я знаю проблему с codecademy, поскольку я использовал ее тоже. Попробуйте [link] (http://docs.python.org/2/index.html) учебные пособия. Вы можете скачать их в формате html для удобства просмотра. Они мне очень помогают. –

+0

Хорошо, я попробую. Спасибо. – David

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