零基础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 返回一个三元组, 分别是 当前路径 , 当前路径下包含的目录名 (多个), 当前路径下包含的文件名 (多个)

相关推荐
一个真正のman.5 小时前
c加加学习之day01
学习
蔗理苦6 小时前
2025-04-03 Latex学习1——本地配置Latex + VScode环境
ide·vscode·学习·latex
charlie1145141918 小时前
从0开始的构建的天气预报小时钟(基于STM32F407ZGT6,ESP8266 + SSD1309)——第2章——构建简单的ESP8266驱动
stm32·单片机·物联网·学习·c·esp8266
南宫生8 小时前
Java迭代器【设计模式之迭代器模式】
java·学习·设计模式·kotlin·迭代器模式
虾球xz8 小时前
游戏引擎学习第203天
学习·游戏引擎
WDeLiang9 小时前
Flask学习笔记 - 模板渲染
笔记·学习·flask
明月清了个风9 小时前
数据结构与算法学习笔记----贪心区间问题
笔记·学习·算法·贪心算法
因为奋斗超太帅啦9 小时前
MySQL学习笔记(一)——MySQL下载安装配置
笔记·学习·mysql
aoxiang_ywj10 小时前
【Linux】内核驱动学习笔记(二)
linux·笔记·学习
WhyNot?11 小时前
深度学习入门(三):神经网络的学习
深度学习·神经网络·学习