循环通过单词与字母评估为假?

时间:2014-06-07 16:15:05

标签: python string loops boolean

以下是类示例中的代码。 困扰我的是这一部分:

up = False
for i in x:
    if up:
       i=i.upper()

我真的不明白被迭代的单词中的字母如何被评估为False或True?

以下是整个问题:

def mirror(x):
  return x+x[::-1]

def steps(x):
  result=""
  x=x.lower()
  up=False
  for i in x:
     if up:
       i=i.upper()
     result+=i
     up = not up
  return result

print(steps("jabberwocky"))
print(steps(mirror("CAT")))

2 个答案:

答案 0 :(得分:0)

功能正在做的步骤是:

1)将所有x个字符设置为小写

2)最初将变量“up”设置为False

3)对于x中的每个字母,

  • 如果变量up为true,则将该字母设为大写
  • 将该信附加到结果
  • 设置为相反(如果true => false // if false => true)

4)返回结果

答案 1 :(得分:0)

你有一个循环遍历字符串中的每个字符。 upboolean变量,最初设置为False。所以最初你有

 if False:
   i=i.upper()

在for循环结束时,您将up设置为Trueup = not up始终切换boolean值 - False变为True }和True变为False)。所以你的for循环的第二次迭代

if True
  i=i.upper()

此循环将接受一个字符串,其他每个字符都将为大写:

>>> print(steps("jabberwocky"))
jAbBeRwOcKy