第一章 快速改造:基础知识

1.1 安装 python


1.1.1 Windows

登录官网,下载对应版本后点击安装就可以了。

1.1.2 Linux 和 UNIX

在linux 上用pyenv 进行 Python 多版本的管理。

1.1.3 苹果机

登录官网,下载对应版本后双击挂载就可以了。

1.1.4 其他发行版本

除官方版本以外,还可以尝试 ActivePython 版本,它与标准版的最大区别在于额外包含了许多独立的工具(模版)。如果你用 Windows 的话,Active Python 绝对值得一试。

1.1.5 时常关注,保持更新。

访问相应版本的发布页面,可以查看该版本的特性。
还可以访问 Python 邮件列表(https://mail.python.org/mailman/listinfo) 来了解最新发布的第三方 Python 模块和软件资讯。

1.2 交互式解释器


在已安装 python 的 linux 上,输入 python 后即可打开 交互式解释器

1.3 算法是什么


算法是对“如何做某事的一种详细描述”。同义词:步骤。

1.4 数字和表达式


  1. 在多数情况下,常用算数运算符的功能和计算器的相同。
  2. 数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。举个例子:
>>> 1/2
0.5
>>> 1//2          #取整数
0
  1. 特殊运算符%,是取余运算符。举个例子:
>>> 10 % 3         # 10 除以 3余 1
1
>>> 9 % 3          # 9 除以 3 余 0
0
  1. 幂(乘方)运算
    幂运算符比取反(一元减运算符)的等级要高,所以 -3 2 等同于 -(32)。如果想要计算(-3)**2,就需要显式说明。举个例子:
>>> 2**3
8
>>> -3**2
-9
>>> (-3)**2
9
1.4.1 长整数

python3 中已经取消了长整数,可以用 int()函数,来获得数据类型。

1.4.2 十六进制和八进制

十六进制和八进制的首位数字都是0(数字零)。举个例子:

>>> hex(12)       #`hex()`函数可以将十进制转换为八进制
'0xc'             # 数字零+小写字母'xc'
>>> oct(12)       #`oct()`函数可以将十进制转换为十六进制
'0o14'            # 数字零+小写字母'0'+数字14

1.5 变量


变量即代表(或者引用)某值的名字,例如:

>>> x=3 

变量名可以包括字母、数字和下划线(_) ,变量名不能以数字开头,所以 plan9 是正确的,9plan是错误的。

1.6 语句


语句是做某件事(即告诉计算机做什么)。其一般特征是:对某一事物进行了改变。例如:用 print()语句改变了屏幕显示的内容,用赋值语句改变了变量。

>>> print(2*2)
4

>>> x = 3 
>>>

注:表达式则是只是单纯的表示某件事, 例如:

>>> 2*2         

1.7 获取用户输入


可以用input()函数来获取用户输入的变量值。例如:

>>> x = input( "x: ")
x:34

1.8 函数


函数是已经编写好的,用来实现特定功能的代码段。

1.9 模块


一些函数的集合,可以导入到 Python 中扩展其功能。执行命令为 import 模块名。例如:

>>> import math
>>> math.floor(32.9)
>>> 32

在确定自己不会导入多个同名函数(从不同模块中)的情况下,可以使用import命令的另一种形式:

>>> from math import sqrt
>>> sqrt(9)
3.0

注: from ... import ... 语句,有可能会导致隐藏的冲突,所以若非真的需要 from 这个形式的 模块导入语句,否则应该坚持使用普通的 import 语句。

1.10 保存并执行程序

  1. 保存程序:将写好的代码保存到后缀是 .py的文件中。
  2. 运行程序:
  • 命令行下可以直接执行:python /路径/文件名.py
  • Windows 视窗下可以直接双击文件运行。
  1. 注释程序:符号为 井号(#),在它右边的一切内容都会被忽略。
    注:程序员应该确保注释说的都是重要的事情,而不要重复代码中显而易见的内容。

1.11 字符串


字符串即一串字符,有多种用法,但其中最主要的用法是表示一些文本。例如:Hello, World!

1.11.1 单引号字符串和转义引号
  1. 单引号和双引号的效果是一样的,可以交叉使用,但不能混用。例如:
    >>> ' "Hello, World!" she said' # 正确
    ' "Hello, World!" she said'
    >>> "Hello, World!' # 错误
    File "<stdin>", line 1
    "Hello, World!'
    ^
    SyntaxError: EOL while scanning string literal

  2. 如果语句中存在单/双引号,需要使用反斜线(\)对其进行转义:
    >>>'Let's go!' #都是单引号
    "Let's go!"
    >>>""Hello,World!" she said" #都是双引号
    '"Hello,World!" she said'
    >>>"Let's say 'Hello,World!'?" #单双引号混用-正确
    "Let's say 'Hello,World!'"
    >>>'Let's say "Hello,World!"?' #单双引号混用-错误
    'Let's say "Hello,World!"'

1.11.2 拼接字符串

使用+像进行加法运算一样进行拼接,例如:

   >>>"Hello, "+"World!"
   'Hello, World!'
1.11.3 字符串表示,str()repr()
  • 将值转化为字符串的机制有两种,分别是:str()函数和repr()函数。
  • 他们的主要区别是:函数str() 让字符串更易于阅读,而repr()则把字符串转换为合法的 Python 表达式。
1.11.4 input()raw_input() 的比较

Python3.x 已经把 input()raw_input() 整合在一起,没有 raw_input() 了。

1.11.5 长字符串、原始字符串和Unicode
  1. 长字符串由于跨越多行,所以可以用三个单引号代替('''),表示形式如下:

    print('''This is a very long string.
    Itcontinues here.
    And it's not over yet.
    "Hello, World! "  
    Still here. ''')
    
  2. 原始字符串
    原始字符串以r开头,它不会将反斜线当成特殊字符。在原始字符串中输入的每个字符串都会与书写的方式保持一致。举例子:
    #我们知道\n可以表示为换行,并可放于字符串中,如下:
    >>> print('hello, \nworld !')
    hello,
    world !
    #如果我们不想换行呢?这时原始字符串就派上用场了。
    >>> print(r' C:\nowhere ')
    C:\nowhere

注意:原始字符串不能以反斜线(\)结尾,如果最后一个字符是反斜线的话,可以将其单独作为一个字符串来处理。例如:
>>>print(r' C:\nowhere' '\') #结尾的反斜线用反斜线进行转义,所以其形式写为 '\'
C:\nowhere\

1.12 小结


  1. 本章学到的东西:
  • 算法:
    算法是对如何完成一项任务的详尽描述。实际上,在编写程序的时候,就是用计算机能够理解的语言来描述算法。这种对机器友好的描述就叫程序。程序主要包含表达式和语句。
  • 表达式:
    表达式用于表示值。例如;2+2是表达式,表示数值4。简单的表达式是通过使用运算符(如+或者%)和函数(如pow())对字面值(比如2或者“Hello”)进行处理而构建起来的。通过把简单的表达式联合起来可以构建更加复杂的表达式(如(-2-2)*(-5+6))。表达式也可以包含变量。
  • 变量:
    变量是一个名字,用于表示某个值。通过x=2这样的赋值可以为变量赋予新的值。赋值也是一类语句。
  • 语句:
    语句是告诉计算机做某些事的指令。它可能设计改变变量(如赋值操作)、向屏幕打印内容(如print('Hello, World! '))、导入模块或者许多其它操作。
  • 函数:
    和数学中的函数类似,可以带有参数,并且返回值。
  • 模块:
    模块是对 Python 功能的一些拓展,可以被导入到 Python 中。例如:math 模块中就有许多有用的数学函数。
  • 程序:
    程序主要由表达式和语句构成。
  • 字符串:
    字符串就是文本片段,由一串字符构成。
  1. 本章涉及到的新函数
函数 描述
abs(number) 返回数字的绝对值
cmath.sqrt(number) 返回平方根,也可用应用于负数
float(object) 将字符串和数字转换为浮点数,默认提供17位精度(小数点后16位)
help() 提供交互式帮助
input() 获取用户输入
int(object) 将字符串和数字转换为整数
long(object) 将字符串和数字转换为长整数,在Python3.x 中已经和int()整合了
math.ceil(number) 返回数的上入整数,返回一个大于或等于 x 的最小整数
math.floor(number) 返回数的下入整数,返回一个等于或小于 x 的最大整数
math.sqrt(number) 返回平方根,不适用于负数
pow(x, y[, z]) 返回 x 的 y 次幂,所得结果对 z 取余数,符号[ ]表示z是可选参数
raw_input(prompt) 或者用户输入,结果被看作原始字符串,在Python3.x 中已经和input()整合了
repr(boject) 将返回的字符串转换为合法的 Python 表达式
round(number[, ndigits]) 根据给定的精度对数字进行四舍五入,符号[ ]表示精度是可选参数,默认精度精确到个位。
str 将值转换为字符串
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,543评论 1 118
  • 初见元淳,跟诸多哥哥撒娇斗嘴 是娇滴滴任性骄傲的小女生 天地明亮阳光充沛她是迎风开放的花朵 燕洵哥哥,燕洵哥哥 声...
    牛奶coco123阅读 413评论 0 0
  • 华子的人生蜕变之旅原创第380篇 2017年12月21日 星期四 晴(农历十一月初四) 天渐渐变冷,小伙今...
    誉仔妈妈阅读 337评论 3 4