零基础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 dtdate1 = 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 Falsereturn goal in (s + s)
print(rotateString("abcde", "edcba"))

  •  使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到.
  • 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串

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

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

 

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

案例:文件查找工具 - os

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

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

import osinputPath = 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.mzph.cn/bicheng/62674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3项目创建方式记录

目录 创建vue3常用的方式有三种&#xff1a;一.使用vue cli创建二.使用vite创建三.使用vue3官方推荐创建方式&#xff08;create-vue&#xff09; 创建vue3常用的方式有三种&#xff1a; 一.使用vue cli创建 vue create 项目名二.使用vite创建 vite是下一代前端开发与构建工…

用MATLAB符号工具建立机器人的动力学模型

目录 介绍代码功能演示拉格朗日方法回顾求解符号表达式数值求解 介绍 开发机器人过程中经常需要用牛顿-拉格朗日法建立机器人的动力学模型&#xff0c;表示为二阶微分方程组。本文以一个二杆系统为例&#xff0c;介绍如何用MATLAB符号工具得到微分方程表达式&#xff0c;只需要…

SpringAi整合大模型(进阶版)

进阶版是在基础的对话版之上进行新增功能。 如果还没弄出基础版的&#xff0c;请参考 https://blog.csdn.net/weixin_54925172/article/details/144143523?sharetypeblogdetail&sharerId144143523&sharereferPC&sharesourceweixin_54925172&spm1011.2480.30…

Android电视项目焦点跨层级流转

1. 背景 在智家电视项目中&#xff0c;主要操作方式不是触摸&#xff0c;而是遥控器&#xff0c;通过Focus进行移动&#xff0c;确定点击进行的交互&#xff0c;所以在电视项目中焦点、选中、确定、返回这几个交互比较重要。由于电视屏比较大&#xff0c;在一些复杂页面中会存…

yolo辅助我们健身锻炼

使用软件辅助健身能够大大提升运动效果并帮助你更轻松地达成健身目标。确保每次锻炼都更加高效且针对性强,精确记录你的训练进度,帮助你更清晰地看到自己的进步,避免无效训练。 借助YOLO11的尖端计算机视觉技术,跟踪和分析锻炼变得异常简单。它可以无缝检测和监控多种锻炼…

Flume 与 Kafka 整合实战

目录 一、Kafka 作为 Source【数据进入到kafka中&#xff0c;抽取出来】 &#xff08;一&#xff09;环境准备与配置文件创建 &#xff08;二&#xff09;创建主题 &#xff08;三&#xff09;测试步骤 二、Kafka 作为 Sink数据从别的地方抽取到kafka里面】 &#xff08;…

SRS搭建直播推流服务

学习链接 5分钟教你搭建SRS流媒体服务器 - B站视频 SRS Stack 入门B站合集视频 - SRS官方教程 SRS官网 SRS官网文档 ossrs/srs github SRS for window - 可以安装windows版本的srs&#xff0c;SRS 5.0.89正式支持Windows&#xff0c;每个5.0的版本都会提供安装包 文章目录…

css—轮播图实现

一、背景 最近和朋友在一起讨论的时候&#xff0c;我们提出了这样的一个提问&#xff0c;难道轮播图的效果只能通过js来实现吗&#xff1f;经过我们的一系列的争论&#xff0c;发现了这是可以通过纯css来实现这一效果的&#xff0c;CSS轮播图也是一种常见的网页展示方式&#x…

nacos安装部署

nacos安装部署 1.安装nacos 1.安装nacos nacos的安装很简单下载后解压启动即可&#xff0c;但是在启动前请确保jdk环境正常&#xff1b; 1.首先我们要下载nacos安装包&#xff1a;可以到官网下载&#xff0c;注意我这里使用的是2.1.0版本&#xff1b; 2.下载完成后&#xff0…

tomcat 8.5.35安装及配置

安装包地址&#xff1a; 1.Index of /dist/tomcat/tomcat-8/v8.5.35/binhttps://archive.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/ 2.通过网盘分享的文件&#xff1a;tomcat 链接: https://pan.baidu.com/s/1z9bD4rIuIRvzQ4okm3iRzw?pwdp24p 提取码: p24p 3.通过官网…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】

YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第4篇&#xff1a;YOLOv2—…

机器学习提高电子病历主要诊断编码正确率的路径分析

摘要 本研究探讨机器学习在强化病历书写质量和提高主要诊断编码正确率方面的应用。介绍了基于机器学习的病历质量分析方法、AI病历质控应用、智能预问诊系统和诊室听译机器人等在病历书写质量提升中的作用&#xff0c;以及基于机器学习的ICD智能诊断编码方法和重症病人ICD自动…

鸿蒙征文|鸿蒙技术分享:使用到的开发框架和技术概览

目录 每日一句正能量前言正文1. 开发环境搭建关键技术&#xff1a;2. 用户界面开发关键技术&#xff1a;3. 应用逻辑开发关键技术&#xff1a;4. 应用测试关键技术&#xff1a;5. 应用签名和打包关键技术&#xff1a;6. 上架流程关键技术&#xff1a;7. 后续维护和更新关键技术…

C++类中多线程的编码方式

问题 在C++代码中,一般的代码是需要封装在类里面,比如对象,方法等。否则就不能很好的利用C++面向对象的能力了。 但是这个方式在处理线程时会碰到一个问题。 考虑下面一个简单的场景: class demoC { public:std::thread t;int x;void threadFunc(){std::cout<<x&…

Android开发仿qq详情下拉头像变大

Android开发仿qq详情下拉头像变大 个人详情界面&#xff0c;很多都有下拉头像变大的效果&#xff0c;其实我觉得这效果还不如点击头像看大图呢 一、思路&#xff1a; 自定义ScrollView 二、效果图&#xff1a; 看视频更直观点&#xff1a; Android开发教程案例分享-仿qq详情…

深入解析下oracle date底层存储方式

之前我们介绍了varchar2和char的数据库底层存储格式&#xff0c;今天我们介绍下date类型的数据存储格式&#xff0c;并通过测试程序快速获取一个日期。 一、环境搭建 1.1&#xff0c;创建表 我们还是创建一个测试表t_code&#xff0c;并插入数据&#xff1a; 1.2&#xff0c;…

golang版本管理工具:scoop使用

安装 Scoophttps://scoop.sh/根据官方文档安装。 第一步&#xff1a;打开PowerShell。(注意不要使用管理员方式打开&#xff0c;否则在执行安装Scoop的过程中&#xff0c;会报错。) 第二步&#xff1a;切到C盘根目录下。 第三步&#xff1a; Set-ExecutionPolicy -Executi…

时装购物系统

私信我获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;时装购物系统当然也不能排除在外。时装购物…

架构04-透明多级分流系统

零、文章目录 架构04-透明多级分流系统 1、透明多级分流系统 &#xff08;1&#xff09;概述 **定义&#xff1a;**透明多级分流系统是指在用户请求从客户端发出到最终查询或修改数据库信息的过程中&#xff0c;通过多个技术部件对流量进行合理分配&#xff0c;以提高系统的…

【AI】数据,算力,算法和应用(3)

三、算法 算法这个词&#xff0c;我们都不陌生。 从接触计算机&#xff0c;就知道有“算法”这样一个神秘的名词存在。象征着专业、权威、神秘、高难等等。 算法是一组有序的解决问题的规则和指令&#xff0c;用于解决特定问题的一系列步骤。算法可以被看作是解决问题的方法…