Используя ваш пример того, как вы хотите изменить третий октет, я бы сделал это примерно так же, но я бы сжал некоторые шаги вместе:
$IP = "192.168.13.1"
$octets = $IP.Split(".") # or $octets = $IP -split "\."
$octets[2] = [string]([int]$octets[2] + 1) # or other manipulation of the third octet
$newIP = $octets -join "."
$newIP
Это изначально не поддерживается клиентами .NET . Вы можете взглянуть на следующую дискуссию на форумах MSDN . Если вы устанавливаете WSE 2.0 , можно найти пример в следующем расположении: C: \ Program Files \ Microsoft WSE \ v2.0 \ Samples \ CS \ QuickStart \ Attachments \ AttachmentsClient
Вы можете задаться вопросом, почему так важно, что он может модифицировать объект на месте, а не строить новый. Вот пример:# two variables referring to the same list
>>> list1 = []
>>> list2 = list1
# += modifies the object pointed to by list1 and list2
>>> list1 += [0]
>>> list1, list2
([0], [0])
# + creates a new, independent object
>>> list1 = []
>>> list2 = list1
>>> list1 = list1 + [0]
>>> list1, list2
([0], [])
+ =
- это оператор сложения на месте .
Это то же самое, что и cnt = cnt + 1
. Например:
>>> cnt = 0
>>> cnt += 2
>>> print cnt
2
>>> cnt += 42
>>> print cnt
44
Оператор часто используется аналогично оператору ++
в языках C-ish, чтобы увеличить переменную на единицу в цикле ( i + = 1
)
Существуют аналогичные операторы для вычитания / умножения / деления / мощности и другие:
i -= 1 # same as i = i - 1
i *= 2 # i = i * 2
i /= 3 # i = i / 3
i **= 4 # i = i ** 4
Оператор + =
также работает со строками, например:
>>> s = "Hi"
>>> s += " there"
>>> print s
Hi there
Люди склонны рекомендовать против делать это из соображений производительности, но для большинства сценариев это действительно не проблема. Процитируем из документов "Типы последовательностей" :
- Если s и t обе строки, некоторые реализации Python, такие как CPython, обычно могут выполнять оптимизацию на месте для назначений вида s = s + t или s + = t. Когда это применимо, эта оптимизация делает квадратичное время выполнения гораздо менее вероятным. Эта оптимизация зависит как от версии, так и от реализации. Для кода, чувствительного к производительности, предпочтительно использовать метод str.join (), который обеспечивает согласованную производительность линейной конкатенации между версиями и реализациями.
Метод str.join () относится к выполнению следующего:
mysentence = []
for x in range(100):
mysentence.append("test")
" ".join(mysentence)
.. вместо из более очевидного:
mysentence = ""
for x in range(100):
mysentence += " test"
Проблема с последним (кроме начального пробела), в зависимости от реализации Python, интерпретатору Python будет приходиться делать новую копию строки в памяти каждый раз, когда вы добавляете (потому что строки являются неизменяемыми), что будет становиться все медленнее, чем длиннее добавляемая строка .. Принимая во внимание, что добавление в список, а затем его объединение в строку - это постоянная скорость (независимо от реализации)
Если вы выполняете базовые операции со строками, не беспокойтесь об этом. Если вы видите цикл, который в основном просто добавляет строку, рассмотрите возможность создания массива, а затем "". Join ()
его создания.
a += b
is в данном случае то же, что и
a = a + b
В этом случае cnt + = 1 означает, что cnt увеличивается на единицу.
Обратите внимание, что вставленный вами код будет повторяться бесконечно, если cnt> 0 и len (aStr)> 1 .
Править : цитата Карл Мейер : «[..] ответ вводит в заблуждение, в основном правильный.
Google 'python + = operator' приведет вас к http://docs.python.org/library/operator.html
Искать + = после загрузки страницы для более подробного ответа.
К вашему сведению: похоже, в вашем примере может быть бесконечный цикл ...
if cnt > 0 and len(aStr) > 1:
while cnt > 0:
aStr = aStr[1:]+aStr[0]
cnt += 1
cnt
больше 0 cnt
больше 0 cnt
на 1 В конечном итоге cnt
будет всегда больше 0, и цикл никогда не завершится.
означает «добавить« ЭТО »к текущему значению»
пример:
a = «привет»; a + = "world";
печать now выдаст: "hello world"