全国报名热线

021-6769 0939

首页>Python>正文

Python变量(variable)和命名,如何创建包含变量内容的字符串

时间:2018-05-29 11:29:28   来源:上海尚学堂   阅读:
通过上几篇文章,相信大家已经学会了 print 和算术运算。这篇文章我们来学习的是“变量”。



一、变量(variable)和命名


在编程中,变量只不过是用来指代某个东西的名字。程序员通过使用变量名可以让他们的程序读起来更像英语。而且因为程序员的记性都不怎么地,变量名可以让他们更容易记住程序的内容。如果他们没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼的。
 
如果你被这章习题难住了的话,记得我们之前教过的:找到不同点、注意细节。
 
1. 在每一行的上面写一行注解,给自己解释一下这一行的作用。 
2. 倒着读你的 .py 文件。 
3. 朗读你的 .py 文件,将每个字符也朗读出来。 
 
cars = 100
space_in_a_car = 4.0
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / cars_driven
 
print "There are", cars, "cars available."
print "There are only", drivers, "drivers available."
print "There will be", cars_not_driven, "empty cars today."
print "We can transport", carpool_capacity, "people today."
print "We have", passengers, "to carpool today."
print "We need to put about", average_passengers_per_car, "in each car."
 
Note
space_in_a_car 中的 _ 是 下划线(underscore) 字符。你要自己学会怎样打出这个字符来。
这个符号在变量里通常被用作假想的空格,用来隔开单词。

你应该看到的结果
$ python ex4.py
There are 100 cars available.
There are only 30 drivers available.
There will be 70 empty cars today.
We can transport 120.0 people today.
We have 90 to carpool today.
We need to put about 3 in each car.
$
 
加分习题
当我刚开始写这个程序时我犯了个错误,python 告诉我这样的错误信息:
Traceback (most recent call last):
  File "ex4.py", line 8, in
    average_passengers_per_car = car_pool_capacity / passenger
NameError: name 'car_pool_capacity' is not defined
 
用你自己的话解释一下这个错误信息,解释时记得使用行号,而且要说明原因。
 
更多的加分习题需要解决:试试身手
 
1. 我在程序里用了 4.0 作为 space_in_a_car 的值,这样做有必要吗?如果只用 4 会有什么
问题? 
2. 记住 4.0 是一个“浮点数”,自己研究一下这是什么意思。 
3. 在每一个变量赋值的上一行加上一行注解。 
4. 记住 = 的名字是等于(equal),它的作用是为东西取名。 
5. 记住 _ 是下划线字符(underscore)。 
6. 将 python 作为计算器运行起来,就跟以前一样,不过这一次在计算过程中使用变量名来做计
算,常见的变量名有 i, x, j 等等。 
 
常见问题回答

A、= 和 == 有什么不同? 
= (single-equal) 的作用是将右边的值赋予左边的变量名。`==` (double-equal) 的作用是检查左右离岸边是否相等。习题 27 中你会学到 == 的用法。 
 
B、写成 x=100 而非 x = 100 也没关系吧? 
是可以这样写,但这种写法不好。操作符两边加上空格会让代码更容易阅读。 
 
C、print 时词语间的空格有没有办法不让打印出来? 
你可以通过这样的方法实现: print "Hey %s there." % "you",后面马上就会讲到。
 
D、怎样倒着读代码? 
很简单,假如说你的代码有 16 行,你就从第 16 行开始,和我的第 16 行比对,接着比对第 15 行,以此类推,直到全部检查完。 
 
E、为什么 space 用了`4.0`? 
这个主要就是为了让你见识一下浮点数,并且提出这个问题。看看加分习题吧。 
 
 

二、如何创建包含变量内容的字符串
 

我们现在要键入更多的变量并且把它们打印出来。这次我们将使用一个叫“格式化字符串(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)
 
Warning
如果你使用了非 ASCII 字符而且碰到了编码错误,记得在最顶端加一行 # -*- coding: utf-8 -*- 。

你应该看到的结果
$ 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.
$
 
加分习题需要你完成
1. 修改所有的变量名字,把它们前面的``my_``去掉。确认将每一个地方的都改掉,不只是你使用``=``赋值过的地方。 

2. 试着使用更多的格式化字符。例如 %r 就是是非常有用的一个,它的含义是“不管什么都打印出来”。 

3. 在网上搜索所有的 Python 格式化字符。 

4. 试着使用变量将英寸和磅转换成厘米和千克。不要直接键入答案。使用 Python 的计算功能来完
成。 

常见问题回答

A、这样定义变量行不行: 1 = 'Zed Shaw'? 
不行。 1 不是一个有效的变量名称。变量名要以字母开头。所以 a1 可以,但 1 不行。

B、%s, %r, %d 这些符号是啥意思? 
后面你会详细学到更多,现在可以告诉你的是它们是一种“格式控制工具”。它们告诉 Python 把右边的变量带到字符串中,并且把变量值放到 %s 所在的位置上。 
 
C、还是不懂,“格式控制工具”是啥? 
要明白一些描述的意义,你得先学会编程才更容易理解,你可以把这样的问题记录下来,看后面的内容会不会向你解释这些东西。 
 
D、如何将浮点数四舍五入? 
你可以使用 round() 函数,例如: round(1.7333) 
我碰到了错误: TypeError: ‘str’ object is not callable。 
很有可能你是漏写了字符串和变量之间的 % 。 
 
这都是些什么玩意啊?我还是很糊涂。 
试着将脚本里的数字看作是你自己量出来的东西,这样会很奇怪,但是多少会让你有身临其境的感觉,从而帮助你理解一些东西。 

源自《笨办法学Python》,上海尚学堂Python培训整理编辑。获取更多支持或
更多文章推荐:
细说Python类,什么是python类_上海python培训
Python字符串(string)和文本_上海Python培训机构
Python面向对象,使用 from module import 导入模块
Python怎么学习?应该如何入门Python?Python学习路线图
什么是Python爬虫?爬虫入门基础,什么是Request,Response_上海python培训

分享:0