Можно ли изменять переменные в операторах if, циклах и вызовах функций в Python, как в C и Java?
Бывший:
i=0
while((i+=1)<10): #invalid syntax
print(i)
Если нет, то почему?
Эти два примера не совпадают. Я сомневаюсь, что первый разрешен в C и / или Java
И нет, Python не допускает выражений в качестве условий if
, только операторов.
afaik int y=x+=6
отлично работает в c land
@JoranBeasley, вероятно, это так, но OP спрашивает не об этом
@DeepSpace - первый пример разрешен в Java. Я пробовал его до публикации. Я знаю, что второй пример разрешен в C.
@DeepSpace repl.it/@JoranBeasley/MassiveNavyblueSpreadsheet
@JoranBeasley Тогда я поправлюсь :) Но ответ на настоящий вопрос по-прежнему "нет, ни то, ни другое не разрешено в Python"
этот [stackoverflow.com/a/15148557/1176331] может помочь вам понять, хотя вы, кажется, нашли правильный ответ
пока тип данных изменяемый
def modified(data):
data['a'] = 5
x = {'b':7}
modified(x)
print(x)
def increment_a(data):
data['a'] += 1
return data['a']
x = {'a':1}
while increment_a(x) < 10:
print(x)
однако строки и целые числа неизменяемы
Я не уверен, что это то, о чем спрашивает OP.
Целые числа неизменяемы.