Python笔记

一、基本语法

1.1 注释

  1. 文档注释:

    """contents"""
  2. 多行注释:

    '''
    contents
    '''
  3. 单行注释:

    # contents

1.2 运算符、数与基本运算

  1. 运算符:

    +, -, *, / , //, **, %
    逻辑运算符
    not
    and:条件或短路运算符
    or:条件或短路运算符
  2. 运算优先级(无圆括号的情况下):

    • **(指数运算)
    • *, / , // ,%
    • +, -
  3. 科学计数法:

    5.0534E(e)+2,E(e)表示5.0534*(10^2)。

  4. 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
    "<..." 左对齐
    ">..." 右对齐
  2. 格式化浮点数(f):

    ① 小数点.占1个宽度。

  3. 格式化成科学计数法(e)

    e,+/-各占一个宽度。

  4. 格式化成百分数(%)

    %占一个宽度

  5. 格式化整数(b,o,d,x)

  6. 格式化字符串(s)

  7. 调整格式(<,>)

    <左对齐,>右对齐。

    ② 数默认向右对齐,字符串默认向左对齐。

  8. 格式化的问题

    ① 如果item的宽度大于格式符里指明的宽度,宽度会自动增加。

    ② 可以省略宽度,默认为0。

1.5 三种基本程序错误

三种程序错误:

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

1.6 其他

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

二、输入与输出

2.1 控制台

输入

  1. input()函数

    • 格式:input("提示用户输入的信息")
    • 读取的结果是字符串
  2. 把读取的字符串转换成数值类型:

    ① 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, ...)

  2. 字符串连接:使用+

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](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()方法,读取文件的全部内容。
  2. 逐行读取文件:for循环

    with open(filename) as f:
    for line in f:
    print(line)
  3. 创建关于包含文档内容的列表:

    with open(filename, encoding='utf-8') as f:
    lines = f.readlines() for line in lines:
    print(line.rstrip)
  4. *encoding参数:在系统的默认编码和需要读取的文件使用的编码标准不一致时,必须使用。如,utf-8, utf-16, gbk等。

写入文件('w')
  1. 第二个实参——写入模式:读取模式('r')、写入模式('w')、附加模式('a')、读写模式('r+')

  2. 附加模式('a')、写入模式('w')下,文件不存在,将会自动被创建。

  3. 文件路径

    • 代码中表示路径时,可以使用/\\
  4. 文件对象方法:filename.write('text')

  5. split()方法:以空格为分隔符将字符串分成多个部分。可以用于粗略统计文本字数。


三、数据类型

3.1 数据类型

字符和字符串

​ 建议:对单个字符使用 'a',对多个字符使用 "abc"。

  1. 转义字符:

    • \f 换页符

    • \r 回车符:把光标移到同一行的第一个位置

  2. 字符串、数字的转换

    • ord(char)函数:返回char对应的ASCII码值。
    • chr(code)函数:返回code对应的字符。
    • str()函数:把数字转换为一个字符串。
  3. 在字符串中使用变量:

    ①(Python 3.6)f字符串格式:

    var = f"{var_1} {var_2}"

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

    var = "{} {}".format(var_1, var_2)
  4. 字符串中的空白:

    空白符包括:' ', \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

  2. 条件表达式

    • 格式: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:
    # 循环体
  3. 哨式控制:指定一个哨兵值,表明输入的结束。

    while var != 0:

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

  1. 语法:

    for var in sequence:
    # 循环体
  2. 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 函数名(参数):
    """可以在此处写有关此函数的相关内容"""
    # 函数体
  2. 传递参数

    • 位置参数

      • 含义:调用函数时传入实际参数的数量和位置都必须和 定义函数时 保持一致。
    • 关键字参数,例:

      def function_name(argu1ment):
      ... function_name(argument = '...')
  3. 默认参数:给形参指定默认值,必须在形参列表的末尾。

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 |

  2. 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) 返回 \(e^{x}\) 的值
    log(x) 返回 \(log_{10}x\) 的值
    log(x, base) 返回 \(log_{base}{x}\) 的值
    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),生成一个大小范围在 \([x, y)\) 内的整数。
  2. randint(x, y),生成一个大小范围在 \([x, y]\) 内的整数。
  3. random(),生成一个范围在 \([0,\space1.0]\) 之间的浮点数。

六、对象和方法

6.1 对象

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

6.2 方法

  1. 类中的函数称为方法。

  2. 调用方法的方式:

    object.method()

八、特殊模块

8.1 turtle模块

Turtle

8.2 time模块

  1. time.time()得到UNIX时间点(1970.01.01 00:00:00)

time

8.3 math模块

math

8.4 random模块

random

[Python]Python入门笔记:语法基础的更多相关文章

  1. C#快速入门笔记(1)——基础语法

    C#快速入门笔记(1)——基础语法 总体框架:

  2. Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  3. 1 TensorFlow入门笔记之基础架构

    ------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...

  4. Python数据分析入门之pandas基础总结

    Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...

  5. Python 3 学习笔记之——基础语法

    1. a, b = a, a + b 先计算右边表达式,然后再同时赋值给左边. 2. 条件控制和循环语句 条件控制 if condition_1: statement_block_1 elif con ...

  6. python数据分析入门笔记[1]

    1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 ( ...

  7. Python爬虫入门:爬虫基础了解

    有粉丝私信我想让我出更基础一些的,我就把之前平台的copy下来了,可以粗略看一下,之后都会慢慢出. 1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫 ...

  8. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  9. thread/threading——Python多线程入门笔记

    1 什么是线程? (1)线程不同于程序. 线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制: 多线程类似于同时执行多个不同程序. (2)线程不同于进程. 每个独立的进程有一个程 ...

  10. Python知识点入门笔记——特色数据类型(元组)

    元组(tuple)是Python的另一种特色数据类型,元组和列表是相似的,可以存储不同类型的数据,但是元组是不可改变的,创建后就不能做任何修改操作. 创建元组 用逗号隔开的就是元组,但是为了美观和代码 ...

随机推荐

  1. [SWPUCTF 2018]SimplePHP

    [SWPUCTF 2018]SimplePHP 知识点 1.PHP反序列化入门之phar 2.反序列化魔术方法 __construct()//当一个对象创建时被调用 __destruct() //当一 ...

  2. 【C++】类-派生和继承

    类-派生和继承 目录 类-派生和继承 1.基本概念 2. 语法 3. 继承方式 4. 类型转换 5. 派生类的构造.析构函数 构造函数 复制构造函数 析构函数 1.基本概念 继承:保持已有类的特性而构 ...

  3. 从SQL Server数据库导出SQL语句

    不同于直接 备份/恢复 或者 导入/导出 数据库操作. 新版本SQL Server客户端中还可以生成相对应的SQL语句. 非常方便与查看和与其他人共享. 连接上数据库后, 右击数据库, 选择 Gene ...

  4. springMvc 启动过程

    转载自https://www.jianshu.com/p/dc64d02e49ac 这里给出一个简洁的文字描述版SpringMVC启动过程: tomcat web容器启动时会去读取web.xml这样的 ...

  5. ORACLE数据库误操作DELETE并且提交数据库之后如何恢复被删除的数据

    一:根据时间来恢复: 1.查询数据库当前时间() select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 2.查询删除数据时间点之前的数据 ...

  6. python类2

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 class Car: """一次模拟汽车的简单尝试""" ...

  7. Floyd 循环检测算法(快慢指针法/龟兔指针法)

    Floyd Cycle Detection Algorithm   Floyd Cycle Detection Algorithm,即 Floyd 循环检测算法,又称快慢指针法.龟兔指针法.该算法用于 ...

  8. django之djangorestframework序列化操作

    只介绍序列化操作:serializers.ModelSerializer 与 serializers.Serializer 使用序列化的目的:将数据序列化成  JSON 对象 当页面上需要动态加载内容 ...

  9. 在ajax请求中,contentType 和 dataType 的区别?

    一.在ajax请求中,contentType 和 dataType 的区别? 1.contentType 内容类型. 1.1默认是 "application/x-www-form-urlen ...

  10. Windows mysql免安装版配置。(版本号-5.6.45);

    Windows mysql免安装版配置.(版本号-5.6.45); 来自对 https://blog.csdn.net/weixin_42831477/article/details/81325691 ...