第三章 Strings
字符串
在Python中, 我们将小块的文本称为字符串. 字符串可以像数字一样被存储在变量中. 当我们需要输入字符串时, 要将它放在单引号' '中间(cici话外音:双引号" "也可以), 就像这样:
>>>
单引号只是告诉计算机哪里是字符串的开头和结尾(而并非字符串部分)。
现在,如果你在shell中输入spam,你可以看到变量spam中的内容('hello'字符串)。这是因为Python用存在变量中的值来评估这个变量(这个例子中,值为字符串“hello')。
>>> spam
'hello'
>>>
字符串几乎可以包含所有的键盘字符。(字符串中不能有引号除非使用转义字符,稍后将介绍转义字符。)。这些都是字符串的例子:
'Hi there!'
'KITTENS'
'7 apples, 14 oranges, 3 lemons'
'Anything not pertaining to elephants is irrelephant.'
'A long time ago in a galaxy far, far away...'
'O*&#wY%*&OCfsdYO*&gfC%YO*&%3yc8r2'
正如上章的数值一样,我们可以将字符串和操作符组成表达式。
字符串连接
您可以在字符串的结尾用运算符"+"来连接另一个字符串,这就是所谓的字符串连接。尝试在shell中输入 'Hello' + 'World!':
'HelloWorld!'
>>>
为了保持字符串的独立,在字符串'Hello'后面,单引号之前加个空格,就像这样:
'Hello World!'
>>>
运算符"+"对字符串和整数的操作有所不同,因为字符串和整数所属不同的数据类型。所有的值都有一个数据类型。'Hello'是字符串类型。值5是整型。数据的数据类型告诉我们(还有电脑)这个值是一个什么样的数据。
在 IDLE的文本编辑器中编写程序
在Python Shell的窗口顶部单击"文件编辑器。
"菜单,并选择" 。会出现一个新的空白窗口,让我们输入我们的程序。这个窗口就是
图 3-1: 文件编辑器窗口
Hello World!
程序员有一个传统,就是在学习一门新的语言的时候,第一个程序就是在屏幕上显示文本“Hello World!”。现在我们将创建我们的Hello World程序。 当你输入程序,不需要在左侧输入数字来标志哪一行。你可以看的文件编辑器窗口的右下角,它会告诉你目前光标在哪行哪个位置(如图3-2)。 在新的文件编辑器窗口中,输入以下文本。我们称这个文本为程序的源代码。(切记,不要输入行号!) 重要注意事项!分清的的Python版本,来输入相应代码(本书中的是3.x,我的是2.7,我会把2.7的代码也放上去)。 |
hello.py
Python 3.x
# This program says hello and asks for my name.
print('Hello world!')
print('What is your name?')
myName = input()
print('It is good to meet you, ' + myName)
Python 2.7
# This program says hello and asks for my name.
print('Hello world!')
print('What is your name?')
myName = raw_input()
print('It is good to meet you, ' + myName)
IDLE会根据不同类型的指令显示不同的颜色。 您完成输入此代码后,窗口应该看起来像这样:
图3-3
保存你的程序
在你输完你的代码后,保存它,这样你就不必每次都要重新输入相同代码。在文件编辑器的上方选择"File"菜单,然后单击hello.py,然后点击 。(见图3-4)。 。另存为窗口就会被打开。在“File name”框中输入在你输入代码的时候,每隔一段时间就要保存它。这样一来,如果遇到计算机崩溃或意外退出IDLE,这样只会丢失上次保存后的新输入的内容。在不使用鼠标的情况下,按Ctrl-S可以迅速保存你的文件。 |
本书的网站有如何使用文件编辑器的视频教程 http://inventwithpython.com/videos/
如果你得到一个错误,就像这样:
What is your name?
Albert
Traceback (most recent call last):
File "C:/Python26/test1.py", line 4, in <module>
myName = input()
File "<string>", line 1, in <module>
NameError: name 'Albert' is not defined
这意味着你正在用Python 2运行你的程序,而不是Python 3。你可以用上文提到的Python2的代码
打开你保存的程序
如果你要载入你所保存的程序,选择“ hello.py,然后按“Open 按钮。你所保存hello.py程序就会在文件编辑器窗口中打开。
,并在出现的窗口中选择现在让我们来运行我们的程序。从“File”菜单中,选择“
或者直接按键盘上的F5键。你的程序会在之前打开IDLE时出现的shell窗口中运行。记住,你必须在文件编辑器的窗口按F5,而不是在交互式shell窗口。当你的程序要求你输入名字时,输入并继续,进入如图3-5所示:
图3-5
现在,当你按下Enter键,程序应该会欢迎你。恭喜!你完成了你的第一个程序。从现在开始你是一个电脑程序员了。(如果你想再次运行这个程序,你可以按F5)。
“Hello World”程序的工作原理
这个程序是如何工作的?我们输入的每一行都是一个指令,Python会用电脑能明白的方式来为电脑解释。计算机程序就像一个配方一样。从第一步开始做,然后是第二步,直到最后。每个指令遵循顺序,从程序顶端开始按指令列表执行。在程序执行完第一行指示后,开始执行第二行,然后第三个,依此类推。
我们把程序一步步执行指令的情况称为执行流程,简称执行。
现在,让我们从第一行开始,来看看我程序的每一行都做了些什么。
注释
- # This program says hello and asks for my name.
这行被称为注释。任何在"#"符号(井号)后的文本都是一条注释。注释是为程序员写的,而不是写给计算机看的。计算机会忽略它们。注释是提醒你,这块程序是做什么的,或者告诉有可能看你代码的人,告诉他你的代码想做什么。
程序员通常会在代码的顶部放置注释,做为他们程序的标题。IDLE中把注释显示为红色,以便区分。
Functions
function(函数)像你程序里的一个小型的程序。Python提供了许多内置函数给我们使用。函数伟大的地方是,我们只需要知道函数可以做什么,而不需要知道它是如何去做的。(你只需要知道print()函数能把文字显示在屏幕上,但你不需要知道它是如何做到的。)
函数调用是一段为了告诉我们程序要在另一个函数中执行被调用函数的代码。例如,每当你想在屏幕上显示一个字符串时,你的程序就可以调用print()函数。print()函数会把你输在括号之间的字符串显示在屏幕上。因为我们要在屏幕上显示 Hello world!所以你可以先输入函数名print,随后输入一个左括号,再输入是“Hello world!”字符串和一个右括号。
print() 函数
- print('Hello world!')
- print('What is your name?')
这两行代码是为了调用print 函数,通常写为print() (在括号里输入要打印的字符串)。
我们在函数名的结尾添加括号是为了区别我们输入的print是函数名,而不是变量名。就像我们把数字'42'加上引号是区分它是字符串'42'而不是整数42。
input()函数
这一行有一个变量为 MYNAME的赋值语句和函数调用 ( input())。当 input()被调用时,程序等待用户输入。用户输入的文本字符串(你的名字)变成函数的输出值。
就像表达式,函数调用的计算结果为单个值。函数调用的计算结果的值被称为返回值。在这种情况下,input()函数的返回值是用户输入的字符串。如果用户输入"Albert",input()函数的返回值就是"Albert"。
函数input()不需要在括号内任何输入值(与print()函数不同)。
在最后一行,我们再次用了一个print()函数。这一次,我们使用加号运算符("+" )将字符串“It is good to meet you,”和MYNAME变量中存储的字符串(用户输入的名字)连接起来.
结束程序
一旦程序执行到最后一行,它就会停止。这时,它就会终止或退出,计算机将会遗忘所有的变量,包括我们存储在myName里的字符串。如果你尝试再次运行程序,并且使用不同的名称,例如"Carolyn",它会认为这是你的名字。
What is your name?
Carolyn
It is good to meet you, Carolyn
但电脑是愚蠢的。程序不关心你输入的是自己的名字还是别人的名字。你可以输入任何你想要的,电脑会以同样的方式对待它:
What is your name?
poop
It is good to meet you, poop
变量名称
电脑不会在意变量的名称,但你要在意。好的命名,能使你的程序更有可读性.
(我在网上找了下变量命名规则的归纳)
全局变量名(类变量,在java中相当于static变量):
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
*注意*:应避免使用全局变量
普通变量:
小写字母,单词之间用_分割
this_is_a_var
*注意*:
1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
实例变量:
以_开头,其他和普通变量一样
_price
_instance_var
私有实例变量(外部访问会报错):
以__开头(2个下划线),其他和普通变量一样
__private_var
专有变量:
__开头,__结尾,一般为python的自有变量,不要以这种方式命名
__doc__
__class__
------------------------------我是苦逼的分割线----------------------------------------
杭州好热~~~~~出门买个午餐回来就黑了一圈~~~~~这是不让人活呀~~~~~考虑是不是不吃午饭,美白又减肥~ - . -
赞~!