EDIT
Вы просили кратчайшим, верно?
def peasInAPod():
win = GraphWin(100,500)
list(map(lambda p: p.draw(win), [Circle(Point((i*100)+50,100),50) for i in range(int(input('How many peas? ')))]))
Вам нужен list
на самом деле выполнить lambda
.
Оригинальный ответ:
Что-то вроде этого?
def peasInAPod():
win = GraphWin(100,500)
peas = eval(input('How many peas? ')) # Use something safer than eval
for i in range(peas):
p = Circle(Point((i*100)+50,100),50)
p.draw(win)
Я предполагаю, что вам не нужно повторно использовать p*
переменные в другом месте, и что вам не нужно хранить или ссылаться позже список гороха (это только привлекает их). Чем больше вы предоставляете, тем лучше ответ вы получите! Надеюсь это поможет.
Просто для удовольствия, вот генератор! К сожалению, я не мог с этим поделать ...
def the_pod(how_many):
for p in range(how_many):
yield Circle(Point((p*100)+50,100),50)
def peasInAPod():
win = GraphWin(100,500)
of_all_the_peas = input('How many peas? ') # raw_input for Python < 3
for one_of_the_peas in the_pod(int(of_all_the_peas)):
one_of_the_peas.draw(win)
Это копирует, вставляет и выполняет без каких-либо зависимостей. На всякий случай, когда вы закончите бесконечный генератор, который заставляет людей иметь бесконечный горошек.
def the_pod():
p = 0
while True:
yield (p*100)+50
p += 1
def peasInAPod():
print('You may have all the peas. Well. Only their x-coordinate.')
for one_of_the_peas in the_pod():
print(one_of_the_peas)
peasInAPod()
Я ухожу, чтобы получить гороховый суп. Благодаря!
Никогда не используйте eval: [using-pythons-eval-vs-ast-literal-eval] (http://stackoverflow.com/q/15197673/5644961), [eval_really_is_dangerous] (http://nedbatchelder.com/ блог/201206/eval_really_is_dangerous.html). В этом случае используйте 'int (input (...))' – Copperfield
Было бы супер-потрясающе, если бы вы могли указать, был ли какой-либо из ответов ниже (не обязательно мой, конечно) решил вашу проблему :) – Eugene