EP01:【Python 第一弹】基础入门知识

一、基础入门知识

1.1 代码规范

1.1.1 语句分隔符

  • ;
  • 换行

1.1.2 格式化

  • 对 Windows 和 Linux 操作系统,快捷键是Ctrl + Alt + L
  • 对 macOS 操作系统,快捷键是Cmd + Option + L

1.1.3 注释

  • 单行注释
# 这是一行注释
  • 多行注释
"""
这
是
多
行
注
释
"""

1.1.4 官方文档

PEP 8 – Style Guide for Python Code

1.2 变量

1.2.1 定义

  • 变量是一个存储数据值的容器
  • 数据值可以是数字、字符串、列表、元组、字典、集合、布尔值等

1.2.2 变量名

  1. 变量名可以是任意的,但需要遵循规范
  2. 变量名规范:
  • 可以是数字、字母、下划线_
  • 不允许是数字开头
  • 不允许是关键字或者内置函数等
  • 建议是“小驼峰”结构或者下划线分隔

1.2.3 变量值

  • 变量是容器,数值是可以进行修改的

二、基本数据类型

2.1 数字类型

2.1.1 常见类型

  • 整型
x = 10
print(x)
print(type(x))
  • 浮点型
x = 3.14
print(x)
print(type(x))

2.1.2 代码实操——计算圆形的周长和面积

"""
计算圆形的周长和面积
"""# 1. 工具包
import math# 2. 输入圆的半径
radius = 3# 3. 计算周长 + 面积
circumference = 2 * math.pi * radius
area = math.pi * radius**2print(f"圆形的周长:{circumference:.2f}")
print(f"圆形的面积:{area:.2f}")
  • 结果运行图:
    在这里插入图片描述

2.2 布尔类型

2.2.1 常见类型

  • True 真
  • False 假

2.2.2 应用场景

  • 在条件语句中,控制程序的流程
  • 在逻辑运算中,表示结果的真假

2.2.3 与其他数据类型的转换

  1. 在特定的上下文中,一些数据类型(如整型、浮点型、字符串等)可以被解释为布尔值。
  2. 空值(如空列表、空字典、空字符串、0、None等)一般被看作是 False,而非空值一般被看作是 True。

2.2.4 代码实操——逻辑运算

"""
逻辑运算
"""# 1. and运算
print(True and True)
print(True and False)# 2. or运算
print(True or False)
print(False or False)# 3. not运算
print(not True)
print(not False)
  • 运行结果:
    在这里插入图片描述

2.3 字符串类型

2.3.1 常见类型

  • 单引号 ' '
  • 双引号 " "
  • 三引号 """ """

2.3.2 转义符

  1. 定义:在字符串中,插入的无法直接表示或具有特殊含义的字符
  2. 常见类型:
    • \\:用于在字符串中插入反斜杠
    • \':用于在单引号字符串中插入单引号
    • \":在双引号字符串中插入双引号
    • \n:用于在字符串中换行
    • \t:用于在字符串中插入制表符

2.3.3 格式化输出

  1. 目的:将变量或表达式的结果嵌入到字符串中,以生成有意义的输出。
  2. 常见类型:
    • %s%d%f
    • str.format()
    • f-string

2.3.4 序列操作

  • 创建、修改、查找和格式化字符串
  • 通过索引获取字符
  • 通过切片获取字符
  • 拼接字符串
  • 计算机字符串长度
  • 判断某个字符或子字符串是否存在

2.3.5 内置方法

下面是优化后的字符串内置方法表格,增加了参数说明和示例,并保持排版清晰:

字符串内置方法详解

方法含义参数返回值示例代码
upper()转换为大写新字符串print("hello".upper())HELLO
lower()转换为小写新字符串print("WORLD".lower())world
title()转换为标题格式新字符串print("hello world".title())Hello World
startswith(prefix)是否以指定前缀开头prefix: 前缀字符串布尔值print("hello".startswith("he"))True
endswith(suffix)是否以指定后缀结尾suffix: 后缀字符串布尔值print("hello".endswith("lo"))True
isdigit()是否全为数字字符布尔值print("123".isdigit())True
isalpha()是否全为字母字符布尔值print("abc".isalpha())True
isalnum()是否全为字母或数字布尔值print("abc123".isalnum())True
strip([chars])去除两边指定字符chars: 要去除的字符集合新字符串print(" hello ".strip())hello
lstrip([chars])去除左边指定字符chars: 要去除的字符集合新字符串print(" hello".lstrip())hello
rstrip([chars])去除右边指定字符chars: 要去除的字符集合新字符串print("hello ".rstrip())hello
join(iterable)连接可迭代对象iterable: 包含字符串的可迭代对象新字符串print("-".join(["a", "b", "c"]))a-b-c
split(sep=None)按分隔符分割字符串sep: 分隔符,默认为空白字符字符串列表print("a,b,c".split(","))['a', 'b', 'c']
find(sub)查找子字符串首次出现位置sub: 要查找的子字符串索引或-1print("hello".find("l"))2
index(sub)查找子字符串首次出现位置sub: 要查找的子字符串索引或报错print("hello".index("l"))2
count(sub)统计子字符串出现次数sub: 要统计的子字符串整数print("hello".count("l"))2
replace(old, new)替换指定子字符串old: 原字符串
new: 新字符串
新字符串print("hello".replace("l", "L"))heLLo
center(width, fillchar)字符串居中填充width: 总宽度
fillchar: 填充字符
新字符串print("hello".center(10, '*'))**hello***
zfill(width)左侧补零到指定宽度width: 总宽度新字符串print("42".zfill(5))00042

2.3.6 代码实操

(1)创建字符串
"""
创建字符串
"""# 1. 单引号
name = '李白'
print(f'姓名:{name}')# 2. 双引号
age = "18"
print(f"年龄:{age}")# 3. 三引号
hobby = """
1. movie
2. music
"""
print(f'兴趣:{hobby}')
  • 运行结果:
    在这里插入图片描述
(2)插入转义符
"""
插入转义符
"""# 1. \'
string_1 = '老师:\'论文写完了嘛?\''
print(string_1)# 2. \"
string_2 = "学生:\"快了,快了。\""
print(string_2)# 3. \n + \t
string_3 = "老师:\n\t\"速度!速度!\""
print(string_3)
  • 运行结果
    在这里插入图片描述
(3)格式化输出
"""
格式化输出
"""# 1. %s,%d,%f
name_1 = '李白'
age_1 = 18
print("我的名字是:%s,我的年龄是:%d岁。" % (name_1, age_1))# 2. str.format()
name_2 = '杜甫'
age_2 = 20
print("你的名字是:{},你的年龄是:{}岁。".format(name_2, age_2))# 3. f-string
name_3 = '苏轼'
age_3 = 22
print(f"他的名字是:{name_3},他的年龄是:{age_3}岁。")
  • 运行结果:
    在这里插入图片描述
(4)序列操作
"""
序列操作
"""# 1. 创建字符串
str1 = "Hello"
str2 = 'World'
str3 = """
Hello
World
"""
print(f"str1:{str1}")
print(f"str2:{str2}")
print(f"str3:{str3}")print('--'*50)# 2. 通过索引获取字符
print(f"第一个字符:{str1[0]}")
print(f"最后一个字符:{str1[-1]}")print('--'*50)# 3. 通过切片获取字符
# 取首略尾
print(f"取首略尾:{str1[1:3]}")
# 默认到尾
print(f"默认到尾:{str1[1:]}")
# 从头开始
print(f"从头开始:{str1[:4]}")
# 从左向右
print(f"从左向右:{str1[1:4:1]}")
# 隔1取1
print(f"隔1取1:{str1[1:4:2]}")
# 反向截取
print(f"反向截取:{str1[3:1:-1]}")print('--'*50)# 4. 拼接字符串
concat1 = str1 + " " + str2
concat2 = "".join([str1, " ", str2])
print(f"concat1:{concat1}")
print(f"contact:{concat2}")print('--'*50)# 5. 计算字符串长度
print(f"str1的长度:{len(str1)}")
print(f"str3的行数:{len(str3.splitlines())}")print('--'*50)# 6. 判断某个字符或子字符串是否存在
print(f"存在判断: 'e' 在 {str1} 中: {'e' in str1}")
print(f"子串判断: 'lo' 在 {str1} 中: {str1.find('lo') != -1}")
  • 运行结果:
    在这里插入图片描述

微语录:被贴上标签的人,只能等待着自己应得的人生。——《信》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89490.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89490.shtml

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

相关文章

实用的文件和文件夹批量重命名工具

在日常工作中,文件和文件夹的命名管理常常让人头疼。尤其是面对大量文件时,手动重命名不仅耗时,还容易出错。今天,我要给大家推荐一款超级实用的工具——OncePower 文件批量重命名,它不仅能批量重命名文件和文件夹&…

【Git】报错:git config --global http.sslBackend “openssl“

问题解决 报错:git config --global http.sslBackend “openssl”解决方法: git config --global http.sslBackend "openssl"之后再 push 即可正常提交。 🔍 原因分析 ​​系统环境不支持 OpenSSL 后端​​ Git 在某些平台&#xf…

Redisson RLocalCachedMap 核心参详解

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

AI辅助编程时代的高效规范开发指南:工具、原则与提效策略

引言:AI辅助编程的时代背景与核心挑战 人工智能在编程领域的应用虽可追溯至20世纪50年代,但近十年实现了革命性突破,推动其从早期的代码补全工具演进为能理解上下文、生成完整函数乃至项目架构的智能系统。关键发展里程碑包括:20…

百度网盘TV版1.21.0 |支持倍速播放,大屏云看片

百度网盘TV版是专为智能电视设计的应用程序,让用户可以直接在大屏幕上观看保存在云端的视频资源。此应用提供了与手机端几乎相同的功能,包括倍速播放功能,使得用户可以更方便地享受高清视频内容。无需繁琐的操作步骤,即可实现云端…

C++控制台贪吃蛇开发(二):让灵蛇舞动起来!

资料合集下载链接: ​​https://pan.quark.cn/s/472bbdfcd014​ 本文将深入讲解蛇移动的机制,并带你一步步实现以下功能: 理解蛇移动的核心算法:为什么蛇的移动是“倒着”更新的? 用代码表示方向:如何使用​​dx​​和​​dy​​变量优雅地控制方向。 编写核心​​move…

Elasticsearch+Logstash+Filebeat+Kibana部署

目录 软件说明: 架构拓扑 集群模式: 单机模式 环境准备 部署: kibana es logstash filebeat es 检查能否启动 logstash 命令设置 es 修改es配置文件 启用es kibana 修改kibana配置文件(方便查看索引&#xff09…

GLM(General Language Model,通用语言模型)

🧠 一、GLM是什么?一句话概括 GLM(General Language Model,通用语言模型)是一个“大脑”,它通过阅读海量书籍、网页、对话记录学会了人类的语言规则,不仅能“听懂”你说的话,还能“…

【科研绘图系列】R语言绘制显著性标记的热图

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 系统信息 参考 介绍 【科研绘图系列】R语言绘制显著性标记的热图 加载R包 library(ggplot2) library(patchwork)rm(list = ls()) options(stringsAsFactors = F)

若依部署项目到服务器

目录 一、环境配置 redis nginx(宿主机|dokcer) 1.宿主机 2.docker 二、打包jar包 0.查看后端配置 1.打包后端 2.打包前端 三、启动 1.后端 2.前端 四、以上部署常见命令/错误 一、环境配置 之前的课都配过,先看看自己配了没 看看…

零基础学习性能测试-linux服务器监控:CPU监控

目录学习内容与快速应用路径第一阶段:理解 CPU 核心概念 (0.5天)第二阶段:掌握核心监控命令与指标 (1-2天)第三阶段:识别 CPU 问题与瓶颈 (核心技能)第四阶段:整合到性能测试工作流程 (快速应用落地)快速应用到工作中的关键策略零…

智能Agent场景实战指南 Day 15:游戏NPC Agent互动设计

【智能Agent场景实战指南 Day 15】游戏NPC Agent互动设计 文章内容 开篇 欢迎来到"智能Agent场景实战指南"系列的第15天!今天我们将深入探讨游戏开发中一个极具挑战性和创新性的领域——游戏NPC Agent互动设计。在当今游戏产业中,玩家对游戏…

Vite的优缺点(精简版)

优点 作为一款前端构建工具,它的核心特点是“快”,并且充分利用了现代浏览器对ES Modules的原生支持,一切围绕这一点展开 快启动:通过ES Modules,它省去了打包整个应用的时间,可以直接在浏览器中加载模块&a…

【深度学习】神经网络-part2

一、数据加载器 数据集和加载器 1.1构建数据类 1.1.1 Dataset类 Dataset是一个抽象类,是所有自定义数据集应该继承的基类。它定义了数据集必须实现的方法。 必须实现的方法 __len__: 返回数据集的大小 __getitem__: 支持整数索引,返回对应的样本 …

nextjs+react项目如何代理本地请求解决跨域

在 Next.js React 项目中解决本地开发跨域问题,可以通过以下几种方式实现代理请求:方案1:使用 Next.js 内置的 Rewrites 功能(推荐) 1. 修改 next.config.js /** type {import(next).NextConfig} */ const nextConfig…

Ubuntu查看Docker容器

在Ubuntu系统中,可以通过以下命令查看当前正在运行的Docker容器:1. 查看所有正在运行的容器 docker ps输出示例: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:latest &…

智能点餐推荐网站,解决选择困难

软件介绍 今天为大家推荐一款解决"今天吃什么"选择困难症的趣味网站,它能为你推荐美味餐食,轻松化解每日用餐烦恼。 核心功能 这款网站最大的亮点就是能够根据你的需求智能推荐餐食选择,只需打开网页,就能立即获…

使用 C# 实现移动加权平均(Weighted Moving Average)算法

前言 欢迎关注dotnet研习社,前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。 在时间序列分析、股票数据处理、工业信号平滑等场景中,移动平均(Moving Average) 是最常见的平滑技术之一…

【Python】一些PEP提案(三):with 语句、yield from、虚拟环境

PEP 343 – The “with” Statement,with 语句 这玩意让我想起了Kotlin和Rust的问号标识符,都是将try-catch进行包装,避免出现太多重复代码(Go:我假设你不是在内涵我) 用法 最常见的用法就是对文件的操作&a…

SymAgent(神经符号自学习Agent)

来自:SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs 目录相关工作引理符号规则任务描述方法Agent-PlannerAgent-ExecutorAction空间交互过程自学习在线探索离线迭代策略更新相关工作 相关工作-语义解析…