python入门基础篇(一)
基础篇
- Python基础
- 安装与配置Python环境
- 理解Python解释器
- 第一个Python程序:"Hello, World!"
- 基础语法
- 注释与文档字符串
- 变量与数据类型
- 数字类型:整数、浮点数、复数
- 字符串
- 布尔值
- None值
- 运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 位运算符
Python是一种高级编程语言,因其简洁易读的语法和强大的标准库而广受欢迎。Python广泛应用于Web开发、数据分析、人工智能、科学计算、自动化等领域。它具有以下特点:
- 解释型语言:无需编译,直接运行代码。
- 动态类型:变量无需声明类型,类型在运行时确定。
- 强大的标准库:内置了大量实用的模块和包。
- 面向对象:支持面向对象编程,也支持函数式编程。
- 跨平台:代码可在多种操作系统上运行。
按编译方式分类,可以将编程语言分为编译型语言、解释型语言和混合型语言。每种编译方式有其独特的特性和适用场景。
编译型语言
定义:编译型语言在运行之前需要通过编译器将源代码转换为机器码(或中间代码),然后运行生成的可执行文件。
特点:
- 性能高:由于编译后生成的是直接可以在机器上执行的代码,运行速度通常较快。
- 错误检查:编译过程会进行语法和类型检查,能够在编译阶段发现大部分错误。
- 生成可执行文件:编译后会生成独立的可执行文件,不需要依赖编译器或解释器。
例子:
- C:编译成机器码,适用于系统编程和嵌入式开发。
- C++:编译成机器码,适用于高性能应用和游戏开发。
- Go:编译成机器码,适用于云计算和微服务。
- Rust:编译成机器码,注重内存安全和并发性。
解释型语言
定义:解释型语言在运行时由解释器逐行解释执行,不需要事先编译成机器码。
特点:
- 便于调试:由于代码是逐行执行的,调试时可以立即看到每一行代码的执行效果。
- 平台无关性:源代码可以在任何支持解释器的平台上运行。
- 动态性:通常支持动态类型系统,类型检查在运行时进行。
例子:
- Python:广泛应用于数据分析、Web开发和自动化任务。
- JavaScript:主要用于Web前端开发。
- Ruby:常用于Web开发,尤其是Ruby on Rails框架。
- PHP:主要用于服务器端Web开发。
混合型语言
定义:混合型语言结合了编译型和解释型语言的特点,通常先将源代码编译成中间代码(如字节码),然后由虚拟机解释执行中间代码。
特点:
- 跨平台:通过虚拟机实现跨平台运行,编译后的中间代码可以在不同平台上的虚拟机中执行。
- 优化与性能:虚拟机可以进行运行时优化,提升执行效率。
- 便携性:中间代码与平台无关,具有良好的移植性。
例子:
- Java:源代码编译成字节码,由Java虚拟机(JVM)执行,广泛应用于企业级应用开发和Android应用开发。
- C#:源代码编译成中间语言(IL),由.NET运行时(CLR)执行,主要用于Windows应用和Web开发。
- Python(部分实现):如PyPy解释器,将Python代码编译成中间字节码,然后执行。
总结
编译型语言:如C、C++、Go、Rust,通常性能高,适合高性能和系统级开发。
解释型语言:如Python、JavaScript、Ruby、PHP,调试方便,适合快速开发和动态需求。
混合型语言:如Java、C#,兼具编译和解释的优点,具有跨平台和运行时优化的特点。
注:每种编程语言没有高下强弱之分,重点在于使用场景!
Python基础
安装与配置Python环境
win系统安装python可去官网下载,具体过程此处不做过多描述,网上教程很多。使用pycharm作为集成开发环境,可去官网下载
理解Python解释器
Python解释器是用来执行Python代码的程序。它读取Python源代码文件,将其转换为机器能够理解的字节码,然后在虚拟机上执行。这种过程使得Python成为一种解释型语言。
常见的Python解释器有:
- CPython:最常用、最标准的Python解释器,由Python官方维护。大多数Python代码都是在+ CPython上运行的。
- PyPy:一个高性能的Python解释器,使用JIT(即时编译)技术,可以显著提高代码的运行速度。
- Jython:Python解释器的Java实现,可以将Python代码编译成Java字节码并在JVM上运行。
- IronPython:Python解释器的.NET实现,能够与.NET框架无缝集成。
- MicroPython:精简版的Python解释器,专为嵌入式系统设计,适用于微控制器和小型设备。
第一个Python程序:“Hello, World!”
print 是 Python 中的一个内置函数,用于在控制台输出文本或其他类型的内容。它是 Python 编程中最常用的函数之一,主要用于调试和显示程序的输出
print("Hello World!")
#仪式感
print基本语法
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- *objects:一个或多个要打印的对象。多个对象之间用逗号分隔。
- sep:用于分隔多个对象的字符串,默认为一个空格 ’ '。
- end:在输出的末尾添加的字符串,默认为换行符 ‘\n’。
- file:输出的目标文件,默认为 sys.stdout,即控制台。
- flush:是否立即将内容输出到文件,默认为 False。
CMD示例;
输出多个对象
PS C:\Users\huhy> python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello", "world", 123)
Hello world 123
自定义分隔符;注意加上换行符,不然如下所示
>>> print("Hello", "world", sep="。;")
Hello。;world
>>>
自定义结束符
>>> print("Hello", end="!!!\n")
Hello!!!
>>> print("Hello", end="!!!")
Hello!!!>>>
输出到文件;在当前目录下创建一个 output.txt 文件,并将 “Hello, world!” 写入其中,这里使用pycharm方便展示
with open('output.txt', 'w') as f:print("Hello, world!", file=f)
使用注意事项
- print 函数可以打印任意类型的对象,包括字符串、数字、列表、字典等
- print 函数会自动调用每个对象的 str 方法来获取其字符串表示
- 当打印多个对象时,它们之间会自动插入 sep 指定的分隔符,默认是一个空格
基础语法
Python使用缩进来表示代码块,不同的缩进级别表示不同的逻辑层次,常见的缩进方式有4个空格或者一个Tab
注释与文档字符串
单行注释:用于解释代码,编译器会忽略它们
# 这是一个注释
多行注释:使用三个单引号 ‘’’ 或三个双引号 “”"
'''
这是一个多行注释
可以跨越多行
'''
内嵌注释:放在代码行尾
x = 5 # 这是一个内嵌注释
文档字符串:用于为模块、类、函数和方法编写文档,可以使用三个单引号 ‘’’ 或三个双引号 “”"
def example():"""这是一个文档字符串示例"""passprint(example.__doc__)
变量与数据类型
变量是存储数据的命名位置,不需要显式声明。赋值语句会创建变量
-
变量命名规则
- 变量名只能包含字母(a-z, A-Z)、数字(0-9)和下划线_
- 变量名不能以数字开头
- Python中的变量名是大小写敏感的。即,variable 和 Variable 是两个不同的变量
- 不要使用Python的保留字和关键字作为变量名。Python有一些内置的保留字,如 if, else, while, for, def, class, return 等,这些保留字具有特殊意义,不能用作变量名
-
数据类型
- 数字类型:包括整数、浮点数和复数。
- 字符串:字符的序列。
- 布尔值:True 或 False。
- None:表示“没有值”或“空值”。
数字类型:整数、浮点数、复数
整数(int);没有小数部分的数字
x = 10
浮点数(float);有小数部分的数字
y = 3.14
复数(complex);有实部和虚部的数字
z = 2 + 3j
字符串
字符串是字符的序列,可以使用单引号、双引号或三引号括起来
s1 = 'Hello'
s2 = "World"
s3 = '''This is a
multiline string'''
字符串支持多种操作,如拼接、重复、切片等
# 拼接
s = s1 + " " + s2 # "Hello World"# 重复
s = s1 * 3 # "HelloHelloHello"# 切片
s = s1[1:3] # "el"
布尔值
布尔值只有两个:True 和 False,用于逻辑操作
a = True
b = False
None值
None是一个特殊的常量,表示“没有值”或“空值”
n = None
运算符
运算符用于执行操作。常见的运算符有;
算术运算符
- 算术运算符
- 加法 +
- 减法 -
- 乘法 *
- 除法 /
- 取余 %
- 幂运算 **
- 取整除 //
x = 5
y = 2
print(x + y) # 7
print(x - y) # 3
print(x * y) # 10
print(x / y) # 2.5
print(x % y) # 1
print(x ** y) # 25
print(x // y) # 2
比较运算符
- 比较运算符
- 等于 ==
- 不等于 !=
- 大于 >
- 小于 <
- 大于等于 >=
- 小于等于 <=
x = 5
y = 2
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
print(x >= y) # True
print(x <= y) # False
逻辑运算符
- 逻辑运算符
- 与 and
- 或 or
- 非 not
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
赋值运算符
- 赋值运算符
- 等于 =
- 加等于 +=
- 减等于 -=
- 乘等于 *=
- 除等于 /=
- 取余等于 %=
- 幂等于 **=
- 取整除等于 //=
x = 5
x += 2 # x = x + 2
x -= 1 # x = x - 1
x *= 3 # x = x * 3
x /= 2 # x = x / 2
x %= 3 # x = x % 3
x **= 2 # x = x ** 2
x //= 2 # x = x // 2
位运算符
按位运算符是对二进制位进行操作的运算符。它们主要用于低级别的编程和操作硬件或优化性能
- 位运算符
- 按位与 &;按位与操作会将两个数的每个位进行比较,只有当两个数的对应位都为1时,结果位才为1,否则为0
- 按位或 |;按位或操作会将两个数的每个位进行比较,只要两个数的对应位有一个为1,结果位就为1,否则为0
- 按位异或 ^;按位异或操作会将两个数的每个位进行比较,当两个数的对应位不同(一个为1,一个为0)时,结果位为1,否则为0
- 按位取反 ~;按位取反操作会将数的每个位都进行取反,即0变1,1变0。这实际上等同于对数值取反并减1(因为Python使用二进制补码表示负数)
- 左移 <<;左移操作会将数的二进制表示左移指定的位数,右边用0填充,每左移一位相当于乘以2
- 右移 >>;右移操作会将数的二进制表示右移指定的位数,左边用符号位(正数用0,负数用1)填充,每右移一位相当于除以2(取整)
x = 5 #二进制 0101
y = 3 #二进制 0011
print(x & y) # 0001 => 1
print(x | y) # 0111 => 7
print(x ^ y) # 0110 => 6
print(~x) # 1010 => -6
print(x << 1) # 1010 => 10
print(x >> 1) # 0010 => 2
下一篇数据结构
相关文章:

python入门基础篇(一)
基础篇 Python基础安装与配置Python环境理解Python解释器第一个Python程序:"Hello, World!" 基础语法注释与文档字符串变量与数据类型数字类型:整数、浮点数、复数字符串布尔值None值 运算符算术运算符比较运算符逻辑运算符赋值运算符位运算符…...

windows下在线预览服务kkFileView4.4.0问题记录
前几天找到一个开源项目:kkFileView,感觉可能以后可能会用到,所以尝试了下。 通过git下载下来,版本是4.4.0,通过idea打开项目,发现老是无法找到组件aspose-cad,版本是23.9. 找了好多文章&#x…...
Java:通过反射获取class类的属性
有如下一个普通类,我想获取他的所有属性值 package com.demo.bean;import lombok.Data;import java.util.List;Data public class UserBean {private String name;private Integer age;private List<String> tags; }可以通过反射的方式获取属性值 package c…...

07.FreeRTOS列表与列表项
文章目录 07. FreeRTOS列表与列表项1. 列表和列表项的简介2. 列表相关API函数3. 代码验证 07. FreeRTOS列表与列表项 1. 列表和列表项的简介 列表的定义: typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */volatile UBaseType_t uxN…...
餐饮业油烟净化器安装势在必行,切勿侥幸
我最近分析了餐饮市场的油烟净化器等产品报告,解决了餐饮业厨房油腻的难题,更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着环保法规的日益严格和公众环保意识的提升,餐饮业油烟排放问题成为社会关注的焦点。油烟不仅影响环境质量&am…...

SpringBoot集成阿里百炼大模型 原子的学习日记Day01
文章目录 概要下一章SpringBoot集成阿里百炼大模型(多轮对话) 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1,选择大模型以及获取自己的api-key(前面还有一步开通服务就没有展示啦!)2,…...

【网络编程】网络原理(一)
系列文章目录 1、 初识网络 2、网络编程的基础使用(一) 文章目录 系列文章目录前言一、端口号的使用二、UDP报文学习1.报文格式2.MD5算法 总结 前言 在前文中,主要对UDP和TCP协议有了简单的了解,而这两种协议是负责传输层的内容…...

鲁班上门维修安装系统源码开发之功能模式
鲁班上门维修安装系统在当今的趋势呈现出显著的增长与创新。随着物联网、智能家居的普及,以及消费者对便捷、高效生活方式的追求,鲁班上门维修安装系统凭借其多渠道预约、智能派单、在线支付与费用明细透明等优势,赢得了市场的广泛认可。 …...
图数据处理的新时代:阿里FraphCompute与蚂蚁金服TuGraph对比综述
目录 前言 阿里FraphCompute与蚂蚁金服TuGraph的主要特性和功能的比较: 阿里FraphCompute与蚂蚁金服TuGraph在不同应用场景分析对比: 阿里FraphCompute与蚂蚁金服TuGraph未来趋势的对比: FraphCompute与TuGraph详解 缺点劣势深入比较 前言…...

InnoDB引擎下SQL的执行流程
SQL执行流程 连接器 客户端连接驱动与mysql连接池连接 半双工通信传入客户端的sql 查询缓存(8.0之后没有) 删除原因 如果每次查询条件不同导致命中率低没有命中缓存 创建新缓存在创建缓存的时候会添加表级锁缓存更新需要批量失效 sql解析器 对传入的sql 词法分析 分解成各种t…...
Java小白入门到实战应用教程-重写和重载
引言 在上一节中我们学习了面向对象中的继承,然后在那一节中我们提到了一个知识点叫做:重写。 通过上节的代码样例我们也观察到了,重写是发生在子类和父类的这种继承关系中。 继承的特点就是提取所有子类共有的属性和方法,但是…...

微力同步如何安装使用并使用内网穿透配置公网地址远程访问
文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 内网穿透工具安装 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸,虽然谈不上多么新颖,但是其广…...
nginx负载聚能
一、负载均衡 早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求, 但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复 杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服…...

Python进阶 JSON数据,pyecharts制图
目录 json数据格式的转换 什么是json json本质 注意 pyecharts快速入门 画一个最简单的折线图 使用全局配置选项优化折线图 总结 json数据格式的转换 什么是json 一种轻量级的数据交换格式,可以按json指定的格式去组织和封装数据 json本质 带有特定格式的…...

polyglot,一个有趣的 Python 库!
更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - polyglot。 Github地址:https://github.com/aboSamoor/polyglot 在处理多语言文本时,解析和翻译不同语言的文本数据是一个常见…...

4.3.语言模型
语言模型 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , ⋯ , x T x_1,x_2,\cdots,x_T x1,x2,⋯,xT。 于是, x T x_T xT( 1 ≤ t ≤ T 1\le t\le T 1≤t≤T) 可以被认为是文本序列在时间步 t t t处的观测或标签。 在给定这样的文本…...
(学习总结10)C++类和对象1
C类和对象1 一、类的定义1.类定义格式2.访问限定符3. 类域 二、实例化1.实例化概念2.对象大小 三、this指针四、C和C语言实现Stack对比 以下代码环境在 VS2022。 一、类的定义 1.类定义格式 class 为定义类的关键字,Stack 为类的名字, { } 中为类的主体…...
进击大数据系列(一):Hadoop 基本概念与生态介绍
进击大数据系列(一):Hadoop 基本概念与生态介绍-腾讯云开发者社区-腾讯云 Hadoop 简介-CSDN博客 hadoop-common-3.2.1.jar hadoop-mapreduce-client-core-3.2.1.jar hadoop-hdfs-3.2.1.jar hadoop-core 依赖之间关系...

评价类算法--模糊综合评价算法模型
一.概述 二.经典集合和模糊集合的基本概念 经常采用向量表示法来进行表示 三.隶属函数的三种确定方法 其中,梯形分布用得最多 四.应用:模糊综合评价 对应一个指定的评语: 选择一个方案:...
哪些系统需要按照等保2.0进行定级?
等保2.0适用的系统类型 根据等保2.0的要求,需要进行定级的系统主要包括但不限于以下几类: 基础信息网络:包括互联网、内部网络、虚拟专用网络等。云计算平台/系统:涵盖公有云、私有云、混合云等多种部署模式的云服务平台。大数据…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...