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. 1.配置桥接,并抓包验证 2.实现免密登录 3.修改登录端口: 22-》2222 4.不允许root用户远程登录 5.创建用户sshuser1,并设置密码,且只允许sshuser1远程ssh登录

    1.配置桥接:  抓包时如果有ens160的ICMP,说明我们的桥接搭建成功通过桥接访问到了ens160(这里忘加图片了) (1)创建一个桥接设备和会话 (2)添加设备和会话到桥接设备上 (3)启动从 ...

  2. python极简教程07:封装、多态和继承

    测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...

  3. DaemonSet:每个节点都运行一个Pod

    依旧从这里开始: kubectl explain daemonset.spec 一个基础daemonset yaml, apiVersion: apps/v1 kind: DaemonSet meta ...

  4. Anaconda 创建 32位python虚拟环境

    Anaconda 创建 32位python虚拟环境 ​ 最近实习在做一个接口自动化数据上传的功能,因为数据是更新的,需要每次上传都查询数据库调用匹配,就不得不面对 python 连接 oracle . ...

  5. Autofac实现拦截器和切面编程

    Autofac.Annotation框架是我用.netcore写的一个注解式DI框架,基于Autofac参考 Spring注解方式所有容器的注册和装配,切面,拦截器等都是依赖标签来完成. 开源地址:h ...

  6. VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...

  7. 什么是协程(第三方模块gevent--内置模块asyncio)

    目录 一:协程 1.什么是协程? 2.携程的作用? 3.安装第三方模块:在命令行下 二:greenlet模块(初级模块,实现了保存状态加切换) 三: gevent模块(协程模块) 1.time 模式协 ...

  8. 微服务架构 | 7.2 构建使用 JWT 令牌存储的 OAuth2 安全认证

    目录 前言 1. JWT 令牌存储基础知识 1.1 JSON Web Token 2. 构建使用 JWT 令牌存储的 OAuth2 服务器 2.1 引入 pom.xml 依赖文件 2.2 创建 JWT ...

  9. 使用Xamarin开发移动应用示例——数独游戏(八)使用MVVM实现完成游戏列表页面

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们已经完成了游戏的大部分功能,玩家可以玩预制的数独游戏,也可以自己添加 ...

  10. Win10正式版屏幕一直闪烁怎么办

    这个原因是由于两个账户都在线,一个账户更替到另一个账户时出现的 解决办法:先注销一个账户,再登录到另一个账户,即只保持一个账户在线,就不会出现屏幕闪烁的情况.