Python 基础 (起步一)

说明,以下是我翻译的Python官方免费英文材料,是个很好的入门读物。如果需要英文版,请到(Mark学编程QQ群下载,或留言与我联系索取)希望反馈提出意见,供修改中文翻译稿时参考。

还有一个说明,下面的例子都是Python3的,图片中的例子是Python3.7,用的Pycharm.

基础

仅仅打印“hello world”是不够的,是不是?你需要做的更多,比如,你要接收一些输入,操纵它们,并且从中得到一些什么。我们可以通过Python的常量和变量来达成这些目标,这一节我们还将学习一些其他概念。

注释:

注释是写在#符号右边的文本,主要用于作出注释,以方便读者理解程序。(仅限一行,如果另起一行,可再加#--译者加);

比如:

print(‘hello world’)    # 注意,print是个函数

或者

# 注意,print是个函数

print (‘hello world’)

在你的代码程序中尽量多使用注释:

 解释假设

 解释重要决定

 解释重要细节

 解释你需要解决的问题

 解释你需要在程序中克服的困难

代码告诉你如何做,注释应当告知你为什么

注释对程序读者来说是有用的,这样他们可以很容易的理解程序在做什么,记住,这个读者也可能是6个月后的你自己。

常量

一个常量的例子是数字,比如 5, 1.23 或者象这样的字符串:‘This is a sting’ 或者(双引号) “This is a string”

数字5永远是数字5,没有别的,所以在英文里叫做literal,顺便说一句,编程书籍里,英文喜欢用literal,我们不用管它。常量叫做常量,是因为它的值是不变的,所以,上面举的例子都是literal 常量。(注意,此段翻译,已经脱离了原文的意思,主要是为了通俗易懂,帮助理解常量—译者)

数字

数字主要属于两个类型 – 整型和浮点型。

一个整形的例子是2,它就是单纯一个数字。

浮点数字的例子有: 3.23;52.25等等。E概念表示10的几次方,比如,52.3E-4 就是 52.3 * 10^-4^。

字符串

字符串就是一系列字符的序列。字符串基本上就是一串单词。你会在Python中,几乎每一个要写的程序使用字符串,所以要特别留意下面的部分。

单引号

你可以用单引号标示字符串,比如 ‘Quote me on this’。

所有的空格,例如空间和标签,在引号内按照原来的样子保留。

双引号

双引号中的字符串和单引号一模一样的功能时一样的机制,例如:”What’s your name?”。

三引号

你可以用三引号来指定多行字符串,在其中,你可以自由使用双引号和单引号。举例:

‘’’This is a multi-line string. This is the first line.

This is the second line.

“What’s your name?,” I asked.

He said “Bond, James Bond.”

‘’’

字符串是不可变的

一旦你创建了字符串,你就不能变动它了。也许这样显得不好,但其实相反,我们会在后面见证,在不同程序中(固定不变)为什么不是一种限制。

格式化方法

有时候,我们需要从其他信息中创建字符串,这就是format ( ) 方法的用处。比如下列代码:

age = 20

name = 'Swaroop'

print ('{0} was {1} years old when he wrote this book' . format (name, age))

print ('Why is {0} playing with that python?' . format (name))

代码的输出,我不放在这里,是要鼓励你在电脑上运行代码看结果,如果确实必要,你就到英文版看结果并且运行原理的解释,我不一定按照英文的照搬,会根据我们的特点加以改编,请注意

代码运行原理

字符串可以使用format方法,用相应的实参填充大括号中的空白。请看第一个{0},它对应变量name, 方法中的第一个实参。同样的,第二个{1}对应age。 请注意,Python是从0开始计算的,这也是计算机界的惯例。所以,第一的位置索引是0,第二个是1,然后继续。(译者加注:初学者遇到不明白的术语,不要捉急,先记下来,后来慢慢会明白,确实需要的,请到QQ群(Mark学编程)问询。)

当然,我们也可以用下面的方法达到同样的连接字符串的目的:

name + ‘ is ‘ + str(age) + ‘ years old’

这显得比较丑,也容易出错。另外,用format方法,类型转换成字符串是自动的,不需要刻意的转换,还有,用format我们可以直接改变信息,而不需要处理变量,反之亦然(译者没有搞懂这句话,就直接翻译了。)。

特别的,我们可以不使用大括号内的数字,所以,你可以这样写代码:

age = 20

name = ‘Swaroop’

print (‘{ } was { } years old when he wrote this book’ . format ( name, age )

print (‘why is { } playing with that python?’ . format(name)

关于输出上面已经说过,不放在这儿,需要你自己练习。(也可能你不会按照Python或者需要使用像Pycharm这样的编辑器,到网上查找如何安装吧,或者到万能的QQ群(Mark学编程))

我们还可以这样写:

Print (' {name} was {age} years old when he wrote this book' . format (name=name, age=age))

print('Why is {name} playing with that python?' . format ( name = name))

输出结果和前一个一样。

Python 3.6 引入了新的方式,更短的方式。详见下面:

Print ( f' {name} was {age} years old when he wrote this book')

Print ( f' Why is {name} playing with that python?')

注意 f 在字符串的前面。输出结果和前面的一样。

(译者感慨)

竟然还有更细致的format方式,略去不翻译了。感觉初学者用不着。有兴趣的看英文原文。

因为刚刚讨论了格式化,那么我们也谈谈print,print总是用看不见的“新行”字符(\n)结尾,所以连续调用print总是开始一个个新行。如果防止新行出现,那么可以用下面的方式,在括号内后面加上:

print (‘a’, end=’ ‘)

print (‘b’, end=’ ‘)

输出 ab

如果你不小心将 ‘  ’空格放大的话,试试看会是什么

转义符号

设想你有一个字符串,像这样的,”What’s your name?” 你不能在单引号内加单引号,比如 ‘What’s your name?’,是要报错的(编辑器会返回错误提示信息,简称报错--译者注)。因为Python遇到这个会晕,不知道从哪里开始,哪里结束。所以,你要用 ‘\’ 叫做转义符的东西。这样就可以了— ‘What\‘s your name?’; 当然,双引号内可以有单引号。如果是双引号内双引号,那就需要转义符。其他的例子不再举了,这种东西,多加观察和练习就行了。还有下面的这个,容易被忽视:

“This is the first sentence. \

This is the second sentence.”

其实就相当于一行。输出会是一行。

变量

仅仅使用常量很快就变的单调乏味,我们需要一种方式存储信息(数据),并且也能够操控他们。这就是变量出场的时候了。变量名副其实,它暗示它的值是变化的。你可以用变量存储任何东西。变量就是计算机的部分内存,在那里你存储信息。不像常量,你需要一些方法来访问变量,所以,你需要给他们一一命名。

标识符命名

变量是标识符的(典型)例子,标识符就是一些名字,用于标示某些东西。有如下的命名规则。

 标识符名称第一个符号需要是英文字母或者下划线;

 其后的字符包括英文字母,下划线,以及数字都可以;

 标识符名称大小写敏感, myname 和 myName 不一样。

 有效的名字包括,i, name_2_3; 非法名有 2things, my-name; >a1b2_cs; this is spaced out 等。(这个没有准备翻译,但大体意思没有问题,请多加模仿标识符命名,而不是单纯记忆。)

数据类型

变量能够包含(hold)不同的类型的值、类型就是数据类型。基本类型包括数字类型和字符串类型。这个我们已经讨论过。在后面的章节里,我们会看到如何用class创建我们自己的类(类型)。

对象

记住,Python将程序中所指的任何东西都称作对象。这意味着,在一般意义上,我们不说这些东西,我们说“这些对象”。(关于对象,译者有一个很好的文章,介绍了Python的对象,请关注微信公众号或加入QQ群,还有CSDN博客,名字都叫(Mark学编程)中寻找并研读。好吧,我会在简书发表的。)

有及:英文原文中,会有对有经验的程序员的一小段补充材料,我以为对初学者没有用,可能还会混淆,所以,没有译出。

安装PyCharm的材料,没有翻译,网上有大量的安装指导材料,并且,我也没有将原文最前面的Python的安装翻译过来,因为,网上很多。必要时到QQ群(Mark学编程)里,找人指导安装。

举例:使用变量和常量

键入下列代码并运行:

i = 5

print ( i )

i = i +1

Print ( i )

s = ‘’’This is a multi-line string.

This is the second line. ‘’’

print(s)

再提醒,代码输出刻意跳过,请自行测试运行

代码运行原理

首先,我们将常量值 5 赋值给变量 i, 用(=)赋值的。这么一行称作语句;因为他描述了这些东西如何被处理,在这个具体的例子里,我们将值 5 连接到变量名 i 上。 下一步,打印了i 的值,用的是print 语句,它仅仅是将变量值打印到屏幕上。

然后,我们将 1 加到 i 存储的值上,并存储。接着打印,然后就是 6;

相同的,我们把字符串赋值到变量 s 上,然后打印。

如果你学习过其他语言,请注意,在Python语言里,变量不需要声明,类型也不需要定义


逻辑与实体行

实体行就是你所见所写的,逻辑行是指Python作为一个单独语句的行。Python假设一个实体行对应一个逻辑行。

举个例子,print (“hello world”) 语句就是一个逻辑行,如果实体的就是这一行,那么这个实体行就对应一个逻辑行。

Python是鼓励一个实体行对应一个逻辑行的使用方法,这样会使阅读代码清晰。如果你在一行内有1个以上逻辑行,要使用 (;)号来特别分开;这样就表示一个逻辑行的结束,举例:

i = 5

print ( i )

和下面的相同

i = 5;

print ( i );

当然和下面的也相同

i = 5; print ( i );

还有这个

i = 5; print ( i )

但是,我还是强烈推荐你坚持使用一行写一个逻辑行的做法。希望永远不要使用分号,事实上,作者本人从未使用或者见到过Python程序里面有人用分号。

下面的关于\的用法略去(不增加初学者负担,如果学有余力,请到QQ群下载英文原版。)


缩进

Python里面的空白很重要。事实上,(行)开始的空白(缩进)十分重要。这叫做缩进。这些缩进决定了逻辑行,以及逻辑行的分组情况,也就是说这些逻辑行究竟是属于哪些代码块。

这也就意味着同样缩进的行是整体一块的语句,这些一起缩进的叫做“块”,我们将在今后看到这些重要块的例子。

需要记住的是,如果你的缩进出现问题,那么就出现错误。比如下面:

i = 5

#下面代码错误,留意print前面有个空格。

  print ('Value is', i)

print (' I repeat, the value is', i  )

当你运行这个代码时,你会看到下面的报错出现,请亲自测试。

File "whitespace.py", line 3

print ('Value is', i )

^

Indentation Error: unexpected indent (缩进错误

如果在你的编辑器上运行了上面的代码,就应该很容易看清报错的内容。因为print前面有个空格,编辑器会报错。

如何缩进?Python推荐4个空格。一般编辑器都自动缩进。注意,Python永远用缩进的块,而不是括号,来表示同一组代码。

好了,这些琐碎但又很基础的东西学完了。(需要你多多练习,才能掌握)。下面进入控制流等方面的学习了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容