Следующие строчки должны выводить все чётные числа от 0 до n, но почему-то не выводят.
#! /usr/bin/python
i=-1
n=input()
while i<n:
i+=1
if type(i/2.0)==type(1):
print i
Почему?
Python -- вопросы новичка
Модератор: Модераторы разделов
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Python -- вопросы новичка
Потому что при делении int на float ВСЕГДА будет float.
-
- Сообщения: 35
- ОС: Ubuntu 7.04
Re: Python -- вопросы новичка
И ещё вопрос.
#! /usr/bin/python
string=raw_input(string)
ch=raw_input(ch)
kr=input(kr)
def find(string,ch,kr):
index = 0
if kr<len(str):
while index < len(str):
if string[index] == ch:
if index>=kr:
return index
index = index + 1
return -1
else:
return "Input error"
print find(string,ch,kr)
Программа выдаёт
Traceback (most recent call last):
File "/home/george/pyth9", line 2, in <module>
string=raw_input(string)
NameError: name 'string' is not defined
Что за фигня?
#! /usr/bin/python
string=raw_input(string)
ch=raw_input(ch)
kr=input(kr)
def find(string,ch,kr):
index = 0
if kr<len(str):
while index < len(str):
if string[index] == ch:
if index>=kr:
return index
index = index + 1
return -1
else:
return "Input error"
print find(string,ch,kr)
Программа выдаёт
Traceback (most recent call last):
File "/home/george/pyth9", line 2, in <module>
string=raw_input(string)
NameError: name 'string' is not defined
Что за фигня?
-
- Сообщения: 127
- ОС: Gentoo, Win7
Re: Python -- вопросы новичка
string=raw_input(string)
NameError: name 'string' is not defined
Что за фигня?
Читать документацию по функции raw_input() до полного просветления.
-
- Сообщения: 35
- ОС: Ubuntu 7.04
Re: Python -- вопросы новичка
Читал, не помогает.
print string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
print string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
-
- Сообщения: 106
- ОС: Xubuntu, Windows
Re: Python -- вопросы новичка
string=raw_input(string)
ch=raw_input(ch)
kr=input(kr)
strint=raw_input("в кавычках вводится приглашение которое видит пользователь, любое.")
если приглашение не нужно, то можно и так
string=raw_input()
-
- Сообщения: 35
- ОС: Ubuntu 7.04
Re: Python -- вопросы новичка
1)Верно ли то, что аргументы функции являются глобальными переменными? Насколько я понимаю, да (поправьте меня, если ошибаюсь).
2) Следующий пример из документации по Питону поверг в недоумение:
Важное замечание: Значение по умолчанию оценивается только один раз. Например, следующая функция накапливает аргументы, переданные ей в последовательных вызовах:
print f(1)
print f(2)
print f(3)
Это выведет:
[1]
[1, 2]
[1, 2, 3]
Если вы не хотите, чтобы происходило накопление, вы можете вместо этого написать функцию следующим образом:
Ведь если значение по умолчанию оценивается только один раз то значение None должно считаться только при первом вызове функции, а затем L уже не будет присваиваться значение None, условие будет неверно, и переменная L обнулиться не должна, однако на практике обнуление происходит. Почему?
2) Следующий пример из документации по Питону поверг в недоумение:
Важное замечание: Значение по умолчанию оценивается только один раз. Например, следующая функция накапливает аргументы, переданные ей в последовательных вызовах:
Код: Выделить всё
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
Это выведет:
[1]
[1, 2]
[1, 2, 3]
Если вы не хотите, чтобы происходило накопление, вы можете вместо этого написать функцию следующим образом:
Код: Выделить всё
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
Ведь если значение по умолчанию оценивается только один раз то значение None должно считаться только при первом вызове функции, а затем L уже не будет присваиваться значение None, условие будет неверно, и переменная L обнулиться не должна, однако на практике обнуление происходит. Почему?