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

下一篇数据结构

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

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

相关文章

Python 爬虫项目实战(一):爬取某云热歌榜歌曲

前言 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也称为网页蜘蛛&#xff08;Web Spider&#xff09;或网页机器人&#xff08;Web Bot&#xff09;&#xff0c;是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓…

《机器人SLAM导航核心技术与实战》第1季:第8章_激光SLAM系统

视频讲解 【第1季】8.第8章_激光SLAM系统-视频讲解【第1季】8.1.第8章_激光SLAM系统_Gmapping算法-视频讲解【第1季】8.2.第8章_激光SLAM系统_Cartographer算法-视频讲解【第1季】8.3.第8章_激光SLAM系统_LOAM算法-视频讲解 第1季&#xff1a;第8章_激光SLAM系统 先 导 课第…

如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据

背景介绍 网页数据的抓取已经成为数据分析、市场调研等领域的重要工具。无论是获取产品价格、用户评论还是其他公开数据&#xff0c;网页抓取技术都能提供极大的帮助。今天&#xff0c;我们将探讨如何使用 PHP Simple HTML DOM Parser 轻松获取网页中的特定数据。PHP Simple H…

佳能R8和索尼6700,个人犹豫买什么。绝大多建议R8!

针对佳能R8和索尼a6700的选择&#xff0c;结合你的需求&#xff0c;我会更倾向于推荐佳能R8。 首先&#xff0c;R8作为一款全画幅相机&#xff0c;在画质上相对APS-C画幅的a6700有一定的优势&#xff0c;特别是在拍摄孩子的日常和特写时&#xff0c;更能够捕捉到细腻的画面和丰…

Unity 预制动态绑定光照贴图遇到变白问题

预制绑定光照贴图&#xff0c;网上解决方案很多&#xff0c;已下是要点&#xff1a; //烘培完场景之后&#xff0c;保存光照贴图信息 void StoreLightmapData() {lightMap.Clear();LightmapData[] lds LightmapSettings.lightmaps;foreach (LightmapData data in lds){Custom…

第1天:Python基础语法(五)

正文&#xff1a; 在之前的文章中&#xff0c;我们已经学习了Python的基本语法集合和集合的一些常用操作。 在本篇文章中&#xff0c;我们将继续学习其他类型 字符串格式化 使用操作符%s来实现 ➢ 几个%s就几个变量 ➢ 超过一个变量时&#xff0c;需要用元组%&#xff08;…

计算机网络(TCP报文段首部格式中序号和确认号)

TCP首部格式中的序号和确认号并不总是同时出现。 TCP首部的序号和确认号是根据TCP通信的不同阶段和目的来决定的。在建立连接的过程中&#xff0c;序号用于标识发送数据的起始位置&#xff0c;而确认号用于表示接收方期望接收的下一个数据的起始位置。这两个字段在TCP通信的不同…

Nat Cell Biol文献分享|scRNA-seq+ChIP-seq揭示表观因子KMT2C/D突变三阴性乳腺癌脑转移的新机制

乳腺癌是全球最常见的癌症&#xff0c;也是全球女性癌症相关死亡的主要原因。根据雌激素和孕激素受体以及人类表皮生长因子受体 2 (HER2) 的表达&#xff0c;乳腺癌可分为激素受体阳性、HER2 阳性或三阴性乳腺癌 (TNBC)。在主要亚型中&#xff0c;TNBC 的远处转移风险最高&…

被遗忘的哑终端 —— 键盘键位演变的启发者

注&#xff1a;机翻&#xff0c;未校对。 The Forgotten World of Dumb Terminals 被遗忘的哑终端世界 A quick journey through the lost age of “glass teletypes.” 快速穿越失落的“玻璃电传打字机”时代。 From the earliest days of digital computers, researchers o…

【从零开始一步步学习VSOA开发】URL 资源标识

URL 资源标识 概念 在 VSOA 的世界里&#xff0c;所有的差异化均得到统一&#xff0c;所有的硬件、软件服务均提供统一的资源标签 URL。类似 http://&#xff0c;VSOA 的 URL 以 vsoa:// 开始。下面通过 2 个例子介绍 VSOA 统一资源标识的好处&#xff1a; 匹配规则 URL 标…

Easy DP Problem

https://codeforces.com/gym/102770/problem/E 给一个dp转移式子&#xff0c;求dp[m][k] mr-l1 dp不是玄学吗? 话说给我了一个式子&#xff0c;我直接转不就好了&#xff0c;发现n<1e5&#xff0c;那算了 分析一个小例子发现 前面式子用循环求或者公式&#xff0c;后面…

Unity 资源之 Break Items - Toon VFX破碎物品与卡通硬币动画分享

Unity 特效资源分享 - 破碎物品与卡通硬币动画 一、前言二&#xff0c;资源包内容三、免费获取资源包 一、前言 今天为大家带来一份超级实用的视觉特效资源分享&#xff01;我们精心整理了 6 个令人惊叹的破碎物品效果和 1 个萌趣十足的卡通硬币动画视觉特效&#xff0c;让您的…

传统ERP vs 零代码ERP:企业究竟应当选哪条路?

在大环境变幻莫测的今天&#xff0c;每个企业都像是航行在数字化浪潮中的一艘船&#xff0c;而ERP系统&#xff0c;就像是这艘船的导航系统&#xff0c;帮助企业精准定位、高效航行。 但面对传统ERP与新兴零代码ERP&#xff0c;不少企业家可能会感到迷茫&#xff1a;是该坚守传…

火猫奥运会:西班牙国奥VS摩洛哥国奥预测,进决赛已无悬念

北京时间8月6日,巴黎奥运会男足半决赛西班牙国奥VS摩洛哥国奥的巅峰对决将正式打响。西班牙国奥被外界视为本届奥运会夺金大热门,球队在八强战中横扫日本国奥,已经露出冠军相。要知道日本国奥整体实力并不差,小组赛发挥抢眼。没想到,日本国奥八强战遇到夺金大热门西班牙国奥,竟…

PointNet和PointNet++论文解读

目录 一、导言 二、PointNet介绍 三、PointNet网络结构 1、损失函数 2、正则化 四、PointNet 1、分层次的点集抽象层 五、PointNet网络结构 1、点特征传播 2、分组方法 一、导言 PointNet来自CVPR2017&#xff0c;是最早直接处理点云数据用于计算机视觉的模型&#…

优思学院|质量经理如何开展工作?

如果你本来是一个质量工程师&#xff0c;经过了多年的努力&#xff0c;终于成为质量经理&#xff0c;你或者会很困惑&#xff0c;我到底应该如何开展质量管理的工作呢&#xff1f;质量管理对于任何企业来说都是至关重要的&#xff0c;它不仅决定了产品的合格率和市场竞争力&…

STL中的vector以及简单实现

vector的简单介绍&#xff1a; 头文件&#xff1a; #include<vector> vector是属于STL的一员&#xff0c;虽然vector的英文意思是向量&#xff0c;但是vector就是一个顺序表&#xff1b; 对于vector来说&#xff0c;面对string的设计的复杂和冗余&#xff0c;vector就…

【从零开始一步步学习VSOA开发】创建VSOA的server端

创建VSOA的server端 创建工程 参考 hellovsoa 工程&#xff0c;创建 server 工程&#xff0c;工程源码修改如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #…

【数据结构面试有那些常见问题?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

提升实训效果,智慧校园实验室建设计划解析

在智慧校园解决方案中&#xff0c;实训管理系统的实验室建设计划功能深刻展示了基础设置建设的重要性&#xff0c;它不仅聚焦于教育资源的精准投放&#xff0c;更是教学质量与科研创新的重要推手。这一功能的核心价值&#xff0c;在于运用先进的数字化工具&#xff0c;实现从需…