简体   繁体   中英

Learn Python The Hard Way ex32

I'm using "Learn Python The Hard Way" to learn programming. I had some problems in the thirty-second chapter .

This is the content from the book:

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

# we can also build lists, first start with an empty one
elements = []

# then use the range function to do 0 to 5 counts
for i in range(0, 6):
    print "Adding %d to the list." % i
    # append is a function that lists understand
    elements.append(i)

# now we can print them out too
for i in elements:
    print "Element was: %d" % i

This is the result from the book:

$ python ex32.py
This is count 1
This is count 2
This is count 3
This is count 4
This is count 5
A fruit of type: apples
A fruit of type: oranges
A fruit of type: pears
A fruit of type: apricots
I got 1
I got 'pennies'
I got 2
I got 'dimes'
I got 3
I got 'quarters'
Adding 0 to the list.
Adding 1 to the list.
Adding 2 to the list.
Adding 3 to the list.
Adding 4 to the list.
Adding 5 to the list.
Element was: 0
Element was: 1
Element was: 2
Element was: 3
Element was: 4
Element was: 5

This is what I have input :

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 the_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

# we can also build lists, first start with an empty one
elements = []

# then use the range function to do 0 to 5 counts
for i in range(0,6):
    print "Adding %d to the list." % i 
    # append is a function that lists understand
    elements.append(i)

# now we can print them out too
    for i in elements:
        print "Element was: %d" % i

This is the result I have got:

PS C:\Users\Administrator\exercise> python ex32
This is the_count 1
This is the_count 2
This is the_count 3
This is the_count 4
This is the_count 5
A fruit of type: apples
A fruit of type: oranges
A fruit of type: pears
A fruit of type: apricots
I got 1
I got 'pennies'
I got 2
I got 'dimes'
I got 3
I got 'quarters'
Adding 0 to the list.
Element was: 0
Adding 1 to the list.
Element was: 0
Element was: 1
Adding 2 to the list.
Element was: 0
Element was: 1
Element was: 2
Adding 3 to the list.
Element was: 0
Element was: 1
Element was: 2
Element was: 3
Adding 4 to the list.
Element was: 0
Element was: 1
Element was: 2
Element was: 3
Element was: 4
Adding 5 to the list.
Element was: 0
Element was: 1
Element was: 2
Element was: 3
Element was: 4
Element was: 5

I have made a repeated comparison and tried to find what the problem is.

Indenting (:

change

# now we can print them out too
    for i in elements:
        print "Element was: %d" % i

to

# now we can print them out too
for i in elements:
    print "Element was: %d" % i

Because your current code runs that in the last loop block. Remember that Python uses indenting to determine block scope. Whilst it can be a little bit of a mind-bender, it also leads to clean, similar styling between coders, which has its benefits.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM