Invent Your Own Computer Games with Python 翻译(三)Strings

第三章 Strings


字符串

在Python中, 我们将小块的文本称为字符串. 字符串可以像数字一样被存储在变量中. 当我们需要输入字符串时, 要将它放在单引号' '中间(cici话外音:双引号" "也可以), 就像这样:

>>> spam = 'hello'
>>>

单引号只是告诉计算机哪里是字符串的开头和结尾(而并非字符串部分)。

现在,如果你在shell中输入spam,你可以看到变量spam中的内容'hello'字符串)。这是因为Python用存在变量中的值来评估这个变量(这个例子中,值为字符串“hello')。

>>> spam = 'hello'
>>> spam
'hello'
>>>

字符串几乎可以包含所有的键盘字符。(字符串中不能有引号除非使用转义字符,稍后将介绍转义字符。)。这些都是字符串的例子:

'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!'

>>> 'Hello' + 'World!'
'HelloWorld!'
>>>

为了保持字符串的独立,字符串'Hello'后面,单引号之前加个空格,就像这样:

>>> 'Hello ' + 'World!'
'Hello World!'
>>>

运算符"+"对字符串和整数的操作有所不同,因为字符串和整数所属不同的数据类型。所有的值都有一个数据类型。'Hello'是字符串类型。值5是整型。数据的数据类型告诉我们(还有电脑)这个值是一个什么样的数据。


在 IDLE的文本编辑器中编写程序

在Python Shell的窗口顶部单击"File"菜单,并选择"New Window"。会出现一个新的空白窗口,让我们输入我们的程序。这个窗口就是文件编辑器



图 3-1: 文件编辑器窗口


Hello World!


图3-2

程序员有一个传统,就是在学习一门新的语言的时候,第一个程序就是在屏幕上显示文本“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


保存你的程序


图3-4: 保持程序

在你输完你的代码后,保存它,这样你就不必每次都要重新输入相同代码。在文件编辑器的上方选择"File"菜单,然后单击“Save As”。另存为窗口就会被打开。在“File name​​”框中输入hello.py,然后点击Save。(见图3-4)。

在你输入代码的时候,每隔一段时间就要保存它。这样一来,如果遇到计算机崩溃或意外退出IDLE,这样只会丢失上次保存后的新输入的内容。在不使用鼠标的情况下,按Ctrl-S可以迅速保存你的文件。


本书的网站有如何使用文件编辑器的视频教程 http://inventwithpython.com/videos/

如果你得到一个错误,就像这样:

Hello world!
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的代码


打开你保存的程序

如果你要载入你所保存的程序,选择“ File "> "Open,并在出现的窗口中选择hello.py,然后按“Open按钮。你所保存hello.py程序就会在文件编辑器窗口中打开。

现在让我们来运行我们的程序。从“File”菜单中,选择“ Run“>”Run Module“,或者直接按键盘上的F5键。你的程序会在之前打开IDLE时出现的shell窗口中运行。记住,你必须在文件编辑器的窗口按F5,而不是在交互式shell窗口。

当你的程序要求你输入名字时,输入并继续,进入如图3-5所示:



                                图3-5

现在,当你按下Enter键,程序应该会欢迎你。恭喜!你完成了你的第一个程序。从现在开始你是一个电脑程序员了。(如果你想再次运行这个程序,你可以按F5)。

“Hello World”程序的工作原理

这个程序是如何工作的?我们输入的每一行都是一个指令,Python会用电脑能明白的方式来为电脑解释。计算机程序就像一个配方一样。从第一步开始做,然后是第二步,直到最后。每个指令遵循顺序,从程序顶端开始按指令列表执行。在程序执行完第一行指示后,开始执行第二行,然后第三个,依此类推。

我们把程序一步步执行指令的情况称为执行流程,简称执行

现在,让我们从第一行开始,来看看我程序的每一行都做了些什么。


注释

  1. # This program says hello and asks for my name.

这行被称为注释。任何在"#"符号(井号)后的文本都是一条注释。注释是为程序员写的,而不是写给计算机看的。计算机会忽略它们。注释是提醒你,这块程序是做什么的,或者告诉有可能看你代码的人,告诉他你的代码想做什么。

程序员通常会在代码的顶部放置注释,做为他们程序的标题。IDLE中把注释显示为红色,以便区分。

Functions

function(函数)像你程序里的一个小型的程序。Python提供了许多内置函数给我们使用。函数伟大的地方是,我们只需要知道函数可以做什么,而不需要知道它是如何去做的。(你只需要知道print()函数能把文字显示在屏幕上,但你不需要知道它是如何做到的。)

函数调用是一段为了告诉我们程序要在另一个函数中执行被调用函数的代码。例如,每当你想在屏幕上显示一个字符串时,你的程序就可以调用print()函数。print()函数会把你输在括号之间的字符串显示在屏幕上。因为我们要在屏幕上显示 Hello world所以你可以先输入函数名print,随后输入一个左括号,再输入是Hello world!”字符串和一个右括号。


print() 函数

  1. print('Hello world!')
  2. print('What is your name?')

这两行代码是为了调用print 函数,通常写为print() (在括号里输入要打印的字符串)。

我们在函数名的结尾添加括号是为了区别我们输入的print是函数名,而不是变量名。就像我们把数字'42'加上引号是区分它是字符串'42'而不是整数42。


input()函数

myName = input()

这一行有一个变量为 MYNAME的赋值语句和函数调用 ( input())。当 input()被调用时,程序等待用户输入。用户输入的文本字符串(你的名字)变成函数的输出值。

就像表达式,函数调用的计算结果为单个值。函数调用的计算结果的值被称为返回值。在这种情况下,input()函数的返回值是用户输入的字符串。如果用户输入"Albert",input()函数的返回值就是"Albert"。

函数input()不需要在括号内任何输入值(与print()函数不同)。

print('It is good to meet you, ' + myName)

在最后一行,我们再次用了一个print()函数。这一次,我们使用加号运算符("+" )将字符串It is good to meet you,”和MYNAME变量中存储的字符串(用户输入的名字)连接起来.


结束程序


一旦程序执行到最后一行,它就会停止。这时,它就会终止退出,计算机将会遗忘所有的变量,包括我们存储在myName里的字符串。如果你尝试再次运行程序,并且使用不同的名称,例如"Carolyn",它会认为这是你的名字。

Hello world!
What is your name?
Carolyn
It is good to meet you, Carolyn
请记住,计算机只会完全按照你要求的去做。就像我们所做的第一个程序,它会询问你的名字,让你输入字符串,然后和你打招呼,输出你所输入的字符串。

但电脑是愚蠢的。程序不关心你输入的是自己的名字还是别人的名字。你可以输入任何你想要的,电脑会以同样的方式对待它:

Hello world!
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.不论是类成员变量还是全局变量,均不使用 或 前缀。

2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。

3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValuenames_listdict_obj 等都是不好的命名。


实例变量

_开头,其他和普通变量一样

_price    

_instance_var

私有实例变量(外部访问会报错):

__开头(2个下划线),其他和普通变量一样

__private_var


专有变量

__开头,__结尾,一般为python的自有变量,不要以这种方式命名

__doc__

__class__


------------------------------我是苦逼的分割线----------------------------------------

杭州好热~~~~~出门买个午餐回来就黑了一圈~~~~~这是不让人活呀~~~~~考虑是不是不吃午饭,美白又减肥~  - . -

杭州的朋友注意防暑呀~千万不要晕倒在路上呀,目测路过会闻到烤肉的香味~~~~

赞~!


Who is this book for? ?Anyone who wants to teach themselves computer programming, even if they have no previous experience programming. ?Kids and teenagers who want to learn computer programming by programming games. Kids as young as 9 or 10 years old should be able to follow along. ?Adults and teachers who wish to teach others programming. ?Programmers who want to teach others "real" programming by example. This book is available for free under a Attribution/Share-Alike Creative Commons license. You can make as many copies of it as you like, as long as credit to the author is left in. The Python programming language software this book teaches is also freely available from www.python.org. Table of Contents Chapter 1 - "Hello World!" - Your First Program x Hello! x Downloading and Installing Python x Starting the Python Interpreter x Some Simple Math Stuff x Evaluating Expressions x Variables x Strings x Writing Programs x Hello World! x The Difference Between Statements and Expressions x "My Favorite Stuff" x Crazy Answers and Crazy Names for our Favorite Stuff x Capitalizing our Variables x Chapter 2 - Guess the Number x Source Code x Arguments x Blocks x Conditions and Booleans x if Statements x Step by Step, One More Time x Some Changes We Could Make x What Exactly is Programming? x A Web Page for Program Tracing x Chapter 3 - Jokes x How Programs Run on Computers x Source Code x Some Other Escape Characters x Quotes and Double Quotes x Chapter 4 - Dragon Realm x Source Code x def Statements x Boolean Operators x Variable Scope x Parameters x Local Variables and Global Variables with the Same Name x Where to Put Function Defintions x The Colon : x Step by Step, One More Time x Designing the Program x A Web Page for Program Tracing x Chapter 5 - Hangman x ASCII Art x Source Code x Designing the Program x Multi-line Strings x Constant Variables x Lists x Changing the Values of List Items with Index Assignment x List Concatenation x The in Operator x Removing Items from Lists with del Statements x Lists of Lists x Methods x The len() Function x The range() Function x for Loops x Strings Act Like Lists x List Slicing and Substrings x elif ("Else If") Statements x And that's it! x Dictionaries x Sets of Words for Hangman x Chapter 6 - Tic Tac Toe x Source Code x Designing the Program x Game AI x List References x Short-Circuit Evaluation x The None Value x A Web Page for Program Tracing x Chapter 7 - Bagels x Source Code x Augmented Assignment Operators x The sort() List Method x The join() String Method x String Interpolation x Chapter 8 - Sonar x Grids and Cartesian Coordinates x Negative Numbers x Changing the Signs x Absolute Values x Coordinate System of a Computer Monitor x Source Code x Designing the Program x The remove() List Method x Chapter 9 - Caesar Cipher x About Cryptography x ASCII, and Using Numbers for Letters x The chr() and ord() Functions x Source Code x The isalpha() String Method x The isupper() and islower() String Methods x Cryptanalysis x Brute Force x Chapter 10 - Reversi x How to Play Reversi x Source Code x The bool() Function x The random.shuffle() Function x Tips for Inventing Your Own Games x Chapter 11 - AI Simulation x "Computer vs. Computer" Games x Percentages x Integer Division x The round() Function x Learning New Things by Running Simulation Experiments x
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值