习题 5: 更多的变量和打印

阅读原文

我们现在要键入更多的变量并且把它们打印出来。这次我们将使用一个叫“格式化 字符串(format string)”的东西. 每一次你使用 " 把一些文本引用起来,你就建立了一个字符串。 字符串是程序将信息展示给人的方式。你可以打印它们,可以将它们写入文件,还 可以将它们发送给网站服务器,很多事情都是通过字符串交流实现的。

字符串是非常好用的东西,所以再这个练习中你将学会如何创建包含变量内容的字 符串。使用专门的格式和语法把变量的内容放到字符串里,相当于来告诉 python :“嘿, 这是一个格式化字符串,把这些变量放到那几个位置。”

一样的,即使你读不懂这些内容,只要一字不差地键入就可以了。

my_name = 'Zed A. Shaw'
my_age = 35 # not a lie
my_height = 74 # inches
my_weight = 180 # lbs
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'

print "Let's talk about %s." % my_name
print "He's %d inches tall." % my_height
print "He's %d pounds heavy." % my_weight
print "Actually that's not too heavy."
print "He's got %s eyes and %s hair." % (my_eyes, my_hair)
print "His teeth are usually %s depending on the coffee." % my_teeth

# this line is tricky, try to get it exactly right
print "If I add %d, %d, and %d I get %d." % (
    my_age, my_height, my_weight, my_age + my_height + my_weight)

What You Should See

$ python ex5.py
Let's talk about Zed A. Shaw.
He's 74 inches tall.
He's 180 pounds heavy.
Actually that's not too heavy.
He's got Blue eyes and Brown hair.
His teeth are usually White depending on the coffee.
If I add 35, 74, and 180 I get 289.

Study Drills

  1. 修改所有的变量名字,把它们前面的my_去掉。确认将每一个地方的都改掉, 不只是你使用=赋值过的地方。
  2. 试着使用更多的格式化字符。例如 %r 就是是非常有用的一个,它的含义是“不管什么都 打印出来”。
  3. 在网上搜索所有的 Python 格式化字符。
  4. 试着使用变量将英寸和磅转换成厘米和千克。不要直接键入答案。使用 Python 的 计算功能来完成。

Common Student Questions

Can I make a variable like this:1 = 'Zed Shaw'?
No, 1 is not a valid variable name. They need to start with a character, so a1 would work, but 1 will not.
What does %s, %r, and %d do again?
You'll learn more about this as you continue, but they are "formatters." They tell Python to take the variable on the right and put it in to replace the %s with its value. I don't get it, what is a "formatter"? Huh? The problem with teaching you programming is that to understand many of my descriptions you need to know how to do programming already. The way I solve this is I make you do something, and then I explain it later. When you run into these kinds of questions, write them down and see if I explain it later.
How can I round a floating point number?
You can use the round() function like this: round(1.7333).
I get this error TypeError: 'str' object is not callable.
You probably forgot the % between the string and the list of variables.
Why does this not make sense to me?
Try making the numbers in this script your measurements. It's weird, but talking about yourself will make it seem more real. Also, you're just starting out so it won't make too much sense. Keep going and more exercises will explain it more.

Copyright (C) 2010 by
Author: Zed Shaw
Translator:Zander Wong

results matching ""

    No results matching ""