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循环的确切步骤是什么?
答案 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
的帮助下),我们可以看到它返回该文件中包含的每行的对象。
当我们将这些原则应用于您提供的脚本时,我们可以确定脚本将以相反的顺序返回文件的行。