Python学习第1章-快速上手:基础知识

第一章-快速上手:基础知识

1.1 交互式解释器

print("hello world!")

可以输出hello world!

1.2 算法是什么

算法由一些列必须按照一定顺序执行的操作说明组成,要素为对象语句

1.3 数和表达式

  • 一般加减乘除操作即为简单的”+-*/“操作。
  • 除法运算的结果为小数,即为浮点数。
  • 如果想在除法运算中丢弃小数部分,即执行整数运算,可以使用双斜杠”//“。
  • 求余数可以用求余(求模)运算符”%”
  • 应该注意整数的除法运算为向下圆整的结果,例如:
    >>> 10 // 3
    3
    >>> 10 // -3
    -4
    >>> -10 // 3
    -4
    >>> -10 // -3
    3
    >>> 10 % 3
    1
    >>> 10 % -3
    -2
    >>> -10 % 3
    2
    >>> -10 % -3
    -1
    
  • 乘方运算符为”**”,注:乘方运算符的优先级比求负(单目减)高,因此负数的乘方运算要加括号。
  • 十六进制(0x)、八进制(0)和二进制(0b)表示都以0打头,例如:
    >>> 0xAF
    175
    >>> 010
    8
    >>> 0b1011010010
    722
    

1.4 变量

变量是表示(或指示)特定值的名称,给变量赋予特定值的操作称为赋值,例如:

>>> x = 3
>>> x * 2
6

注:在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。因此在Python中Plan9是合法的变量名,而9Plan不是。

1.5 语句

表达式一些东西,而语句一些事情。

>>> 2 * 2##表达式
4
>>> print(2 * 2)##语句,print实际上为一个函数,因此所说的print语句其实是函数调用。
4

所有语句的根本特征:执行修改操作。例如,赋值语句改变变量,而print语句改变屏幕显示的外观。

1.6 获取用户输入

提供变量的值使用input函数,例如:

>>> x = input("x: ")##括号中打印特定字符串以提示用户输入的信息。
x: 34
>>> y = input("y: ")
y: 42
>>> print(int(x) * int(y))
1428

1.7 函数

函数犹如小型程序,可以用来执行特定的操作,例如乘方操作除了使用表达式”**”外,亦可以使用函数pow来实现:

>>> pow(2, 3)
8

像这样使用函数称为调用函数:你向他提供实参,而它返回一个值。鉴于函数调用返回一个值,因此它们也是表达式。

另常用函数如abs计算绝对值,round将浮点数圆整为与之最接近的整数:

>>> abs(-10)
10
>>> 2 // 3
0
>>> round(2 / 3)
1

1.8 模块

可将模块视为扩展,通过将其导入可以扩展Python功能。要导入特殊模块,可以使用特殊命令import。我们使用import导入模块,再以module.function的方式使用模块中的函数。

>>> import math
>>> math.floor(32.9)##floor返回小于或等于给定数的最小整数,相当于int(32.9)
32
>>> math.ceil(32.3)##ceil返回大于或等于给定数的最小整数
33

如果确定不会从不同模块导入多个同名函数,并且不想在每次调用函数时都制定模块名,在这种情况下,可以使用命令import的如下变种:

>>> from math import sqrt##通过使用命令import的变种from module import funtion,可在调用函数时不制定模块前缀。
>>> sqrt(9)
3.0

另外,可以使用变量来引用函数(以及其他大部分Python元素)。执行赋值语句foo = math.sqrt后,就可使用foo来计算平方根。例如,foo(4)的结果为2.0。

cmath和复数

如果坚持将值域限定为实数,并使用其近似的浮点数实现,就无法计算复数的平方根。复数的平方根为序数,而由实部和虚部组成的数为复数。Python标准库中提供了一个专门用于处理复数的模块。

>>>import cmath
>>>cmath.sqrt(-1)##注意到这里没有使用from...import...。如果使用了这种import命令,将无法使用常规函数。类似这样的名称冲突很隐蔽,因此除非必须使用from版的import命令,否则应坚持使用常规版import命令。
1j

Python本身提供了对复数的支持(即使不使用import cmath也可以计算复数),但是Python没有专门表示虚数的类型,而将虚数视为实部为零的复数。

1.9 保存并执行程序

新建一个拓展名为.py的文件,编写代码后保存运行。

1.9.1 从命令提示符运行Python脚本

可以在终端中键入python filename.py来运行Python代码。

1.9.2 让脚本像普通程序一样

在Windows中,为了看清Python代码文件的运行结果,可以在代码末尾添加如下代码行:

input("press <enter>")

即可在看清代码运行结果后按回车键关闭窗口。

1.9.3 注释

即在代码中以#开头解释代码行,#后到行尾的所有内容都将被忽略。

1.10 字符串

字符串用途众多,但主要用途是表示一段文本。

1.10.1 单引号字符串以及对引号转义

>>> "Hello world!"
'Hello world!'
>>> 'Hello world!'
'Hello world!'

在打印字符串时,单双引号并没有差别。但是,当引号是字符串的一部分时,对单双引号的使用便有了特定要求,或者可以对字符串中的引号进行转义。例如:

>>> "Let's go!"##字符串中有单引号,故两端只能使用双引号。
"Let's go!"
>>> '"Hello,world!" she said'##字符串中有双引号,故两端只能使用单引号。
'"Hello,world!" she said'
##或者可以对字符串中的引号进行转义。
>>> 'Let\'s go!'
"Let's go!"
>>> "\"Hello,world!\" she said"
'"Hello,world!" she said'
##如果不喜欢用反斜杠,可以通过使用长字符串和原始字符串来避免使用\

1.10.2 拼接字符串

  • 可以同时依次输入两个字符串来使两字符串拼接。
    >>> "Let's say " '"Hello, world!"'
    'Let\'s say "Hello, world!"'
    >>> x = "Hello, "
    >>> y = "world!"
    >>> x y
    SyntaxError: invalid syntax
    
  • 可以(通过变量)替代字符串,通过相加来使两字符串拼接。
    >>> "Hello, " + "world!"
    'Hello world!'
    >>> x = "Hello, "
    >>> y = "world!"
    >>> x + y
    'Hello, world!"
    

1.10.3 字符串表示 str 和 repr

Python在打印的所有字符串都有引号括起,但是在使用 print 函数时,字符串将没有引号括起,如果再加上表示换行符的编码\n,差别将更加明显。

>>> "Hello,\nworld!"
'Hello,\nworld!'
>>> print("Hello,\nworld!")
Hello,
world!

通过两种不同的机制将值转换成了字符串。你可以通过使用函数str和repr直接使用这两种机制。使用str能以合理的方式将值转换成用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示。

>>> print(repr("Hello,\nworld!"))
'Hello,\nworld!'
>>> print(str("Hello,\nworld!"))
Hello,
world!

1.10.4 长字符串、原始字符串和字节

1.长字符串

要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)或三个双引号。这让解释器能够识别表示字符串开始和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义。

常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽略。这种处理手法也适用于表达式和语句。

2.原始字符串

  • 原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用。在常规字符串中,反斜杠扮演着特殊角色:它对字符进行转义,让你能够在字符串中包含原本无法包含的字符。
  • 在大量使用反斜杠转义字符的场合,可以使用原始字符(用前缀r表示),因为它们不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样。如:
    >>> print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bazz')  
    C:\Program Files\fnord\foo\bar\baz\frozz\bazz
    
  • 注意:
    ##(1)引号需要像通常那样进行转义,但这意味着用于执行转义的反斜杠也将包含在最终的字符串中;
    >>> print(r'Let\'s go!')
    Let\'s go!'#(本行后一个'多余)
    ##(2)原始字符串不能以单个反斜杠结尾,除非对其进行转义,如果指定以反斜杠结尾的原始字符串,基本技巧是将反斜杠单独作为一个字符串:
    >>> print(r'C:\Program Files\fnord\foo\bar' '\\')
    C:\Program Files\fnord\foo\bar\
    ##注意:在制定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。
    

3.Unicode、bytes和bytearray

  • Python字符串使用Unicode编码来表示文本。大致而言,每个Unicode字符都用一个码点(code point)表示,而码点是Unicode标准给每个字符制定的数字。指定Unicode字符的通用机制为:使用16或32位的十六进制字面量(分别加上前缀\u或\U)或者使用字符的Unicode名称(\N{name})。
  • Python bytes字面量只支持ASCII标准中的128个字符,而余下的128个值必须用转义序列来表示。Unicode与ASCII在字母表规模不同。
  • Python还提供了bytearray,它是bytes的可变版。

1.11 小结

  • 算法:从本质上说,编写计算机程序就是使用计算机能够理解的语言描述一种算法。这种对机器友好的描述被称为程序,主要由表达式和语句组成。
  • 表达式:表达式为程序的一部分,结果为一个值。简单表达式是使用运算符和函数将字面值组合起来得到的。通过组合简单的表达式,可创建复杂的表达式。表达式还可能包含变量。
  • 变量:变量是表示值的名称。通过赋值,可将新值赋给变量。赋值是一种语句。
  • 函数:类似数学函数,它们可以接受参数,并返回结果。
  • 模块:模块是扩展,可通过导入它们来扩展Python的功能。
  • 程序:编写、保存和运行Python程序。
  • 字符串:字符串是用Unicode码点表示的。

 上一篇
Python学习第2章-列表和元组 Python学习第2章-列表和元组
第二章-列表和元组 数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)的集合。 Python中,最基本的数据结构为序列(sequence)。 序列中每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,
2019-02-13
本篇 
Python学习第1章-快速上手:基础知识 Python学习第1章-快速上手:基础知识
第一章-快速上手:基础知识1.1 交互式解释器print("hello world!") 可以输出hello world! 1.2 算法是什么算法由一些列必须按照一定顺序执行的操作说明组成,要素为对象和语句。 1.3 数和表达式 一般加减
2019-02-13
  目录