Python 基础

Python 的设计哲学强调代码的可读性和简洁的语法,相比于 C++ 或 Java,Python 让开发者能够用更少的代码表达想法。

前言

  • 大小写敏感
  • # 开头的语句是注释
  • 当语句以冒号 : 结尾时,缩进(4 个空格,不能用 Tab
    替代)的语句视为代码块

数据类型和变量

数据类型

整数

  • 十六进制用 0x 前缀和 0-9a-f 表示,例如:0xff000xa5b4c3d2

浮点数

  • 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,1.23 x 10^9^ = 12.3 x 10^8^
  • 对于很大或很小的浮点数,就必须用科学计数法表示,把 10e 替代,1.23 x 10^9^ 就是 1.23e9,或者 12.3e80.000012 可以写成 1.2e-5

字符串

  • \n 表示换行
  • \t 表示制表符

如果字符串里面有很多字符都需要转义,就需要加很多 \,为了简化,Python 还允许用 r'' 表示 ''内部的字符串默认不转义:

>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\

如果字符串内部有很多换行,用 \n 写在一行里不好阅读,为了简化,Python 允许用 '''...''' 的格式表示多行内容:

>>> print('''line1
... line2
... line3''')
line1
line2
line3

上面是在交互式命令行内输入,注意在输入多行内容时,提示符由 >>> 变为 ...,提示你可以接着上一行输入,注意 ... 是提示符,不是代码的一部分。

如果写成程序并存为 .py 文件,就是:

print('''line1
line2
line3''')

多行字符串 '''...''' 还可以在前面加上 r 使用,请自行测试:

print(r'''hello,\n
world''')

布尔值

  • and 运算是运算,只有所有都为 Trueand 运算结果才是 True
  • or 运算是运算,只要其中有一个为 Trueor 运算结果就是 True
  • not 运算是运算,它是一个单目运算符,把 True 变成 FalseFalse 变成 True

空值

空值是 Python 里一个特殊的值,用 None 表示。None 不能理解为 0,因为 0 是有意义的,而 None 是一个特殊的空值。

变量

  • 变量名必须是大小写英文、数字和_的组合,且不能用数字开头
  • 在 Python 中,等号 = 是赋值语句,可以把任意数据类型赋值给变量。同一个变量可以反复赋值,而且可以是不同类型的变量

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如 Java 是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量
a = "ABC"; // 错误:不能把字符串赋给整型变量

常量

  • 在 Python 中,通常用全部大写的变量名表示常量,比如 PI 表示 π
  • / 除法:结果精确(浮点型)
  • // 地板除 :只取结果的整数部分,结果精确(整型)
  • % 取余:得到两个整数相除的余数,结果精确(整型)

字符串和编码

字符编码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

文本编辑器使用:UTF-8 without BOM

格式化

>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 
'Hi, Michael, you have $1000000.'
>>> 'Hello, %s' % 'world'
'Hello, world'
  • % 运算符:格式化字符串
  • 有几个 %? 占位符,后面就跟几个变量或者值,顺序要对应好
  • 如果只有一个 %?,括号可以省略
  • 如果你不太确定应该用什么,%s 永远起作用,它会把任何数据类型转换为字符串
占位符 替换内容
%% %
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
0%