定义同一变量两次/有助于理解

2024-05-15 08:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个代码学院的学习练习中做了这个简单的Pyglatin翻译。代码运行良好,但需要帮助理解原因。你知道吗

变量new\u word在if语句中定义了两次。代码如何知道打印新单词的第二个定义而不是第一个。如果把if语句的最后两行改成-

final_word = new_word[1:len(new_word)]
print final_word

完整工作代码如下-

pyg = 'ay'

original = raw_input('Enter a word:')

if len(original) > 0 and original.isalpha():
  word = original.lower()
  first = word[0]
  new_word = word + first + pyg
  new_word = new_word[1:len(new_word)]
  print new_word
else:
    print 'empty'

你能不能继续重新定义同一个变量,并且它总是采用最后给出的定义?你知道吗


Tags: 代码newlenif定义语句学院word
2条回答

在这一行中,您将wordfirstpyg的串联分配给new_word

  new_word = word + first + pyg

之后,在这行中,切掉第一个字符:

  new_word = new_word[1:len(new_word)]

您确实使用了相同的varnew_word两次, 最新的值(第一个字符被切掉)覆盖第一个值(第一个字符仍然存在)。你知道吗

B.T.W.第二行是不必要的复杂,它也可能是:

  new_word = new_word[1:]

也许这有助于认识到程序变量不是数学变量,程序中的=也不是数学=。你知道吗

a = 3不是一个表示a等于3的命题。 它是将数字3放入标记为a的内存位置的操作。 所以你总是可以放些别的东西在那里。你知道吗

早期使用的语言是:=(becomes)而不是=(is),有些语言仍然使用<;—来表示此赋值操作。你知道吗

这就是imperative programming的工作原理。它说new_word的值设置为X,然后将new_word的值设置为Y。每个语句都做一件特定的事情,然后一个接一个地跟随这些语句,一个接一个地修改程序的状态。你知道吗

你可以把它和declarative programming这样的东西对比一下,在这个例子中,你只定义一次所有的东西,而计算机会计算出为了得到你描述的结果,它需要按什么顺序执行什么。你知道吗

相关问题 更多 >