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

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程序&#xff1a;"Hello, World!" 基础语法注释与文档字符串变量与数据类型数字类型&#xff1a;整数、浮点数、复数字符串布尔值None值 运算符算术运算符比较运算符逻辑运算符赋值运算符位运算符…...

windows下在线预览服务kkFileView4.4.0问题记录

前几天找到一个开源项目&#xff1a;kkFileView&#xff0c;感觉可能以后可能会用到&#xff0c;所以尝试了下。 通过git下载下来&#xff0c;版本是4.4.0&#xff0c;通过idea打开项目&#xff0c;发现老是无法找到组件aspose-cad&#xff0c;版本是23.9. 找了好多文章&#x…...

Java:通过反射获取class类的属性

有如下一个普通类&#xff0c;我想获取他的所有属性值 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. 列表和列表项的简介 列表的定义&#xff1a; typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */volatile UBaseType_t uxN…...

餐饮业油烟净化器安装势在必行,切勿侥幸

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着环保法规的日益严格和公众环保意识的提升&#xff0c;餐饮业油烟排放问题成为社会关注的焦点。油烟不仅影响环境质量&am…...

SpringBoot集成阿里百炼大模型 原子的学习日记Day01

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

【网络编程】网络原理(一)

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

鲁班上门维修安装系统源码开发之功能模式

鲁班上门维修安装系统在当今的趋势呈现出显著的增长与创新。随着物联网、智能家居的普及&#xff0c;以及消费者对便捷、高效生活方式的追求&#xff0c;鲁班上门维修安装系统凭借其多渠道预约、智能派单、在线支付与费用明细透明等优势&#xff0c;赢得了市场的广泛认可。 …...

图数据处理的新时代:阿里FraphCompute与蚂蚁金服TuGraph对比综述

目录 前言 阿里FraphCompute与蚂蚁金服TuGraph的主要特性和功能的比较&#xff1a; 阿里FraphCompute与蚂蚁金服TuGraph在不同应用场景分析对比&#xff1a; 阿里FraphCompute与蚂蚁金服TuGraph未来趋势的对比&#xff1a; FraphCompute与TuGraph详解 缺点劣势深入比较 前言…...

InnoDB引擎下SQL的执行流程

SQL执行流程 连接器 客户端连接驱动与mysql连接池连接 半双工通信传入客户端的sql 查询缓存(8.0之后没有) 删除原因 如果每次查询条件不同导致命中率低没有命中缓存 创建新缓存在创建缓存的时候会添加表级锁缓存更新需要批量失效 sql解析器 对传入的sql 词法分析 分解成各种t…...

Java小白入门到实战应用教程-重写和重载

引言 在上一节中我们学习了面向对象中的继承&#xff0c;然后在那一节中我们提到了一个知识点叫做&#xff1a;重写。 通过上节的代码样例我们也观察到了&#xff0c;重写是发生在子类和父类的这种继承关系中。 继承的特点就是提取所有子类共有的属性和方法&#xff0c;但是…...

微力同步如何安装使用并使用内网穿透配置公网地址远程访问

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 内网穿透工具安装 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸&#xff0c;虽然谈不上多么新颖&#xff0c;但是其广…...

nginx负载聚能

一、负载均衡 早期的网站流量和业务功能都比较简单&#xff0c;单台服务器足以满足基本的需求&#xff0c; 但是随着互联网的发展&#xff0c;业务流量越来越大并且业务逻辑也跟着越来越复 杂&#xff0c;单台服务器的性能及单点故障问题就凸显出来了&#xff0c;因此需要多台服…...

Python进阶 JSON数据,pyecharts制图

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

polyglot,一个有趣的 Python 库!

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

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​&#xff08; 1 ≤ t ≤ T 1\le t\le T 1≤t≤T&#xff09; 可以被认为是文本序列在时间步 t t t处的观测或标签。 在给定这样的文本…...

(学习总结10)C++类和对象1

C类和对象1 一、类的定义1.类定义格式2.访问限定符3. 类域 二、实例化1.实例化概念2.对象大小 三、this指针四、C和C语言实现Stack对比 以下代码环境在 VS2022。 一、类的定义 1.类定义格式 class 为定义类的关键字&#xff0c;Stack 为类的名字&#xff0c; { } 中为类的主体…...

进击大数据系列(一):Hadoop 基本概念与生态介绍

进击大数据系列&#xff08;一&#xff09;&#xff1a;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的要求&#xff0c;需要进行定级的系统主要包括但不限于以下几类&#xff1a; 基础信息网络&#xff1a;包括互联网、内部网络、虚拟专用网络等。云计算平台/系统&#xff1a;涵盖公有云、私有云、混合云等多种部署模式的云服务平台。大数据…...

自注意力和位置编码

一、自注意力 1、给定一个由词元组成的输入序列x1,…,xn&#xff0c; 其中任意xi∈R^d&#xff08;1≤i≤n&#xff09;。 该序列的自注意力输出为一个长度相同的序列 y1,…,yn&#xff0c;其中&#xff1a; 2、自注意力池化层将xi当作key&#xff0c;value&#xff0c;query来…...

“文件夹提示无法访问?高效数据恢复策略全解析“

一、现象解析&#xff1a;文件夹为何提示无法访问&#xff1f; 在日常使用电脑的过程中&#xff0c;不少用户可能会突然遇到文件夹提示“无法访问”的尴尬情况。这一提示不仅阻断了对重要文件的即时访问&#xff0c;还可能预示着数据丢失的风险。造成这一现象的原因多种多样&a…...

结构开发笔记(一):外壳IP防水等级与IP防水铝壳体初步选型

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140928101 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

WPF Datagrid控件,获取某一个单元格中的控件

在WPF应用程序中&#xff0c;比如需要获取特定 DataGrid 单元格中的 TextBlock 控件&#xff0c;可以通过访问 DataGridRow 和 DataGridCell 对象。以下是一个例子&#xff0c;展示如何获取 DataGrid 的第二行第一列中的 TextBlock 控件&#xff0c;并修改其属性。 1. 在XAML中…...

P10838 『FLA - I』庭中有奇树

前言 本题解较为基础&#xff0c;推导如何得出二分解题思路。 题目大意 给出无根带权树&#xff0c;双方采取最佳策略&#xff0c;求节点S->T的最短路。 有两种操作&#xff1a; 我方至多可以使用一次传送&#xff0c;花费k元从a传送到b&#xff08;ab不能相邻&#xf…...

WebRTC简介

WebRTC简介 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一项开源的实时通信技术&#xff0c;它允许网页浏览器进行实时语音、视频和数据共享通信&#xff0c;而无需安装额外的插件或应用程序。WebRTC的出现极大地简化了实时通信的开发和部署过程&#xff0c…...

一套直播系统带商城源码 附搭建教程

本站没搭建测试过&#xff0c;有兴趣的自己折腾了&#xff0c;内含教程&#xff01; 功能介绍&#xff1a; 礼物系统&#xff1a;普通礼物、豪华礼物、热门礼物、守护礼物、幸运礼物 提现方式&#xff1a;统一平台提现日期及方式&#xff0c;方便用户执行充值提现操作 连麦…...

Netty 总结与补充(十)

简单介绍一下 Netty&#xff1f;你为什么会用到Netty&#xff1f;说说你对Netty的认识&#xff1f;为什么选用Netty来做通信框架&#xff1f; Netty 是一个高性能、异步事件驱动的 NIO 框架&#xff0c;它提供了对 TCP、UDP 和文件传输的支持&#xff0c;作为一个异步 NIO 框架…...

循环实现异步变同步的问题

一、背景 在开发中遇到在循环中调用异步接口的问题&#xff0c;导致页面渲染完成时&#xff0c;没有展示接口返回后拼接的数组数据。二、问题 在代码中使用了map进行循环&#xff0c;导致调用接口的时候处于异步。this.form.list.map(async el>{el.fileList [];if(el.pic…...

测试GPT4o分析巴黎奥运会奖牌数据

使用GPT4o快速调用python代码&#xff0c;生成数据图表 测试GPT4o分析巴黎奥运会奖牌数据 测试GPT4o分析巴黎奥运会奖牌数据 1.首先我们让他给我们生成下当前奥运奖牌数 2.然后我们直接让GPT帮我们运行python代码&#xff0c;并生成奥运会奖牌图表 3.我们还可以让他帮我们…...