我一直在努力学习“以艰难的方式学习Python”,到目前为止一切顺利,但我有几个问题:
the_count = [1, 2, 3, 4, 5]
fruits = ['apples', 'oranges', 'pears', 'apricots']
change = [1, 'pennies', 2, 'dimes', 3, 'quarters']
# this first kind of for-loop goes through a list
for number in the_count:
print "This is count %d" % number
# same as above
for fruit in fruits:
print "A fruit of type: %s" % fruit
# also we can go through mixed lists too
# notice we have to use %r since we don't know what's in it
for i in change:
print "I got %r" % i
在这些for循环中,分别是“数字”,“水果”和“我”这两个词是否重要?感觉python中的所有内容都需要定义,但如果有意义,我们从未真正“定义”数字。我不确定如何正确地说出这个问题= /
答案 0 :(得分:6)
不,你用这些名字并不重要。您可以为这些标识符选择任何名称,只要它们是有效的python标识符。
为他们命名foo
,bar
,vladiwostok
,等等。当然, 选择一个更具描述性的名称是个好主意,因此fruit
或number
在使用它们的上下文中是很棒的名字。
无论如何,以下所有内容都是等同的:
for foo in fruits:
print "A fruit of type: %s" % foo
for bar in fruits:
print "A fruit of type: %s" % bar
for vladivostok in fruits:
print "A fruit of type: %s" % vladivostok
答案 1 :(得分:1)
用于调用这些变量的实际单词并不重要。显然,如果你将其他东西称为其他东西,则必须使用新名称来引用它们。
ie)你不能拥有
for bla in the_count:
print "This is the count &d" %number
因为你没有定义什么数字
Python与许多其他语言的不同之处在于它的类型非常弱。 你不需要在任何地方说出变量的类型。
在C / C ++中,整数变量将被定义为
int i;
i=24;
在Python中,要定义变量,只需将其设置为某个值就足够了。例如,
i=24
将隐式地将i定义为整数。
同样,行
for number in the_count:
将隐含地将number定义为与the_count相同类型的变量。
但是,变量的类型可以更改。只需将不同类型的值分配给变量,它就可以切换任意次数。
即
i=12 #i is an integer
i="bla" #i has changed to a string
i=true #i has changeed to a bool
答案 2 :(得分:0)
for <name> in <value>:
在语义上等同于
__iter = iter(<value>)
while 1:
try:
<name> = __iter.next()
except StopIteration:
break
<block>
因此,您可以为<name>
添加任何内容,只要它通常适合作业的左侧。通常,这是一个普通的标识符,但您也可以使用属性:
class Namespace: pass
foo = Namespace()
for foo.bar in range(10):
print foo.bar
l = [1,2,3,4,5]
for l[0] in range(10):
print l
答案 3 :(得分:0)
正如其他人说过的那样,没关系,因为Python足够聪明并能够理解引擎引用的对象的确切类型是什么。你只需要担心变量的名称是不是奇怪和/或没有意义:)
另外,你说了这句话:
分别在这些for循环中,单词的含义是否重要 “数字”,“水果”和“我”是?感觉就像python中的一切 需要定义但我们从来没有真正“定义”数字,如果这样做 感。我不确定如何正确地说出这个问题= /
Python中的优点是你不必根据类型编码任何东西,而是编写对象。我的意思是你不应该使用像这样的代码:
def hello(arg):
if type(arg) is "str":
// do something
elif type(arg) is "list":
// do another thing
你必须以这种方式限制较少,因为在Python中很多函数都实现了多态性,它们很好地接受了参数中传递的不同类型。这使得创建程序变得更加容易,因为语言是强类型的,但针对特定问题的编码良好的函数可以使用整数,浮点数和字符串。