Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2010 19:10:18

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

q=int(input('Vvedite Chislo'))
i=q
print ('S pramoug','=',q,)
while i>=2:
if q%i==0:
print ( q,'=',q%i,'*',i)
i--
print
Вот этот скрипт не хочет запускаться, т.к. у интерпретатора стойкое неприятие i–: он считает что здесь нарушение уровней вложенности.
Вопросы:
1) Помогите исправить скрипт до рабочего состояния
2) Обкатывал тот же алгоритм в других языках, задачу решает, а именно нахождение всех чисел, которые дают в произведении заданную площадь(q)
При этом в задачнике эта задача отнесена к теме вложенные циклы, нужны ли они здесь проясните ситуацию



Офлайн

#2 Март 21, 2010 19:13:19

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

:)

>>> i--
File "<input>", line 1
i--

^
SyntaxError: invalid syntax



Офлайн

#3 Март 21, 2010 19:14:16

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

1. оператора ++/– нет в питоне, используй “i += 1”
2. кривые отступы
читай книжки по питону



Офлайн

#4 Март 21, 2010 19:19:10

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

Да я понял с отступами просто никак не получается их правильно расставлять,насчет операторов спасибо)



Офлайн

#5 Март 21, 2010 19:24:31

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

Вот скорректированный вариант, с отступами разобрался:

q=int(input('Vvedite Chislo'))
i=q
print ('S pramoug','=',q,)
while i>=2:
if q%i==0:
print ( q,'=',q/i,'*',i)
i=i-1
print
Остается лишь вопрос зачем здесь нужны вложенные циклы?!



Офлайн

#6 Март 21, 2010 21:21:20

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

>> i=i-1
замени на i -= 1

- обрамляй в пробелы все знаки операций (+-=>< и тп)
- необязательно, но можно писать так: i = q = int(input('Vvedite Chislo'))
- не используй никогда input, используй raw_input('input number: ')



Отредактировано (Март 21, 2010 21:21:36)

Офлайн

#7 Март 21, 2010 21:32:34

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

А вот кстати интересная ссылка к вашим замечаниям, учитывая что у меня python 3.1 http://www.ibm.com/developerworks/ru/library/l-python3-1/. Спасибо за советы, обязательно учту, спасибо что тратите время на меня



Офлайн

#8 Март 21, 2010 22:37:01

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Проясните ситуацию...

а ну да, в 3ем можно писать простой инпут.



Офлайн

#9 Март 22, 2010 17:48:37

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проясните ситуацию...

По поводу пробелов - стоит поискать редактор и подсветкой “невидимых” символов. Меньше риск нарваться на проблемы с смешиванием whitespac'ов.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version