Python笔记

一、基本语法

1.1 注释

  1. 文档注释:
"""contents"""
  1. 多行注释:
'''
contents
'''
  1. 单行注释:
# contents

1.2 运算符、数与基本运算

  1. 运算符:
+, -, *, / , //, **, %
逻辑运算符
not
and:条件或短路运算符 
or:条件或短路运算符
  1. 运算优先级(无圆括号的情况下):
  • **(指数运算)
  • *, / , // ,%
  • +, -
  1. 科学计数法:
    5.0534E(e)+2,E(e)表示5.0534*(10^2)。
  2. Python 3.6)可以使用下划线给数字分组(Java也可)。
universe_age = 14_000_000_000

1.3 变量和常量

1.3.1 变量
  1. 同时赋值:
    var1, var2 = exp1, exp2因此,可以用 y, x = x, y交换x, y的值
定义全局变量

① 直接在函数外定义全局变量。
② 在函数内使用global语句定义:global var

1.3.2 常量
  1. 常量:手动大写,没有内置常量类型。

1.4 格式化(数和字符串)

format()函数

  • 返回字符串
  • 语法:format(item, format-specifier)
  • 格式化标识符(format-specifier):"(width).(precision)(转换码)"

或者:

"{:说明符}".format(item)

② [Python 3.6] f"{:说明符}"

  1. 总结

说明符

转换码

格式化的对象

格式

备注

“10.2f”

f

浮点数

宽度为10,精度为2

小数点.占1个宽度

“10.2e”

e

浮点数(用科学计数法表示)

宽度为10,精度为2

e,+/-各占一个宽度

“5b/o/d/x”

b/o/d/x

二/八/十/十六进制整数

宽度为5

“10.2%”

%


将数格式化为百分数

%占一个宽度

“50s”

s

字符串

宽度为50

“<…”

左对齐

“>…”

右对齐

  1. 格式化浮点数(f):
    ① 小数点.占1个宽度。
  2. 格式化成科学计数法(e)
    e,+/-各占一个宽度。
  3. 格式化成百分数(%)
    %占一个宽度
  4. 格式化整数(b,o,d,x)
  5. 格式化字符串(s)
  6. 调整格式(<,>)
    <左对齐,>右对齐。
    ② 数默认向右对齐,字符串默认向左对齐。
  7. 格式化的问题
    ① 如果item的宽度大于格式符里指明的宽度,宽度会自动增加。
    ② 可以省略宽度,默认为0。

1.5 三种基本程序错误

三种程序错误:

  1. 语法错误
  2. 运行时错误(FileNotFoundError等)
  3. 逻辑错误

1.6 其他

  1. 可以在一行的结尾处放置一个 \ 继续符号来表示语句继续到下一行

二、输入与输出

2.1 控制台

输入

  1. input()函数
  • 格式:input("提示用户输入的信息")
  • 读取的结果是字符串
  1. 把读取的字符串转换成数值类型:
    ① int()函数:不能用于非整型字符串可以有先导0
  • 格式:num = int(input("enter a number: "))
  • int()还可以用于类型转换(浮点型→整型),舍弃小数部分。(若不舍弃用round函数)
var = 5.7
a = round(var) # a = 6

② eval()函数:可用于整型和浮点型字符串不能有先导0

○ 格式:num = eval(input("enter a number: "))

输出

  1. print()函数
  • 不换行输出:print(item_1,item2, ..., end = "any ending string" )
  • 换行输出:
    print(item1, item2, ...)
  1. 字符串连接:使用+

2.2 文件

2.2.1 输入输出重定向
  1. 输入重定向

python xxxx.py < textName.txt

  1. 输出重定向

python xxxx.py > output.txt

例:

python xxxx.py < textName.txt > output.txt

textName.txt 中获取数据,把数据储存在 output.txt 中。

2.2.2 文件的输入与输出 (I/O)

模式

描述

t

文本模式 (默认)。

x

写模式,新建一个文件,如果该文件已存在则会报错。

b

二进制模式。

+

打开一个文件进行更新(可读可写)。

U

通用换行模式(不推荐)。

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvsqDYSC-1629130605487)(C:\Users\Jackkee\Desktop\Python\文件I O.png)]

模式

r

r+

w

w+

a

a+


+

+

+

+


+

+

+

+

+

创建

+

+

+

+

覆盖

+

+

指针在开始

+

+

+

+

指针在结尾

+

+

文件读取
  1. 读取整个文件
with open('文件名filename', '模式') as f: # 一般用f来表示文件对象
    value = f.read()
  • with,在不再需要访问文件时将其关闭。
  • 有效范围:缩进行。
  • open()函数,以相应模式打开相应文件。
  • read()方法,读取文件的全部内容。
  1. 逐行读取文件:for循环
with open(filename) as f:
    for line in f:
        print(line)
  1. 创建关于包含文档内容的列表:
with open(filename, encoding='utf-8') as f:
    lines = f.readlines()

for line in lines:
    print(line.rstrip)
  1. *encoding参数:在系统的默认编码和需要读取的文件使用的编码标准不一致时,必须使用。如,utf-8, utf-16, gbk等。
写入文件(‘w’)
  1. 第二个实参——写入模式:读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’)、读写模式(‘r+’)
  2. 附加模式(‘a’)、写入模式(‘w’)下,文件不存在,将会自动被创建。
  3. 文件路径
  • 代码中表示路径时,可以使用/\\
  1. 文件对象方法:filename.write('text')
  2. split()方法:以空格为分隔符将字符串分成多个部分。可以用于粗略统计文本字数。

三、数据类型

3.1 数据类型

字符和字符串

建议:对单个字符使用 ‘a’,对多个字符使用 “abc”。

  1. 转义字符:
  • \f 换页符
  • \r 回车符:把光标移到同一行的第一个位置
  1. 字符串、数字的转换
  • ord(char)函数:返回char对应的ASCII码值。
  • chr(code)函数:返回code对应的字符。
  • str()函数:把数字转换为一个字符串。
  1. 在字符串中使用变量:
    ①(Python 3.6)f字符串格式:
var = f"{var_1} {var_2}"

②(Python 3.5及更早)format方法:

var = "{} {}".format(var_1, var_2)
  1. 字符串中的空白:
    空白符包括:’ ', \t, \f, \r, \n等。
lstrip() # 右侧right的空白
rstrip() # 左侧left的空白
strip() # 左右两侧
布尔表达式和条件表达式
  1. 布尔表达式
  • 德摩根律
    not (a and b) ↔ not a or not b
    not (a or b) ↔ not a and not b
  1. 条件表达式
  • 格式:expression_1 if boolean_expression else expression_2

3.2 类型转换

  1. bool()函数:非零数→True, 0 → False。
  2. int()函数, float()函数。

四、循环

while循环,for循环。

4.1 while 循环:条件控制循环

  1. 注意:
    在循环控制中不要使用浮点值来比较相等
  2. 格式:
while expression:
    # 循环体
  1. 哨式控制:指定一个哨兵值,表明输入的结束。
    while var != 0:

4.2 for 循环:计数器控制循环

  1. 语法:
for var in sequence:
    # 循环体
  1. range()函数:
    注意:range函数中的值必须是整数
  • range(a) 等价于 range(0,a)
  • range(a, b, k) 中,k为步长。
    ① 当k为正整数时,序列的最后一个数小于 b ;
for var in range(3, 9, 2):
    print(var)
'''
输出为:
3
5
7
'''

② 当k为负整数时,序列的最后一个数大于 b 。

for var in range(5, 1, -1):
    print(var)
'''
输出为:
5
4
3
2
'''

五、函数

注意

  1. 位置参数 在 关键字参数 之前。
  2. 非默认参数 在 默认参数 之前。
  3. Python 不支持定义两个同名的参数,但可以通过不同的方式来调用函数。
    如果定义了同名的函数,后定义的函数会取代之前定义的函数。
  4. 定义全局变量
    ① 直接在函数外定义全局变量。
    ② 在函数内使用global语句定义:global var

5.1 函数的定义

  1. 定义格式:
def 函数名(参数):
    """可以在此处写有关此函数的相关内容"""
    # 函数体
  1. 传递参数
  • 位置参数
  • 含义:调用函数时传入实际参数的数量和位置都必须和 定义函数时 保持一致。
  • 关键字参数,例:
def function_name(argu1ment):
    ...
    
    
function_name(argument = '...')
  1. 默认参数:给形参指定默认值,必须在形参列表的末尾。

5.2 分类:返回值

根据函数是否有返回值,可以将函数分为 带返回值函数 和 无返回值函数。

带返回值函数
  1. 可以返回多个值。
return a, b
var_1, var_2 = function(...)
无返回值函数
  1. 默认返回一个特殊值 None
  2. 无返回值函数可以用 return 语句,一般为 return None 或者 return

5.3 内置函数、math模块中的部分函数

  1. 内置函数

函数

描述

例 / 备注

abs(x)

返回x的绝对值

max(iterable, [, key, default])

返回最大值,可指定 key=len

iterable:可迭代的对象

min(x1,x2,…)

返回最小值

pow(a,b)

返回ab的值,类似于a**b

round(x)

返回与x最接近的整数。

如果x与两个整数的接近程度相同,则返回偶数值

round(4.5)=4

round(x,n)

保留小数点后n位小数的浮点值

round(5.446,2)=5.47

  1. math模块中的数学函数(import math)和常量
    (1) 数学函数:

函数

描述


fabs(x)

将 x 看作一个浮点数,返回它的绝对值

fabs(-2) = 2.0

ceil(x)

返回 x 向上取整的整数

ceil(-2.1) = -2

floor(x)

返回 x 向下取整的整数

floor(-2.1) = -3

exp(x)

返回 python十几个小数 python小数点_python十几个小数

log(x)

返回 python十几个小数 python小数点_文件指针_02

log(x, base)

返回 python十几个小数 python小数点_python十几个小数_03

sqrt(x)

返回 x 的平方根

sin(x), cos(x), tan(x)

返回 x 的正弦值/余弦值/正切值,

x 是角度的弧度值

asin(x), acos(x)

返回 x 对应的弧度值

degrees(x)

将 x 从弧度转换为角度

degrees(1.57)=90

radians(x)

将 x 从角度转换为弧度

(2) 常量:

math.pi
math.e

5.4 random模块——生成随机数的部分函数

import random

  1. randrange(x, y),生成一个大小范围在 python十几个小数 python小数点_字符串_04
  2. randint(x, y),生成一个大小范围在 python十几个小数 python小数点_字符串_05
  3. random(),生成一个范围在 python十几个小数 python小数点_字符串_06

六、对象和方法

6.1 对象

  1. id() 函数,返回该对象的id。(在程序执行的过程中,id不会改变)
  2. type() 函数,返回对象的类型/类。(type和class的含义相同)

6.2 方法

  1. 类中的函数称为方法。
  2. 调用方法的方式:
    object.method()