【第二部分--Python之基础】

一、初识

开发语言:
    高级语言:Python    Java    PHP        C#        Go    Ruby C++ ...         => 字节码
    低级语言:C    汇编                                                                               => 机器码


语言之间的比较:
PHP类:适用于写网页吗,局限性。
Python    Java:既可以写网页,也可以写后台功能。
    — Python 执行效率低,开发效率高。
    — Java 执行效率高,开发效率低。

Python种类:

Cpython

JPython

IronPython

JavaScriptPython

RubyPython

...

PYPY 这是用CPython开发的Python


1、Python的历史

1989年,Python之父Guido van Rossum在阿姆斯特丹为了打发圣诞节的闲暇时间,开发了一门解释型编程语言。国内社区通常将Guido van Rossum简称为“龟叔”,“龟”的发音取自Guido中 “Gui”。

2、Python的特点

Python之所以受到大家的欢迎,是因为它有很多优秀“品质”。
1 简单、易学、免费、开源:Python简单、易学。我们可以自由发布其复制版本,阅读、修改其源代码,将其(部分)用于新软件中。
2 解释型:Python是边解释边执行的,Python解释器会将源代码转换为中间字节码形式,然后将其解释为机器语言并执行。
3 可移植:Python解释器已被移植在许多平台上,Python程序无须经过修改就可以在多个平台上运行。
4 代码规范:Python所采用的强制缩进的方式,使得其代码具有极佳的可读性。
5 面向对象:与C++和Java等相比,Python以强大而简单的方式实现了面向对象编程。
6 胶水语言:标准版本的Python调用C语言,并可以借助C语言的接口驱动调用所有编程语言。
7 丰富的库:Python的标准库种类繁多,可以帮助处理各种工作,我们不需要安装就可以直接使用这些库。
8 动态类型:Python不会检查数据类型,在声明变量时不需要指定数据类型。

编写和运行Python程序主要有两种方式:
1 交互方式;
2 文件方式。

两种方式有什么区别?

交互方式指我们每写-行Python代码,就可以敲回车键来运行代码,在学习Python的基本语法并运行一些简单的程序时,这是不错的选择。

文件方式指先编写好Python代码文件(*.py),然后通过Python指令运行它,如果程序比较复杂,则一般采用文件方式。

3、Python的变量

3.1 标识符

标识符就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
构成标识符的字符均遵循一定的命名规则。

Python3 的字符采用双字节Unicode编码

Python中标识符的命名规则如下。
1 区分大小写:Myname与myname是两个不同的标识符。
2 首字符可以是下画线(_)或字母,但不能是数字。
3 除首字符外的其他字符必须是下画线、字母和数字
4 关键字不能作为标识符。
5 不要使用Python的内置函数作为自己的标识符。

User_Name
_sys_val

3.2 关键字

关键字是由语言本身定义好的有特殊含义的代码元素。

在Python中只有33个关键字,在这33个关键字中,只有 False、None和True的首字母大写,其他关键字全部小写。

3.3 变量

在Python中为一个变量赋值的同时就声明了该变量该变量的数据类型就是赋值数据所属的类型,该变量还可以接收其他类型的数据。

greeting = 'Hello Word'
Student_score = 7.0

我们学习Java和C等编程语言时,将变量声明为一种数据类型后,该变量就不能接收其他类型的数据了。Python却可以,这样不会为我们编程带来麻烦吗?

这种灵活性使得Python变得简单,但也给开发人员带来很多麻烦。我原本想将True赋值给X,却不小心将它赋值给y。由于Python默认所有变量都可以接收不同类型的数据,所以我不容易发现这个错误,也不容易排查,这种Bug会导致之后产生很严重的Bug。

3.4 语句

Python代码是由关键字、标识符、表达式和语句等构成的,语句是代码的重要组成部分。在Python中,一行代码表示一条语句,在一般情况下语句结束时不加分号。示例代码:

greeting = 'Hello Word'

# 语句结束时可以加分号,但不符合Python编程规范
Student_score = 7.0;    

# Python链式赋值语句可以同时给多个变量赋相同的数值
a = b = c = 10

3.5 代码注释

在使用#(井号)时,#位于注释行的开头,#后面有一个空格,接着是注释的内容。代码注释示例如下:
位于行的开头

# coding = utf-8   ## 单行注释

# 这是一个证数变量  ## 单行注释
student_score = 7.0

print(student_score) # 打印y变量  ## 在一条语句的末端注释

代码第1行# coding=utf-8的注释很特殊,它有什么意思吗?

这个注释是告诉Python解释器该文件的编码集是UTF-8,可以避免产生代码中有中文等亚洲文字时无法解释文件的问题该注释语句必须被放在文件的第1行或第2行才能有效。

它还有替代写法:# _*_coding: utf-8 _*_。

3.6 模块

在Python中一个模块就是一个文件,模块是保存代码的最小单位,在模块中可以声明变量、函数、属性和类等Python代码元素。

一个模块可以访问另外一个模块中的代码元素,但是需要导入语句的帮助,导入语句有下面三种形式。

import<模块名>:通过这种方式会导入m2模块的所有代码元素,在访问时需要加前缀“m2.”

from<模块名>import<代码元素>:通过这种方式会导入m2中的x变量,在访问时不需要加前缀“m2.”

from<模块名>import<代码元素>as<代码元素别名>:与②类似,在当前m1模块的代码元素(x变量)与要导入的m2模块的代码元素(x变量)名称有冲突时,可以给要导入的代码元素(m2中的x)一个别名x2

4、Python的数据类型

在Python中所有的数据类型都是类每个数据值都是类的“实例”。在Python中有6种主要的内置数据类型:数字、字符串、列表、元组、集合和字典列表、元组、集合和字典可以容纳多项数据,在本书中把它们统称为容器类型的数据

4.1 数字类型的数据

Python中的数字类型有4种:整数类型、浮点类型、复数类型和布尔类型。需要注意的是,布尔类型也是数字类型,它事实上是整数类型的一种。

4.1.1 整数类型

Python中的整数类型为int类,整数类型的范围可以很大,表示很大的整数,只受所在计算机硬件的限制。

4.1.2 浮点类型

浮点类型主要用来存储小数数值,Python的浮点类型为float类。Python只支持双精度浮点类型,而且是与本机相关的

4.1.3 复数类型 

整数和浮点数(小数)在数学中被统称为实数。与实数对应的是复数,复数在数学中被表示为:a+bi,其中a被称为实部,b被称为虚部,i被称为虚数单位。复数在数学、理论物理学和电气工程等方面应用广泛,例如向量就可以使用复数表示。

4.1.4 复数类型 

Python中的布尔类型为bool类,bool是int的字类,它只有两个值:True和False。

Python中的数据类型转换很灵活任何类型的数据都可以通过bool(函数转换为布尔值,那些被认为"没有的""空的"值会被转换为False,反之被转换为True。

4.1.5 数字类型的相互转换 

很多数字类型的数据都可以被转换为布尔值,Python中的很多数据类型都可以相互转换,但是具体情况比较复杂,本章重点介绍数字类型之间的相互转换。在Python的数字类型中,除复数外,其他三种数字类型如整数、浮点和布尔都可以相互转换,分为隐式类型的转换显式类型的转换

4.1.5.1 隐式类型的转换

数字之间可以进行数学计算,在进行数学计算时若数字类型不同,则会发生隐式类型的转换

 

 

目录

一、初识

1、Python的历史

2、Python的特点

3、Python的变量

3.1 标识符

3.2 关键字

3.3 变量

3.4 语句

3.5 代码注释

3.6 模块

4、Python的数据类型

4.1 数字类型的数据

4.1.1 整数类型

4.1.2 浮点类型

4.1.3 复数类型 

4.1.4 复数类型 

4.1.5 数字类型的相互转换 

4.1.5.1 隐式类型的转换

4.1.5.2 显式类型的转换

4.2 容器类型的数据

4.2.1 序列

4.2.1.1 序列的索引操作

4.2.1.2 加和乘操作

4.2.1.3 切片操作

4.2.1.4 成员测试

4.2.2  列表


4.1.5.2 显式类型的转换

表达式1.0 +1中的整数1被隐式转换为浮点数1.0,但在很多情况下我都希望浮点数1.0被转换为整数1,该怎么办?在这种情况下就需要使用转换函数进行显式转换了。

除复数外,三种数字类型如整数、浮点和布尔都有自己的转换函数,分别是int()、foat()和bool()函数

4.2 容器类型的数据

Python内置的数据类型如序列(列表、元组等)、集合和字典等可以容纳多项数据,我们称它们为容器类型的数据

4.2.1 序列

序列(sequence)是一种可迭代的元素有序的容器类型的数据。

序列包括列表(list)、字符串(str)、元组(tuple)和字节序列(bytes)等。

4.2.1.1 序列的索引操作

序列示例:Hello字符串。

 

序列中的元素都是有序的,每一个元素都带有序号,这个序号叫作索引。索引有正值索引负值索引之分。

我们是通过下标运算符访问序列中的元素的,下标运算符是跟在容器数据后的一对中括号([]),中括号带有参数,对于序列类型的数据,这个参数就是元素的索引序号。

4.2.1.2 加和乘操作

加(+)和乘(*)运算符也可以用于序列中的元素操作。加(+)运算符可以将两个序列连接起来,乘(*)运算符可以将两个序列重复多次

 

4.2.1.3 切片操作

序列的切片(Slicing)就是从序列中切分出小的子序列。 

切片运算符的语法形式为[start:end:step]。其中,start是开始索引,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整数,也可以为负整数)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素,start和end都可以省略。

下面对字符串变量a进行切片操作[1:3],开始索引为1,结束索引为3,省略步长(默认值为1)。

 

下面对字符串变量a进行切片操作[0:3:2],开始索引为0,结束索引为3,步长为2。

 

4.2.1.4 成员测试

成员测试运算符有两个:in和not in,in用于测试是否包含某一个元素,not in用于测试是否不包含某一个元素。 

4.2.2  列表

列表(list)是一种可变序列类型,我们可以追加、插入、删除和替换列表中的元素

4.2.2.1 创建列表

创建列表有两种方法。
1 list(iterable)函数:参数iterable是可迭代对象(字符串、列表、元组、集合和字典等)。
2 [元素1,元素2,元素3,⋯]:指定具体的列表元素,元素之间以逗号分隔,列表元素需要使用中括号括起来。

 

 

 4.2.2.2 追加元素

列表是可变的序列对象,列表可以追加元素
1 在列表中追加单个元素时,可以使用列表的append(x)方法
2 在列表中追加多个元素时,可以使用加(+)运算符或列表的extend(t)方法。

 

 本节的append(x)被称为方法list(iterable)被称为函数,在Puthon中方法和函数是有区别的。方法隶属于类,通过类或对象调用方法,例如在list.append(x)中,list是列表对象;函数不隶属于任何类,直接调用即可,例如list(iterable)。

4.2.2.3 插入元素

想向列表中插入元素时,可以使用列表的list.insert(i,x)方法,其中,i指定索引位置,x是要插入的元素。

4.2.2.4 替换元素

想替换列表中的元素时,将列表下标索引元素放在赋值符号(=)的左边,进行赋值即可

4.2.2.5 删除元素

想在列表中删除元素时,可使用列表的list.remove(x)方法,如果找到匹配的元素x,则删除该元素,如果找到多个匹配的元素,则只删除第一个匹配的元素。

4.2.3 元组

元组(tuple)是一种不可变序列类型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++中atan和atan2

atan和atan2 两者都在cmath函数中。 atan std::atan(1. / 1.) * 180 / M_PI // 45 deg std::atan(-1. / -1.) * 180 / M_PI // 45 deg atan2 std::atan2(1., 1.) * 180 / M_PI // 45 std::atan2(-1., -1.) * 180 / M_PI // -135 区别 atan值域[-M_PI / 2., M_PI / 2.] a…

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题 【操作可能有风险,请提前做好数据备份,设置系统还原点等,防止系统出现问题!!!】 【操作可能有风险,请提前做好数…

达梦数据库命令行安装+命令行创建实例

首先创建dmdba用户 groupadd dminstall useradd -g dminstall dmdba sudo passwd dmdba 修改dmdba的权限 cd /etc/security/ limits.d 增加两行代码 dmdba soft nofile 65536 dmdba hard nofile 65536 创建安装文件夹 授权dmdba mkdir -p /app/dbDB8 mkdir installDa…

redis实际应用场景及并发问题的解决

业务场景 接下来要模拟的业务场景: 每当被普通攻击的时候,有千分之三的概率掉落金币,每回合最多爆出两个金币。 1.每个回合只有15秒。 2.每次普通攻击的时间间隔是0.5s 3.这个服务是一个集群(这个要求暂时不实现) 编写接口&…

代码随想录算法训练营第三十四天 |1005. K 次取反后最大化的数组和 、134. 加油站、135. 分发糖果

代码随想录算法训练营第三十四天 |1005. K 次取反后最大化的数组和 、134. 加油站、135. 分发糖果 1005. K 次取反后最大化的数组和题目解法 134. 加油站题目解法 135. 分发糖果题目解法 感悟 1005. K 次取反后最大化的数组和 题目 解法 考虑绝对值 class Solution { public…

libVLC 视频裁剪

使用 libVLC 进行视频裁剪并不是直接支持的功能,因为 libVLC 主要是一个媒体播放库。然而,你可以通过调整播放窗口的大小和设置视频输出的区域来实现一种“视觉上的裁剪”。这意味着视频本身并没有被修改,但可以控制显示给用户的视频区域。 …

【OJ】动归练习二

个人主页 : zxctscl 如有转载请先通知 题目 1. 91.解码方法1.1 分析1.2 代码 2. 62.不同路径2.1 分析2.2 代码 3. 63.不同路径 II3.1 分析3.2 代码 1. 91.解码方法 1.1 分析 题目所述就是把一串数字反向解码为字母映射出来,有多少种方法。 题目也说&…

基于java+SpringBoot+Vue的篮球竞赛预约平台设计与实现

基于javaSpringBootVue的篮球竞赛预约平台设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台展示 后台展示 系统简介 篮球竞赛预约平台以springboot作为框架,b/s模式以及MySql作为后台运行的数据库&a…

线程池的7大参数

线程池的7大参数 一、 corePoolSize 线程池核心线程大小 核心线程永远不会销毁,即使他们处于空闲状态,除非设置了allowCoreThreadTimeOut。任务提交到线程池后,首先会检查当前线程数是否达到了corePoolSize,如果没有达到的话&…

蜜罐技术简介

1.什么是蜜罐 蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击。这种技术允许防御方捕获和分析攻击行为,从而了解攻击方所使用的工具与方法,推测攻击意图和…

360奇酷刷机 360刷机助手 QIKU Download Assistant

360奇酷刷机 360刷机助手 QIKU Download Assistant 破 解 360手机刷机资源下载链接:360rom.github.io 参考:360手机-360刷机360刷机包twrp、root 360奇酷刷机:360高通驱动安装 360手机刷机驱动;手机内置,可通过USB文件…

2核4g服务器能支持多少人访问?全网最全测评

腾讯云轻量应用服务器2核4G5M配置性能测评,腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?并发数10,支持每天5000IP人数访问,腾讯云百科txybk.com整理2核4G服务器支持多少人同时在线?并发数测试、CPU性能、内存性能、…

【Android】图解View事件分发机制

文章目录 View事件分发机制dispartchTouchEvent()dispatchTouchEvent() 方法主要负责什么? onTouchEvent(event) 点击事件分发的传递规则自上而下自下而上 View事件分发机制 View的事件分发机制是Android中非常核心的一个概念,它负责处理触摸事件&#…

[Java基础揉碎]抽象类

目录 通过问题引出 介绍 关键点 细节 ​编辑 抽象类的最佳设计模式--模版设计模式 1.先用最容易想到的方法 2.分析问题,提出使用模板设计模式 通过问题引出 假如我们有个动物类, 动物都有eat吃的方法, 但是具体吃什么, 我们不知道, 因为是什么动物我们不知道…

【Unity】uDD插件抓屏文字显示不清晰怎么办?

【背景】 之前介绍过用一款简称uDD(uDesktopDuplication)的开源插件抓取电脑桌面。整体效果不错,看电影很流畅。但是当切换到文档,或者仔细看任何UI的文字部分时,发现就模糊了。 【分析】 由于是依托于Canvas上的Te…

如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能

环境: python3.8.10 Excel2016 Win10专业版 问题描述: 如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能 先排除两表A列空白单元格,然后匹配x1表格和x2表格他们的A列,把x1表格中A列A1-A810范围对应的B列B1-B810数据,匹配填充到x2范围…

Microsoft Excel 快捷键 (keyboard shortcut - hotkey)

Microsoft Excel 快捷键 [keyboard shortcut - hotkey] References 表格内部换行快捷键 Alt Enter 快速将光标移到表末 Ctrl End 快速将光标移到表首 Ctrl Home References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

416. 分割等和子集

思路:一道简单的01背包的dp,判断背包和为sum/2的背包是否存在。 一维01背包,第一层枚举物品i,第二层从后往前遍历容量sum/2->nums[i],因为小于nums[i]就没意义了,不用考虑,肯定是不存在的。 …

4.1 RK3399项目开发实录-案例开发之MIPI 摄像头开发(wulianjishu666)

嵌入式从零到项目开发全套例程资料 链接:https://pan.baidu.com/s/1ksCQN__jD8ZrJhw8sWzhwQ?pwdvvfz 3.2. MIPI 摄像头 带有 MIPI CSI 接口的 RK3399 板子都添加了双 MIPI 摄像头 OV13850 的支持,应用中也添加了摄像头的例子。下面介绍一下相关配置。…

信息系统项目管理(第四版)(高级项目管理)考试重点整理 第15章 项目风险管理(四)

博主2023年11月通过了信息系统项目管理的考试,考试过程中发现考试的内容全部是教材中的内容,非常符合我学习的思路,因此博主想通过该平台把自己学习过程中的经验和教材博主认为重要的知识点分享给大家,希望更多的人能够通过考试&a…