当前位置: 首页 > article >正文

零基础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 文件操作

# 写文件操作
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

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

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

 

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

案例:旋转字符串 - rotateString

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

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. 自动的在指定的路径中进行查找~

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


http://www.kler.cn/a/417581.html

相关文章:

  • Deno vs Node.js:性能对比深度解析
  • 使用Python和TensorFlow/Keras构建一个简单的CNN模型来识别手写数字
  • 旋钮屏设备物联网方案,ESP32-C3无线通信应用,助力设备智能化升级
  • 【Leetcode】4. 寻找两个正序数组的中位数
  • DeepSeek R1 x ApiSmart
  • 深入理解Node.js_架构与最佳实践
  • centos7.6升级cmake+编译pcm工具
  • Mybatis:CRUD数据操作之单个条件(动态SQL)
  • FreeRTOS 软件定时器
  • Selenium 自动化测试demo
  • 【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析
  • 开源法律、政策和实践
  • ArcGIS栅格影像裁剪工具
  • R安装rgdal报错 解决办法
  • Android 引入 proto 项目及使用方法
  • 网络安全相关证书资料
  • linux环境下,导出conda和pip的安装包和对应版本
  • solana java 转账交易示例
  • 前端用原生js下载File对象文件,多用于上传附件时,提交之前进行点击预览,或打开本地已经选择待上传的附件列表
  • DDR3保姆级使用教程:ZYNQ 7010
  • 【嵌入式——QT】QT制作安装包
  • 什么是换电系统?驱动新能源汽车发展的“能源驿站”
  • 构造函数与析构函数错题汇总
  • pip 安装指定镜像源
  • ssm_mysql_考研指导平台
  • Linux进程间通信(上)