零基础Python学习

1.环境搭建

1.1 安装运行环境python3.13

Welcome to Python.org

1.2 安装集成开发环境PyCharm

PyCharm: the Python IDE for data science and web development

1.3 创建项目 && 设置字体

2.基础语法

2.1 常量与表达式

  • 在python中整数除整数不会优化,所以结果可能是小数

2.2 变量

在Python中定义一个变量,直接写变量名就行

  1. 变量必须由数字 字符 下划线,不能包含特殊符号
  2. 数字不能开头
  3. 变量名不能和Python中的关键字重复
  4. Python中变量名,是区分大小写的,大小写敏感

  • 第一个给值叫初始化,第二次给值叫赋值

Python中的变量类型,不需要在定义变量的时候显式声明,而只是依靠初始化语句,根据初始化值的类型来确定

在Python中,int能够表示的数据范围是"无穷"的,因为int可以根据要表示的数据大小,自动扩容

在Python中,True是真,False是假,第一个首字符要大小

  • int类型,默认4字节,动态扩容
  • float,8字节,
  • bool,1字节'
  • str,变长

动态类型:程序运行过程中,变量的类型可能会发生改变~

  • Python作为一个动态类型的语言,在定义变量是,也是可以声明类型的a:int,但没什么用

2.3 注释

2.4 输出-格式化字符串

print( f"{变量}" )

  • 注意:字符串不能跟数字拼接

2.5 输入-input

  • 注意:input函数的返回值是str的 ,可以使用强制类型转换int(),float(),

2.6 运算符

算术 关系 逻辑

  • 特殊的算术运算符:** //,一个平方或开方,另一个是向下取整(除法)

  • 注意:关系运算符之间的比较 返回值是bool

  • 特殊案例,2浮点数之间的比较不能使用==,而是需要做差
  • 注意:python中支持连续比较

  • and等价于 &&
  • or等价于 ||
  • not等价于 !

  • 在Python中额外的2种赋值,链式赋值多元赋值

  • 在Python中不支持++--这样的自增自减操作,
  • ++a之所以没有语法报错,是Python解释器把+但成正号
  • 同理--a也不会报错,是因为把-当成了负号,负负得正,最终的值依然不变
  • 但是后置++和后置--都是语法上报错的

在Python中,还有其他运算符:身份运算符(is,is not),成员运算符(in,not in),位运算符(& | !~^<<)等

2.7 if条件语句

  • 记得加**:**号

  • 注意: 代码缩进

2.7 空语句

空语句pass表占位

  • 这里如果没有pass空语句,就会报错

2.8 while循环

  • 记得加**:**号

2.9 for循环

  • shift+F6:对需要重命名的变量重命名
  • range(起始,终止,步长),且range函数的区间是前闭后开的,

2.10 break和continue

2.11 def定义函数


  • 在python中有个特殊用法,相较于其他语言,函数可以返回多个返回值
  • 如果这多个返回值,不一定都需要,就可以使用**_进行占位**

  • 在python中,找变量的方法和其他语言也一样,优先局部作用域找,没有的话,从全局
  • 但是python中可以用global关键字声明变量,使其成为全局变量

  • 与其他语言不同的是,在python只有函数和类才会影响作用域

  • 和其它语言一样,也能给形参赋默认值,
  • 上面的函数也是一个调试小技巧

  • python特有的:关键字参数

2.12 列表[]

**列表可变,**元组不可变

  • 在python中列表是可以放不同类型的

  • 在python中可以使用列表下标可以用负数,-1表示倒数第一个数

切片操作

  • 列表的切片操作是不涉及数据拷贝的,且支持负数,也有步长

遍历操作

  • 注意2种遍历,一种能赋值,另一种不能赋值

插入操作

  • 一个是append方法,另一个是insert方法

查找 && 删除

拼接

  • 建议使用extend方法

2.13 元组()

  • 其他同列表但不支持修改,

2.14 字典{}

存放键值对 ,字典的各种操作都是针对key


访问,查找

  • 无论是列表还是字典都建议使用[ ]

插入,删除

  • 字典的[]赋值,存在替换,不存在插入

遍历

  • 常见的三个方法:keys(),values(),items()

2.15 文件操作

cpp 复制代码
# 写文件操作
f = open("1.txt","w")
f.write("早上好\n")
f.write("中午好\n")
f.write("下午好\n")
f.close()

# 读文件操作
# f = open("1.txt",'r',encoding="utf-8")

# 读取2个字符
f = open("1.txt",'r')
result = f.read(2)
print(result)
f.close()

# 按行读取
f = open("1.txt",'r')
for line in f:
    print(f"line = {line}",end=" ")
f.close()

# 读取所有数据
f = open("1.txt",'r')
lines = f.readlines()
print(lines)
f.close()
  • 关键字参数:**encoding = "utf-8"**指定参数,**end=" "**指定最后结尾字符

2.16 上下文管理器 with as

解决打开文件,却忘记关闭的情况

3.认识标准库

Python 标准库 --- Python 3.13.0 文档
引入第三方库: import[模块名]

使用 import 可以导入标准库的一个 模块

所谓 "模块" , 其实就是一个单独的 .py 文件.

使用 import 语句可以把这个外部的 .py 文件导入到当前 .py 文件中, 并执行其中的代码.

案例:计算两个日期之间差了多少天 - datetime

python 复制代码
import datetime as dt
 
date1 = dt.datetime(year=2012, month=2, day=14)
date2 = dt.datetime(year=2016, month=2, day=3)
print(date2 - date1)
  • 使用 import 语句导入标准库的 datetime 模块

案例:翻转单词顺序 - reverseWord

python 复制代码
def reverseWords(s: str):
    tokens = s.split()
    tokens.reverse()
    return ' '.join(tokens)
print(reverseWords("I am a student."))

  • 使用 str 的 split方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表.
  • 使用列表的 reverse 方法进行逆序.
  • 使用 str 的join 方法进行字符串拼接. 把列表中的内容进行合并.

案例:旋转字符串 - rotateString

python 复制代码
def rotateString(s, goal):
    if len(s) != len(goal):
        return False
    return goal in (s + s)
print(rotateString("abcde", "edcba"))
  • 使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到.
  • 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串

案例:统计给定字符串前缀的字符串数目 - countPrefixes

python 复制代码
def countPrefixes(words: list, s: str):
    count = 0
    for word in words:
        if s.startswith(word):
            # s 是以 word 开头
            count += 1
    return count
 
print(countPrefixes(['a', 'b', 'c', 'ab', 'bc', 'abc'], 'abc'))
print(countPrefixes(['a', 'a'], 'aa'))

  • 依次遍历 words 中的字符串
  • 直接使用字符串的startswith 方法即可判定当前字符串是否是 s 的前缀

案例:文件查找工具 - os

  1. 输入要查找的路径, 输入要搜索的文件名(一部分)

  2. 自动的在指定的路径中进行查找~

python 复制代码
import os
 
inputPath = input('请输入要搜索的路径:')
pattern = input('请输入要搜索的关键词:')
 
for dirpath, _, filenames in os.walk(inputPath):
    for f in filenames:
        if pattern in f:
            print(f'{dirpath}/{f}')
  • 使用 os.walk 即可实现目录的递归遍历.

  • os.walk 返回一个三元组, 分别是 当前路径 , 当前路径下包含的目录名 (多个), 当前路径下包含的文件名 (多个)

相关推荐
西岸行者1 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意1 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码2 天前
嵌入式学习路线
学习
毛小茛2 天前
计算机系统概论——校验码
学习
babe小鑫2 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms2 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下2 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。2 天前
2026.2.25监控学习
学习
im_AMBER2 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J2 天前
从“Hello World“ 开始 C++
c语言·c++·学习