有人可以向我解释一些简单的python概念吗?

时间:2013-02-20 20:44:22

标签: python

我一直在努力学习“以艰难的方式学习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中的所有内容都需要定义,但如果有意义,我们从未真正“定义”数字。我不确定如何正确地说出这个问题= /

4 个答案:

答案 0 :(得分:6)

不,你用这些名字并不重要。您可以为这些标识符选择任何名称,只要它们是有效的python标识符。

为他们命名foobarvladiwostok,等等。当然, 选择一个更具描述性的名称是个好主意,因此fruitnumber在使用它们的上下文中是很棒的名字。

无论如何,以下所有内容都是等同的:

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中很多函数都实现了多态性,它们很好地接受了参数中传递的不同类型。这使得创建程序变得更加容易,因为语言是强类型的,但针对特定问题的编码良好的函数可以使用整数,浮点数和字符串。