Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5Mobile wallpaper 6Mobile wallpaper 7Mobile wallpaper 8
1916 字
10 分钟
Python语法入门

Python语法入门#

00 Why Python?#

Python是一门解释型语言,具有完全面向对象特性

01 What we need?#

解释器:Python本身(MS Store安装/自行安装) (Conda也算一种Python发行版)

IDE

02 变量#

Python的变量类型不同于C系的short long unsigned blbl 显得简单粗暴

但又有些不同于C的变量类型(又不简单粗暴了)

数字型

整型 浮点型 布尔型(True 1 / False 0) 复数型

非数字型

字符串 列表 元组 集合 字典

变量定义#

变量的定义不需要声明,但是需要赋值才算创建

# 定义整型变量a
a = 10
# 定义字符串变量 hello
hello = "hello, world!"
'''
这是
一个
多行
注释
'''
'''
3x -5 (x > 1)
f(x)= x + 2 (-1<=x<=1)
5x +3 (x < -1)
'''
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
else:
if x >= 1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x,y))
#转换输入类型为float 创建一个float型变量x

以上是一个分段函数求解程序 输入x 得到 y

print部分有类似printf的格式化输出的处理。 使用%将元组种的数值放到输出文段里

扩展: 我们其实有更现代的写法,

①将格式化段%.2f替换成{:.2f} ,将运算符%替换为.format

仅适用于Python 3.6+

​ 将输出段用双引号引起来,左端引号外加上f使其变为f-string,格式化段直接指向元组或变量

{x:.2f}{y:.2f}

所以代码的最后一句可以写成下述格式:

print(f'f({x:.2f}) = {y:.2f}')

简洁很多

至于格式化输出段 晚点再补充~

标识符#

标识符其实就是变量名 函数名

名字应当见名知意

可由字母 下划线 数字 组成 不能数字开头 不能与保留字重复

image-20250623151522914

输出保留字的方法如下:

import keyword
print(keyword.kwlist)

列表(list)#

list是一种结构化的非标量类型,是值的有序序列

定义&遍历

list1 = [1, 3, 5, 7, 100]
# 乘号表示列表元素的重复
list2 = ['hello'] * 3
print(list2) # ['hello', 'hello', 'hello']
# 计算列表长度(元素个数)
print(len(list1)) # 5
# 下标(索引)运算
print(list1[0]) # 1
print(list1[4]) # 100
print(list1[-1]) # 100
print(list1[-3]) # 5
# 通过循环用下标遍历列表元素
for index in range(len(list1)):
print(list1[index])
# 通过 for 循环遍历列表元素
for elem in list1:
print(elem)
# 通过 enumerate 函数处理列表之后再遍历可以同时获得元素索引和值
for index, elem in enumerate(list1):
print(index, elem)

说人话的话这个东西就是数组pro max,它可以存字符串之类的变量

如果说列表相对数组pro在更灵活的变量类型的话,那它就max在相当简易的延长和删除上

list1 = [1, 3, 5, 7, 100]
# 修改元素
list1[2] = 300
# 添加元素
list1.append(200) # 在末尾添加元素
list1.insert(1, 400) # 在索引 1 的位置插入元素 400,即插入后位于list1[1]
# 合并两个列表
list1 += [1000, 2000]
print(list1) # [1, 400, 3, 300, 7, 100, 200, 1000, 2000]
print(len(list1)) # 9
# 先通过成员运算判断元素是否在列表中,使用 remove 删除元素(甚至可以自动遍历整个列表找到符合要求的数值)
if 3 in list1:
list1.remove(3)
# 删除指定位置的元素,可以返回被删除的元素
m = list1.pop(0)
print(f"被删除的第一个元素是:{m}")
# 清空列表元素
list1.clear()
print(list1) # []

元组(tuple)#

tuple类似于列表 重点在于不能修改

元组使用小括号()

定义与转换

t = ('CCNU', 1122, 'love', 77) #小括号在外 逗号分隔
print(t[2]) #查看元素
for member in t:
print(member) #遍历元素
# 将元组转换成列表
list_t = list(t) # 是不是超级像c的强制类型转换呀
# 将列表转换成元组
l = ['CCNU', 77, 'love', 1122]
tuple_l = tuple(l)

集合(set)#

类似数学中的集合,元素不能重复

使用大括号{}括起来的叫集合

#定义集合
set = {1, 2, 3, 3, 3, 2} #可以写重复的 但是python会主动忽略
print(len(set)) # 3
# 创建集合的构造器语法
set2 = set(range(1, 10)) # 理解为for(i=1;i<10;i++)
set3 = set((1, 2, 3, 3, 2, 1))
print(set2, set3) # {1, 2, 3, 4, 5, 6, 7, 8, 9} {1, 2, 3}
# 创建集合的推导式语法(推导式也可以⽤于推导集合)
set4 = {num for num in range(1, 100) if num % 3 == 0 or num % 5 == 0}
# 仅存储3的倍数和5的倍数

同样的,元组、列表、集合可以相互转换,但是转换为集合会失去所有重复元素

TIP:集合为了保证效率,其顺序是不可控的,意味着每次对其进行修改之后都会得到不同的顺序(甚至不修改也有可能变动?这点存疑)

对集合的修改

set1.add(4) # 一次添加一个数值 已存在则忽略
set2.update([11,12]) # 一次添加多个 已存在则忽略
set2.discard(5) # 删除已有元素 如果不存在则忽略 不报错(remove会报错)
if 4 int set2:
set2.remove(4)
print(set3.pop())# 随机删一个
print(set3)

集合运算

# 集合交并差 对称差
print(set1 & set2)# print(set1.intersection(set2)) 交集 同时存在的元素
print(set1 | set2)# print(set1.union(set2)) 并集
print(set1 - set2)# print(set1.difference(set2)) 差集 属于set1但不属于set2的元素
print(set1 ^ set2)# print(set1.symmetric_difference(set2)) 属于set1或set2,但不同时属于set1或set2的元素(排除交集的并集)
# 判断子集或者超集
# 如果是,则运算返回一个True/1的bool 否则返回一个False/0
print(set2 <= set1) # print(set2.issubset(set1)) set2是否为set1的子集
print(set2 >= set1) # print(set2.issuperset(set2)) set2是否为set1的超集
print(set2 < set1) # set2是否为set1的真子集
print(set2 > set1) # set2是否为set1的真超集

字典(dict)#

dict的每个元素都是由一个键和一个值组成的键值对,键与值通过冒号分开

# 创建字典字面量
scores = {'张三': 95, '李四': 85, '王五': 35}
#创建字典的构造器语法
items1 = dict(one=1, two=2, three=3, four=4) #{'one': 1, 'two': 2, 'three': 3, 'four': 4}
# zip函数将两个序列压成字典
item1 = dict(zip(['a', 'b', 'c'], '123')) #{'a': '1', 'b': '2', 'c': '3'}
#推导式语法
items3 = {num: num ** 2 for num in range(1, 10)} #对应平方
print(scores['张三']) # 95
print(scores['李四']) # 85
# 遍历键值
for key in scores:
print(f'{key}:{scores[key]}')
'''
张三:95
李四:85
王五:35
'''
#更新元素
scores['张三'] = 88 #修改已有项
scores['ykn'] = 66 #添加新的键值对
scores.update(nina = 27, mmk = 0) #添加多个键值对
print(scores) # {'张三': 88, '李四': 85, '王五': 35, 'ykn': 66, 'nina': 27, 'mmk': 0}
# get方法 获取值 但可以设置默认值(即不存在对应键值对则返回设定的默认值)
print(scores.get('drum'. 486))
print(scores.pop('anon',250) #删除对应键值对并返回对应值,若不存在则返回设定的默认值。若未提供默认值抛出KeyError
print(scores.popitem()) # 随机删除并返回一个键值对 Python 3.7+中此函数默认删除最后插入的键值对

函数#

通过函数名封装调用一段实现功能的完整代码

内置函数 print() input()之类 包含于库中

自定义函数

def func_name (parameter1, parameter2): #定义函数名和参数
... #此处为具体代码段
return s # 返回值(可选)

调用时使用func_name(para1, para2),需要匹配传入参数

类(Class)#

类是面向对象特性的重要元素。我们学的C语言很显然没有类的概念,现在在python中我们会通过Class来理解面向对象特性

Python语法入门
https://di404.uk.eu.org/posts/python-getting-started/
作者
Reconi(Rino)
发布于
2025-10-23
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00