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

【0基础入门Python笔记】一、python 之基础语法、基础数据类型、复合数据类型及基本操作

一、python 之基础语法、基础数据类型、复合数据类型及基本操作

    • 基础语法规则
    • 基础数据类型
      • 数字类型(Numbers)
      • 字符串类型(String)
      • 布尔类型(Boolean)
    • 复合数据类型
      • List(列表)
      • Tuple(元组)
      • Dictionary(字典)
    • 补充知识
      • 索引概念
      • 切片

基础语法规则

  • 缩进规则

Python 以缩进来区分代码块,不同的缩进来区分代码块/代码层级。同一代码块必须有相同的缩进,同时缩进不推荐空格和 Tab 字符混用。

# 行前面加入#为行注释
a = 1
b = 2

以上代码为同一个层级代码,具有相同的缩进,我愿称之为一级代码块

由一级代码块进入二级,必须以冒号(:)开始且需要时定义方法、对象或判断、循环条件等

# 一级代码块
a = 1
b = 2
#判断条件,:号收尾
if a == 1 :#二级代码块print(b)
  • 执行规则

基础部分,认识python从上到下依次执行就可以了
上面代码执行顺序:
在这里插入图片描述

基础数据类型

python的变量定义不需要声名数据类型,但是变量内部存在类型区分。其中基础数据类型分为

  • 数字类型(Numbers)
  • 字符串类型(String)
  • 尔类型(Boolean)

数字类型(Numbers)

数字类型:整数(int)、长整型(long) 、浮点数(float)、复数(complex)
入门级知道:整数(int)、浮点数(float)即可,不需要记那么多,用到了再说喽

# 整数
a = 1# 浮点数理解成小数即可
b = 1.1

字符串类型(String)

字符串类型用来表示文本信息,在Python中使用一对单引号 ’ ’ 或双引号 " " 来创建字符串。

# 单引号
a= 'shiyuncode.com'# 双引号
b= "Hello, world!"# 获取第一个字符 "H"
b1 = b[0] # 字符串切片,获取索引2到3的子字符串 "ll" 
b23 = b[2:4] 

布尔类型(Boolean)

布尔类型,布尔类型意思真/假,python对应的真就是 True 表示,假就是False表示。布尔类型通常用于条件判断和逻辑运算。

# 布尔类型
a = Trueb = False

复合数据类型

Python的符合数据类型,我愿理解为一个变量可以存储多个基础数据,其中包括

  • 列表(List)
  • 元组(Tuple)
  • 字典(Dictionary)

List(列表)

列表是一种有序的集合,可以存储多个元素,每个元素可以是不同的数据类型。列表用方括号 [ ] 表示,元素之间用逗号分隔。

# 定义一个水果列表
fruits = ['apple', 'banana', 'orange', 'grape']# 访问列表元素
first_fruit = fruits[0]  # 获取第一个元素 "apple"# 列表的切片
some_fruits = fruits[1:3]  # 获取索引1到2的子列表 ['banana', 'orange']# 列表的修改和添加
fruits[2] = 'kiwi'  # 修改列表中的元素
fruits.append('pear')  # 添加元素到列表末尾

Tuple(元组)

元组和列表类似,也是一种有序的集合,但与列表不同的是,元组的元素一旦创建就不能被修改,相当于不可变的列表。元组用圆括号 ( ) 表示。

# 元组的创建
tp = (1, 2)# 访问元组元素
x = tp[0]  # 获取第一个元素 1

Dictionary(字典)

字典是一种无序的键-值对集合,用花括号 { } 表示。每个键对应一个值,键和值之间用冒号分隔。这里数据结构和Json的格式一致诶。

# 字典的创建
person = {'name': 'shiyuncode.com','age': 30
}# 访问字典元素
person_name = person['name']  # 获取键'name'对应的值 "shiyuncode.com"# 字典的修改
person['age'] = 31  # 修改键'age'对应的值# 字典的添加
person['gender'] = 'female'  # 添加新的键值对

补充知识

索引概念

索引的起点是0,也就是第1个,对应的索引是0,第2个对应的索引是1,以此类推。

  • 字符串索引图示
    在这里插入图片描述- 列表索引图示
    在这里插入图片描述其它带有索引的类型类似

切片

切片从序列(如列表、元组、字符串等)中获取子序列的操作。通过指定起始索引和结束索引来获取序列的一部分,返回一个新的序列。切片在Python中非常常用,可以用于提取、复制和操作序列中的一段数据。

my_str = '012345'
my_list = [0, 1, 2, 3, 4, 5]# 获取索引1到3的子数据'123'/[1, 2, 3]
sub_str = my_str[1:4]
sub_list = my_list[1:4]# 获取索引0到2的子数据'01'/[0, 1]
sub_str2 = my_str[:3]
sub_list2 = my_list[:3]# 获取索引3到末尾的子数据'345'/[3, 4, 5]
sub_str3 = my_str[3:]
sub_list3 = my_list[3:]# 获取完整的副本'0123456'/[0, 1, 2, 3, 4, 5]
full_copy_str = my_str[:]
full_copy_list = my_list[:]

这里我们可以看到,如果 : 前面不写则表示从头开始,如果后面不写则表示一直到最后。

相关文章:

【0基础入门Python笔记】一、python 之基础语法、基础数据类型、复合数据类型及基本操作

一、python 之基础语法、基础数据类型、复合数据类型及基本操作 基础语法规则基础数据类型数字类型(Numbers)字符串类型(String)布尔类型(Boolean) 复合数据类型List(列表)Tuple&…...

2023-08-18力扣每日一题

链接: 1388. 3n 块披萨 题意: 一个长度3n的环,选n次数字,每次选完以后相邻的数字会消失,求选取结果最大值 解: 这波是~~(ctrl)CV工程师了~~ 核心思想是选取n个不相邻的元素一定…...

mac M1安装opencv方法及类型报错解决

安装opencv: pip install opencv-python pip install --user opencv-contrib-python pip install opencv-python 4.5.2.54 numpy 1.25.2 安装过程中报错如下: python-类型错误:“numpy._DTypeMeta”对象不可下标 TypeError: ‘numpy._DTypeMeta’ obje…...

Screen终端管理工具

文章目录 Screen终端管理工具背景nohup介绍screen介绍安装screen查看终端新建终端退出终端进入终端删除会话帮助命令 总结 Screen终端管理工具 背景 对大佬只有膜拜,可能永远无法超越,在工作交接中大佬用到了一个screen启动了程序,这是什么…...

【python自动化办公】PysimpleGUI官网案例全部项目代码文件及运行截图

PysimpleGUI官网案例全部项目代码文件及运行截图 0 项目文件整体预览窗口1 pysimpleGUI下面所有元素2 pysimpleGUI下面所有元素示例3 加载多GIF图片4 使用PIL进行动态图片加载5 自动保存关闭时窗口位置信息6 绘制柱状图7 图像编码18 图像编码29 无边界窗口10 设置图片按钮11 按…...

9.处理this和防抖、节流

9.1 this指向-普通函数 普通函数的调用方式决定了this的值,即【谁调用this的值 指向谁】 普通函数没有明确调用者时this值为window,严格模式下没有调用者时this的值为undefined 9.2 this指向-箭头函数 箭头函数中的this与普通函数完全不同&#xff0…...

Spark操作Hive表幂等性探索

前言 旁边的实习生一边敲着键盘一边很不开心的说:做数据开发真麻烦,数据bug排查太繁琐了,我今天数据跑的有问题,等我处理完问题重新跑了代码,发现报表的数据很多重复,准备全部删了重新跑。 我:你的数据操作具备幂等性吗? 实习生:啥是幂等性?数仓中的表还要考虑幂等…...

【可变形卷积3】 DCNv2 安装

使用RTM3D 代码,CenterTrack代码需要用DCN 1、安装DCNv2 (1)github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2",但是该版本源码不支持PyTorch1.7,如果使其支持PyTorch1.7需要做以下修改…...

归并排序 与 计数排序

目录 1.归并排序 1.1 递归实现归并排序: 1.2 非递归实现归并排序 1.3 归并排序的特性总结: 1.4 外部排序 2.计数排序 2.1 操作步骤: 2.2 计数排序的特性总结: 3. 7种常见比较排序比较 1.归并排序 基本思想: 归并排序(MERGE-SORT)是建立在归并操作上的一种…...

机器学习之逻辑回归

import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression # 获得数据 names[Sample code number,Clump Thickness,Uniformity…...

操作符详解上(非常详细)

目录 二进制介绍二进制2进制转10进制10进制转2进制数字2进制转8进制和16进制2进制转8进制2进制转16进制 原码、反码、补码移位操作符左移操作符右移操作符 位操作符:&、|、^逗号表达式 二进制介绍 在初学计算机时我们常常会听到2进制、8进制、10进制、16进制……...

React 高阶组件(HOC)

React 高阶组件(HOC) 高阶组件不是 React API 的一部分,而是一种用来复用组件逻辑而衍生出来的一种技术。 什么是高阶组件 高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。基本上,这是从 React 的组成…...

【NepCTF2023】复现

文章目录 【NepCTF2023】复现MISC与AI共舞的哈夫曼codesc语言获取环境变量 小叮弹钢琴陌生的语言你也喜欢三月七么Ez_BASIC_IImisc参考 WEBez_java_checkinPost Crad For You独步天下配置环境独步天下-镜花水月环境变量提权 独步天下-破除虚妄总结 独步天下-破除试炼_加冕成王知…...

大文件切片上传

创建组件&#xff1a;创建一个组件用于处理文件上传&#xff0c;命名为Upload.vue。 <template><div><input type"file" change"handleFileChange" /><button click"startUpload">开始上传</button></div> …...

ubuntu切换python版本

在没有安装类似anoconda的管理工具的时候&#xff0c;我们常常会被Ubuntu下的Python版本切换问题所头疼。 可以使用update-alternatives工具进行python版本的任意切换 当使用update-alternatives工具来切换Ubuntu系统上的Python版本时&#xff0c;您实际上是在系统范围内选择…...

docker 安装 elasticsearch、kibana 7.4.2

切换root 用户 su root 拉起镜像 docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2 #1、创建Elasticsearch配置文件夹 mkdir -p /mydata/elasticsearch/config ​ #2、创建Elasticsearch数据文件夹 mkdir -p /mydata/elasticsearch/data #3、创建Elasticsearch插件…...

【es6】函数参数设置默认值

1、es6之前的函数参数默认值写法 1.1、使用短路或||的写法 当y为空时&#xff0c;y判断为false &#xff0c;走||右边的&#xff0c;所以y world;当y不为空时&#xff0c;y判断为true&#xff0c;不需要再运行||右边的&#xff0c;所以 y y function log(x, y) {y y || W…...

Pytest和Unittest测试框架的区别?

如何区分这两者&#xff0c;很简单unittest作为官方的测试框架&#xff0c;在测试方面更加基础&#xff0c;并且可以再次基础上进行二次开发&#xff0c;同时在用法上格式会更加复杂&#xff1b;而pytest框架作为第三方框架&#xff0c;方便的地方就在于使用更加灵活&#xff0…...

C#基础知识(一)

一、C#程序结构 《1》命名空间的声明&#xff08;namespace declaration&#xff09; 《2》一个class 《3》class方法 《4》class属性 《5》一个main方法 《6》语句&#xff08;statements&#xff09;&表达式&#xff08;Expressions&#xff09; 《7》注释 注&#xff1a…...

我还不知道?Android组件化插件化模块化

Android组件化、插件化和模块化是针对Android应用程序开发的一种架构设计思想和开发方式。 组件化&#xff08;Componentization&#xff09;&#xff1a; 组件化是将一个大型的Android应用程序拆分成多个独立的组件&#xff08;Module&#xff09;&#xff0c;每个组件可以独…...

新手必看:Qwen2.5-VL-7B图文对话模型部署与使用全攻略

新手必看&#xff1a;Qwen2.5-VL-7B图文对话模型部署与使用全攻略 1. 环境准备与快速部署 1.1 镜像简介 Qwen2.5-VL-7B-Instruct-GPTQ是基于Qwen2.5-VL-7B-Instruct模型的GPTQ量化版本&#xff0c;专门用于图文对话任务。这个镜像已经预装了vllm推理框架和chainlit前端界面&…...

高数 | 【极限运算陷阱】破解未定式与直接代入的边界条件

1. 极限运算中的未定式&#xff1a;为什么不能直接代入&#xff1f; 第一次接触极限运算时&#xff0c;很多同学都会犯一个典型错误——看到x趋近于某个值&#xff0c;就直接把这个值代入函数计算。我当年学高数时也踩过这个坑&#xff0c;直到作业本上连续出现三个大红叉才意识…...

React 转 Vue3 避坑指南:10个思维误区和正确写法

从 React 转来的开发者学 Vue3 最容易踩这10个坑&#xff0c;每个坑都附上错误写法和正确解法。前言React 和 Vue3 都是现代前端框架&#xff0c;但思维模型差异不小。很多 React 开发者转 Vue3 时&#xff0c;习惯性地用 React 思维写 Vue&#xff0c;导致各种奇怪的 bug。本文…...

【大语言模型基础(2)】自注意力与多头机制:QKV、缩放与因果掩码

文章目录摘要1. 为什么需要自注意力2. Q、K、V 到底是什么一个具体例子3. Attention 公式在干什么第一步&#xff1a;计算相似度第二步&#xff1a;做缩放第三步&#xff1a;softmax\mathrm{softmax}softmax 归一化第四步&#xff1a;对 ValueValueValue 做加权平均4. 为什么 G…...

数据库课程设计实战:构建文本分割结果的管理系统

数据库课程设计实战&#xff1a;构建文本分割结果的管理系统 每次做数据库课程设计&#xff0c;你是不是也头疼&#xff1f;选题要么太简单&#xff0c;像学生信息管理&#xff0c;做出来感觉没深度&#xff1b;要么太复杂&#xff0c;比如电商系统&#xff0c;光表关系就画晕…...

C++ 模板类型推导的底层实现

C模板类型推导的底层实现 C的模板类型推导是现代C编程中不可或缺的核心机制&#xff0c;它使得泛型编程变得灵活而高效。从简单的函数模板到复杂的元编程&#xff0c;类型推导在编译期间自动推断模板参数&#xff0c;减少了冗余代码。其底层实现机制却鲜为人知。本文将揭开模板…...

3个高效功能让Maccy成为macOS必备剪贴板管理器

3个高效功能让Maccy成为macOS必备剪贴板管理器 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy Maccy是一款专为macOS设计的轻量级剪贴板管理器&#xff0c;能够记录复制历史&#xff0c;让用户轻松…...

别再混着用了!Matplotlib的两种画图接口(plt.plot vs. ax.plot)到底怎么选?

Matplotlib接口选择指南&#xff1a;何时用plt.plot&#xff0c;何时用ax.plot&#xff1f; 在数据可视化领域&#xff0c;Matplotlib无疑是Python生态中最强大的工具之一。但许多用户在使用过程中常常困惑&#xff1a;为什么有的代码用plt.plot()&#xff0c;有的却用ax.plot(…...

本地数据库工具革新:浏览器应用如何3分钟解决SQLite查看难题

本地数据库工具革新&#xff1a;浏览器应用如何3分钟解决SQLite查看难题 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数字化开发的日常工作流中&#xff0c;SQLite数据库文件查看往往成为效率…...

低成本自动化方案:OpenClaw+GLM-4.7-Flash替代Zapier实现跨平台触发

低成本自动化方案&#xff1a;OpenClawGLM-4.7-Flash替代Zapier实现跨平台触发 1. 为什么选择本地AI替代SaaS自动化工具 三年前我开始使用Zapier自动化处理工作流时&#xff0c;每月29美元的订阅费看起来物有所值。但随着任务复杂度增加&#xff0c;去年我的账单悄然涨到了89…...