Python笔记(更新中)

1. 第一个python程序:

1.1 在cmd窗口执行python代码

  • 打开\(CMD\)(命令提示符)程序,输入\(Python\)并回车

    然后,在这里输入代码回车即可立即执行

    image

  • 我们可以将代码写入一个\(.py\)后缀的文件里,然后在\(CMD\)中使用\(python\)命令运行它
    image

  • 使用第三方\(IDE\)(集成开发工具),如pyCharm


1.2 pyCharm常用快捷键:

image


1.3 打印输出语句:

print("Hello World")

输出不换行语句

print("Hello",end = '')

  • 括号和引号必须是英文

1.4 解释器

\(py\)代码翻译成01代码方便让计算机去识别并执行的程序


1.5 常见问题

  • 进入\(CMD\)之后要输入python才可以编写\(py\)代码,'\(python\)'不是内部或外部命令,也不是可运行的程序或批处理文件

  • \(CMD\)出现:无法初始化设备\(PRN\); 这是因为没有进入到\(python\)解释器环境内执行代码

  • 执行出现\(SyntaxError:invalid character (U+201C)\); 这是因为,代码的符号是中文符号


2 基础语法

2.1 常用字面量(代码中固定的值):

  • 数字

    • 整数(\(int\)):\(10\),\(-10\)
    • 浮点数(\(float\)):\(13.14\)
    • 复数(\(complex\)):\(4 + 3i\)
    • 布尔(\(bool\)):\(TRUE\)\(FALSE\)
  • 字符串:由任意数量的字符组成

  • 列表:有序的可变序列

  • 元组:有序的不可变序列

  • 集合:无序不重复集合

  • 字典:无序\(Key-Value\)集合


2.2 注释(增加可读性):

  • 单行注释:#右边都是注释

建议#和内容用一个空格隔开

  • 多行注释:以三个引号引起来

2.3 变量:

在程序运行时,能储存计算结果或能表示值的抽象概念简单的说,变量就是在程序运行时,记录数据用的

变量定义格式:变量名称 = 变量的值

特征:
变量的值可以改变

如何输出多份内容:
print(内容1,内容2)


2.4 数据类型

type(被查看的数据):可以查看数据的类型(有返回值)

使用方式:

  • 使用print直接输出类型信息

    print(type(1))
    print(type(3.14))
    print(type("字符串"))
    

    输出如下:

    image

  • 使用变量存储type()语句结果

    string_type = type("string")
    print(string_type)
    

    输出如下:

    image

  • 使用type()语句,查看变量中存储的数据类型信息

    num = 10
    print(type(num))
    

    输出如下:

    image

\(type()\)查看的是变脸存储的数值类型。因为,变量无类型,但是它存储的数据有


2.5 数据类型的转换

  • int(x):将\(x\)转换为一个整数

  • float(x):将\(x\)转换为一个浮点数

  • str(x):将\(x\)转换为字符串

注:

  1. 都带有返回值

  2. 万物皆可转字符串,但想将字符串转数字一定要确保字符串内容都得是数字

  3. 浮点数转整数会丢失精度


2.6 标识符

定义:是用户在编程的时候所使用的一系列名字,用于给变量,类,方法等命名

例如

  • 变量的名字

  • 方法的名字

  • 类的名字

命名规则

  • 内容限定

    • 只允许出现英文,中文,数字,下划线这四类元素(不推荐使用中文)

    • 数字是不可以用在开头的

  • 大小写敏感

  • 不可使用关键字

命名规范

变量名,类名,方法名不同的标识符有不同的规范

变量命名规范

  • 见名知意

  • 下划线命名法

  • 英文字母全小写


2.7 运算符

  1. 常见算术运算符有:
    加(+),减(-),乘(×),除(/),整除(//),取余(%),求平方(**)

  2. 赋值运算符:

  • 标准赋值:\(=\)

  • 复合赋值:\(+=,-=,*=,/=,//=,%=,**=\)


2.8 字符串

2.8.1 字符串定义:
  • 单引号定义:name = 'Eric'

  • 双引号定义:name = "Eric"

  • 三引号定义:name = """Eric"""

使用变量接收他就是字符串,不接收就是多行注释

如何字符串包含单引号,双引号本身

  • 在字符串内 可以用单引号包含双引号name = 'Eric""'

  • 可以用双引号包含单引号 name = "Eric''"

  • 使用转义字符 \ 解除引号的效用 name = "Eric\'"


2.8.2 字符串拼接
  • 字符串和字面量之间的拼接(仅限于字符串和字符串的拼接)
print("123" + "456")

缺点

  1. 变量多,拼接起来麻烦

  2. 字符串无法和数字或其他类型完成拼接


2.8.3 字符串格式化
name = "李华"
message = "我喜欢 %s" % name
print(message)

age = 19
salary = 20000
float_num = 13.14
message = "我是%s今年%d岁月薪%d 较去年增长了%f" % (name, age, salary, float_num)
print(message)

输出如下

image

  • %:表示要占位

  • s:表示将变量变成字符串放入占位的地方

  • d:表示将变量变成整数放入占位的地方

  • f:表示将变量变成浮点数放入占位的地方

  • 多个变量占位的话,要用括号包起来,并按照占位顺序逗号隔开

  • 这里数字也能用%s占位是因为将数字转换成了字符串


2.8.4 字符串格式化的精度控制

语法\(m.n\)的形式控制,如%5d,%5.2f,%.2f,%5,2s(m和.n均可以省略)

  • 如果\(m\)比数字本身小,则\(m\)不起作用

  • \(.n\)对小数部分做精度限制,同时会对小数部分做四舍五入

int_num = 12
float_num = 3.84
print("%5d" % int_num)
print("%5d" % float_num)

print("%5.2f" % int_num)
print("%5.2f" % float_num)

print("%.2f" % int_num)
print("%.2f" % float_num)

\(output\)

image


2.8.5 快速字符串格式化

语法f"内容{变量}"

优点:

  • 不理会类型

  • 不做精度的控制

  • 适合对精度没有要求的时候快速使用

age = 18
name = '李华'
school = 'Python'
print(f"我是{name},今年{age}岁,正在学{school}")

\(output\)

image


2.8.6 表达式格式化

表达式:一条具有明确执行结果的代码语句

语法f"{表达式}"

例:
1 * 1,4 + 2, name = 'Eric'

print(f"打印结果{1 * 1}")
print("打印结果%d" % (1 * 1))
print("字符串在python的类型是%s" % type("123"))

\(output\)

image


2.9 数据输入

  • input()的功能是获取键盘的输入

  • 可以使用:\(input\)(提示信息),用以在使用者输入内容之前显示提示信息

  • 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型


2.10 布尔类型和比较表达式

布尔(bool):被划分为数字类型,底层用\(1\)表示\(True\)\(0\)表示\(false\)

  • true:表示真

  • false:表示假

定义变量存储布尔类型数据:变量名称 = 布尔类型字面量

布尔类型不仅可以自行定义,同时也可以通过计算得来,也就是使用比较运算符进行比较运算得到布尔类型的结果

比较运算符:

<,>,>=,<=,!=,==

result = 1 == 1
print(result, type(result))

result = 2 > 3
print(result, type(result))

\(output\)

image


2.11 if_else语句

格式

if age >= 18:
    print("YES")
else :
    print("NO")
  • \(if\)后的条件不满足的时候\(else\)才执行

  • \(else\)后不需要判断条件

  • 判断条件的结果一定是布尔类型

  • 不要忘记判断条件后的:冒号

  • 归属于\(if\)语句的代码块,需在前方填充4个空格缩进,\(else\)同理

age = 19
if age >= 30:
    print("中年人")
elif age >= 20:
    print("青年人")
else :
    print("年轻人")
  • 判断是互斥且有序的,上一个满足后面的就不会判断了

  • 缩进和\(if,else\)同理

  • \(elif\)可以写多个

  • 可以在条件判断中,直接写\(input\)语句,节省代码量

age = 19
if age >= 18:
    if age >= 30:
     print("You are old enough to vote")
    else:
     print("You are old enough to vote")
else:
 print("You are old enough to vote")
  • 嵌套判断语句可以用于多层次,多条件的逻辑判断

  • 嵌套判断语句可以根据需求,自由组合\(if elif else\)来构建多层次判断

  • 嵌套判断语句,一定要注意空格缩进,\(python\)通过空格缩进来决定层次关系


2.12 循环语句

2.12.1 while语句
while i < 100:
    j = 0
    while j < 10:
        print(i, j)

注意

  1. \(while\)条件需要布尔类型,\(True\)表示继续循环,\(False\)表示结束循环

  2. 需要设置循环终止的条件,如\(i += 1\)配合\(i < 100\),就能确保\(100\)次后停止,否则将无限循环

  3. 同判断语句的嵌套一样,循环的嵌套语句注意空格缩进

  4. 避免出现无限循环


2.12.2 for语法

语法

# 将name的内容,挨个取出赋于x临时变量
# 就可以在循环体内对x进行处理

for 临时变量 in 待处理数据集
	循环满足条件执行的代码
  • \(while\)不同,\(for\)无法定义循环条件,循环次数只取决于被处理的数据集中,依次取出内容进行处理

  • \(for\)循环嵌套和\(while\)或者\(if\)同理,同样需要注意通过缩进确定层次关系

  • \(for\)循环和\(while\)循环可以相互嵌套使用


2.12.3 range语句:

语法1

range(num):

获取一个从\(0\)开始,到\(num\)结束的数字序列(不含\(num\)

range(5) = [0,1,2,3,4]

语法2

range(num1,num2)

获得一个从\(num1\)开始,到\(num2\)结束的数字序列(不含num2本身)

如,range(5,10)取得的数据是:[5,6,7,8,9]

语法3

range(num1,num2,step)

获得一个从\(num1\)开始,到\(num2\)结束的数字序列(不含\(num2\)本身)数字之间的步长,以\(step\)为准(斯\(step\)默认为\(1\)

如,range(5,10,2)取得的数据就是[5,7,9]


2.12.4 for循环临时变量作用域
for i in range(5):
    print(i)

print(i)
  1. \(for\)循环中的临时变量,其作用域限定为:循环内

  2. 这种限定:

    • 是编程规范的限定,非强制要求

    • 不遵守也能运行,但是不建议这样做

    • 如需访问临时变量,可以预先在循环外定义它


2.12.5 break和continue
  • continue作用:中断所在循环的当此执行,直接进行下一次

  • break作用:直接结束所在的循环

注意

  • \(continue\)\(break\),在\(for\)\(while\)循环中作用一致

  • 在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用


3. 函数

3.1 函数定义

函数:是组织好的,可重复使用的,用来实现特定功能的代码段

语法:

def 函数名(传入参数):
    函数体
    return 返回值
  • 要先定义函数,后调用函数

  • 参数不需要可以省略,返回值不需要可以省略

  • 将功能封装在函数内,可供随时重复使用

  • 提高代码复用性,减少重复代码,提高开发效率


3.2 带参函数

功能:在函数进行计算的时候,接受外部(调用时)提供的数据

def add(a,b):
    return a+b
  • 函数定义中的参数,称之为形式参数

  • 函数调用中的参数,称之为实际参数

  • 函数的参数数量不限,使用逗号分隔开

  • 传入参数的时候,要和形式参数一一对应,逗号隔开


3.3 返回值

利用return语句返回函数计算好的数据

如果函数没有返回值类型,可以返回None类型,其类型为<class 'NoneType'>,无返回值的函数,实际上就是返回None这个字面量(None代表空,无含义)

\(None\)

  • 用在函数无返回值

  • 用在\(if\)判断上

    • 在if判断中,None等同于false

    • 一般用于在函数中主动返回None,配合if判断做相关处理

  • 用在声明无内容的变量上

    • 定义变量,但暂时不需要变量有具体值,可以用None

3.3 函数说明文档

作用

对函数进行说明解释,帮助更好理解函数的功能

def add(a,b):
    """
    add函数可以接收2个参数,进行两个数的相加操作
    :param x: 形参x表示要相加的其中一个数
    :param y: 形参y表示要相加的另一个数
    :return: 返回值是两数相加的结果
    """
    return a+b
  • :param 用于解释参数

  • :return用于解释返回值


3.4 变量在函数中的作用域

变量作用域指的是变量的作用范围(变量在哪里可以用,在哪里不可以用)主要分两类:局部变量和全局变量

  1. 局部变量:是定义在函数体内部的变量,即在函数体内部生效

  2. 全局变量:在函数内部和外部均可以使用

  3. global关键字可以将函数内定义的变量声明为全局变量


4. 容器

4.1 数据容器介绍

\(Python\)中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素。每一个元素,可以是任意类型的数据,如字符串,数字,布尔等

容器根据

  • 是否支持重复元素

  • 是否可以修改

  • 是否有序,等分为5类:

列表(\(list\)),元组(\(tuple\)),字符串(\(str\)),集合(\(set\)),字典(\(dict\))


4.2 列表

基本语法

  • 字面量:[元素1,元素2,元素3,...]

  • 定义变量:变量名 = [元素1,元素2,元素3,...]

  • 定义空列表:变量名 = [] / list()

  • 根据索引取元素:列表[下标元素]

正向索引

image

反向索引

image

二维列表

image

要注意下标索引的取值范围,超出范围无法取出元素,并且会报错

注意

列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套和下标索引


补充知识

制表符\t:效果等同于tab键,它可以让我们的多行字符串进行对齐


posted @ 2025-08-23 22:55  Gabriel_7  阅读(11)  评论(1)    收藏  举报