Powershell,这段代码的每一部分到底是做什么的?

时间:2017-11-04 00:02:58

标签: powershell

if Pokémon == 'Charmander':
    selectyourmove = input('Select your move: Flamethrower, Fire Fang, 
Scratch or Ember: ')#select your move
    if selectyourmove == 'Flamethrower':
        numberchoosing1 = random.randint(20, 22)#randomly decides 
damage of the chosen move in the range
        print(choice, 'has lost' ,numberchoosing1, 'health out of its' 
,HP, 'health!')

我知道第一行获取文本文件的内容,文件从下到上显示,但for循环的确切步骤是什么?

2 个答案:

答案 0 :(得分:2)

for循环将$ i设置为0,只要它小于或等于$ a.Count-1就会循环,并在每次迭代后递增。

$ a.Count是文件中的总行数,因此$ a.Count-1是$ a的最后一个元素(行),它是一个从零开始索引的数组。

在每次迭代中,$ i变大,因此循环内的行返回最后一个元素减去$ i的值。

如果$ a有5行,那么$ a中有5个元素。这些是$ a [0]到$ a [4]

在第一次迭代时,$ i为零,因此方括号内的值计算为5-1-0 = 4.这给出了最后一行。

在第二次迭代中,所有更改都是$ i递增。评估结果为5-1-1 = 3.这是倒数第二行。

这继续直到$ i = 4($ a.Count-1)并且代码评估5-1-4 = 0,这导致$ a的第一个元素被输出。

希望对你有足够的意义......

答案 1 :(得分:2)

for循环正在做的是获取$ a。

提供的字符串的索引

您可以通过设置等于字符串或数组的变量来查看索引,并查看其中的每个索引。举个例子,$x = "this is a string"。然后,您可以查看$ x [n],其中n是一个整数,它将显示字符串或数组中的索引包含的内容。对于$x[0],Powershell将返回" t",或者如果$ x是一个字符串数组,它将返回"这个"。

现在我们知道索引是什么,我们可以查看for循环中的数学运算符。要以Powershell处理它的方式来考虑这一点,我们将从括号中开始工作。 $a.count返回的值等于$ a中包含的对象数。如果我们查看Get-Content返回的内容(在我们方便的Get-Help gc的帮助下),我们可以看到它返回该文件中包含的每行的对象。

当我们将这些原则应用于您提供的脚本时,我们可以确定脚本将以相反的顺序返回文件的行。