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

相关推荐
moxiaoran57534 小时前
uni-app学习笔记二十九--数据缓存
笔记·学习·uni-app
pop_xiaoli6 小时前
OC—UI学习-2
学习·ui·ios
Lin Hsüeh-ch'in6 小时前
Vue 学习路线图(从零到实战)
前端·vue.js·学习
恰薯条的屑海鸥6 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十五期-URL重定向模块)
学习·安全·web安全·渗透测试·网络安全学习
moxiaoran57539 小时前
uni-app学习笔记三十--request网络请求传参
笔记·学习·uni-app
嘉陵妹妹9 小时前
深度优先算法学习
学习·算法·深度优先
乖乖是干饭王10 小时前
Linux系统编程中的_GNU_SOURCE宏
linux·运维·c语言·学习·gnu
待什么青丝10 小时前
【TMS570LC4357】之相关驱动开发学习记录2
c语言·arm开发·驱动开发·单片机·学习
行云流水剑11 小时前
【学习记录】如何使用 Python 提取 PDF 文件中的内容
python·学习·pdf
虾球xz12 小时前
CppCon 2015 学习:CLANG/C2 for Windows
开发语言·c++·windows·学习