Python学习笔记1

63 阅读6分钟

安装

进入 www.python.org/downloads/w… 下载稳定版

image.png

配置环境变量

// cmd path=%path%;C:\Python【后面是安装路径】

或者在环境变量中 Path 下增加 python 的安装地址,最后的效果一致。

cmd中输入 python 给出相应的内容证明安装配置成功。

开发

推荐使用 PyCharm www.jetbrains.com/pycharm/dow…

或者使用 VsCode 安装 Python 插件

image.png

解释器

在CMD中使用 python 启动解释器。

$ python3 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

也可以使用 py 脚本。

创建 hello.py 文件,输入 print ("Hello, Python!");

python hello.py

即可获得 python 脚本执行结果。

语法

标识符

标识符必须是字母、数字、下划线组合,第一个字符不能是数字。

标识符大小写敏感,不能使用保留关键字。

变量的命名推荐使用下划线进行分隔,类命名使用大驼峰,常量命名使用全大写。

私有变量使用下划线 + 小写的形式,_interval

特殊方法使用前后双下划线的形式,__init__

注释

Python的注释可以使用 #'''""" 三种形式。

推荐使用 # 进行注释。

通常只有文件注释或大段文字注释采用 """ 的形式。

代码块

Python 和其他语言比较明显的区别是使用 缩进 来表示代码块。

所以一定要使用 Tab 缩进,四个制表位。

多行语句

Python中非常长的代码可以使用 反斜杠 \ 跨行连起来。

大部分情况下不推荐这么写。

变量赋值

Python使用 = 赋值。

可以使用 a = b = c = 1 的形式进行连续赋值。

运算符

运算符描述实例
+加 - 两个对象相加a + b 输出结果 31
-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -11
*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210
/除 - x 除以 yb / a 输出结果 2.1
%取余 - 返回除法的余数b % a 输出结果 1
**幂 - 返回x的y次幂a**b 为10的21次方
//取整除 - 往小的方向取整数【先除,然后舍小数位】>>> 9//2 4 >>> -9//2 -5

数据类型

Python 在创建变量时不需要显式声明数据类型!!!

a = 1 # 整数 name = "Alice" # 字符串 pi = 3.14 # 浮点数

Python 会自动根据赋给变量的值来推断其类型。这种机制叫做 动态类型(Dynamic Typing)

在Python中可以用 type() 方法查看变量类型。

此外还可以用 isinstance() 来判断。【最推荐】

区别在于:

  • type() 不会认为子类是一种父类类型。
  • isinstance() 会认为子类是一种父类类型。
>>> class A: ... pass ... 
>>> class B(A): ... pass ... 
>>> isinstance(A(), A) 
True 
>>> type(A()) == A 
True 
>>> isinstance(B(), A) 
True 
>>> type(B()) == A 
False

注意:从 Python 3.5+ 开始,支持类型提示(Type Hints),用于提高代码可读性。

def greet(name: str) -> str: 
    return "Hello, " + name 
age: int = 25

常见的数据类型有:

  • Number(数字):支持 int、float、bool、complex(复数)
  • String(字符串):用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
  • bool(布尔类型):True 和 False。
  • List(列表):列表中元素的类型可以不相同。列表可以通过 变量[头下标:尾下标] 的方式截取。【带头不带尾】
  • Tuple(元组):元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
  • Set(集合):集合是一种无序、可变的数据类型,用于存储唯一的元素。使用大括号 {} 表示,元素之间用逗号 , 分隔。
  • Dictionary(字典):字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

注意:元组中保存的是对象的引用(即内存地址),而不是对象本身。元组的“不可变”是指:元组内部的引用不能被修改(不能替换、增删元素),但如果某个引用指向的是一个可变对象(如 list、dict、set),那么这个对象自身的内容是可以改变的。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

注意:列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。【这里所谓的“有序”是指元素的位置固定,按插入顺序排列。[1, 2, 3] 中,1 永远在索引 0,2 在 1,3 在 2。你可以通过位置(索引) 精确访问或修改某个元素。】。

注意:从 Python 3.7 开始,官方规定:dict 保持插入顺序(insertion order)。即 3.7+ 认为List和Dict均为有序的集合。

数据类型转换

Python存在隐式类型转换,比如可以从 int 转换为 float。

num_int = 123 
num_flo = 1.23 
num_new = num_int + num_flo # num_new float类型

Python也可以使用显式类型转换。

函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

条件控制

Python支持使用 if else 来进行条件判断,支持 elif 进行连续判断。

if a > 1: 
    print('a大于1') 
elif a < 1: 
    print('a小于1') 
else: 
    print('a等于1')

Python中不存在 switch 进行条件判断,所以 Python3.10增加了 match...case

match status: 
    case 400: 
        return "Bad request" 
    case 404: 
        return "Not found" 
    case 418: 
        return "I'm a teapot" 
    case _: 
        return "Something's wrong with the internet"

注意case _default

循环

最常见的是使用 for 循环,for 循环存在一个特殊的 else,即循环完成后执行。

sites = ["Baidu", "Google","Runoob","Taobao"] 
for site in sites: 
    print(site) 

# for...else 
for x in range(6): 
    print(x) 
else: 
    print("Finally finished!")

while 用于不确定循环次数。也存在一个 else 用于循环完成后执行。

count = 0 
while count < 5: 
    print (count, " 小于 5") 
    count = count + 1 
else: 
    print (count, " 大于或等于 5")

python的循环中也存在 breakcontinue