【第二部分--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.0print(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)是一种不可变序列类型。

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

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

相关文章

初始Redis关联和非关联

基础篇Redis 3.初始Redis 3.1.2.关联和非关联 传统数据库的表与表之间往往存在关联,例如外键: 而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合: {id: 1,name: "张三…

指针知识大礼包,让你的编程之路更顺畅(一)

1. 内存和地址 2. 指针变量和地址 3. 指针变量类型的意义 4. const修饰指针 5. 指针运算 6. 野指针 7. assert断⾔ 8. 指针的使⽤和传址调⽤ 正文开始 1. 内存和地址 1.1 内存 在讲内存和地址之前,我们想有个⽣活中的案例: 假设有⼀栋宿舍楼&a…

自锁电路设计

自锁电路设计 Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制…

springboot 大文件分片上传

springboot 大文件分片上传 constantentityvocontrollerutils大文件分片上传是一种将大文件分割成多个小文件片段,然后分别上传这些小文件片段的方法。这种方法的好处包括: 减少重新上传开销:如果网络传输中断,只需重传未上传的部分,而不是整个文件。 提高灵活性:分片大小…

【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法

一、selenium 中隐藏元素如何定位? 如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素(如click,clear,send_keys) 二、隐藏元素 如下图有个输入框…

Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化调用完整代码一键启动)

Quick Start Dubbo&#xff01;用更优雅的方式来实现RPC调用吧 - 掘金 dubbozookeeper demo 项目结构&#xff1a; RpcService 仅仅是提供服务的接口&#xff1a; public interface HelloService {String sayHello(String name); }DubboServer pom&#xff1a; <?xm…

EDR下的线程安全

文章目录 前记进程断链回调执行纤程内存属性修改early birdMapping后记reference 前记 触发EDR远程线程扫描关键api&#xff1a;createprocess、createremotethread、void&#xff08;指针&#xff09;、createthread 为了更加的opsec&#xff0c;尽量采取别的方式执行恶意代…

【Flutter学习笔记】10.3 组合实例:TurnBox

参考资料&#xff1a;《Flutter实战第二版》 10.3 组合实例&#xff1a;TurnBox 这里尝试实现一个更为复杂的例子&#xff0c;其能够旋转子组件。Flutter中的RotatedBox可以旋转子组件&#xff0c;但是它有两个缺点&#xff1a; 一是只能将其子节点以90度的倍数旋转二是当旋转…

2002-2023年各地级市环境规制强度数据(环保词频统计)

2002-2023年各地级市环境规制强度数据&#xff08;环保词频统计&#xff09; 1、时间&#xff1a;2002-2023年 2、来源&#xff1a;政府工作报告 3、指标&#xff1a; 行政区划代码、年份、城市、所属省份、文本总长度、仅中英文-文本总长度、文本总词频-全模式、文本总词频…

瑞_23种设计模式_职责链模式

文章目录 1 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;★★★1.1 介绍1.2 概述1.3 职责链模式的结构1.4 职责链模式的优缺点1.5 职责链模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析&#xff08;FilterCh…

软件测试 - postman高级使用

断言 概念&#xff1a;让程序代替人判断测试用例执行的结果是否符合预期的一个过程 特点&#xff1a; postman断言使用js编写&#xff0c;断言写在postman的tests中 tests脚本在发送请求之后执行&#xff0c;会把断言的结果最终在testresult中进行展示 常用的postman提供的…

C++剑指offer与高频面试题源码解答与分析

这是博主在当初秋招刷题时候记录的剑指offer第二版以及一些高频题的C源码和解法分析&#xff0c;可以说把这上面的题练好了面试不虚&#xff0c;最后也顺利帮助我拿下baidu ali meituan等多家大厂offer。整篇文章写了大概5W个字&#xff0c;也是积累了很长一段时间的作品&#…

SpringMVC | Spring MVC中的“拦截器”

目录: 一、拦截器 &#xff1a;1. 拦截器的 “概述”2. 拦截器的 “定义” (创建“拦截器”对象)3. 拦截器的 “配置” (让“拦截器”对象生效)4. 拦截器的 “执行流程”“单个拦截器”的执行流程“多个拦截器”的执行流程 二、应用案例一实现用户登录权限验证 作者简介 &#…

ssm006基于java的少儿编程网上报名系统+vue

少儿编程网上报名系统 摘 要 在国家重视教育影响下&#xff0c;教育部门的密确配合下&#xff0c;对教育进行改革、多样性、质量等等的要求&#xff0c;使教育系统的管理和运营比过去十年前更加理性化。依照这一现实为基础&#xff0c;设计一个快捷而又方便的网上少儿编程网上…

利用PSR,三步实现业务快速加载

01 什么是PSR PSR是通信业界在BSS/OSS域面向产品设计和业务开通过程中提出的一个标准化信息分层解耦和映射的框架&#xff0c;按照国际电信论坛TMF推荐的SID信息框架的标准&#xff0c;主要分为产品域、服务域和资源域等三层&#xff0c;支撑通信业务的快速加载和敏捷开通。 TM…

vscode下c++的boost库安装

Boost Downloadshttps://www.boost.org/users/download/下载最新的库文件。在shell中&#xff0c;使用命令bootstrap.bat gcc生成b2.exe文件。然后是.\b2.exe toolsetgcc生成库文件&#xff0c;在stage\lib文件夹下把stage\lib文件夹中的库文件拷贝到mingw64\x86_64-w64-mingw3…

Spring Boot + MyBatis

一、配置依赖 <!-- MyBatis --> <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.5.3</version> </dependency> <!-- junit测试依赖 --&g…

【C语言】【Leetcode】88. 合并两个有序数组

文章目录 一、题目二、思路再思考 一、题目 链接: link 二、思路 这题属于简单题&#xff0c;比较粗暴的做法就是直接比较两个数组&#xff0c;先把第二个数组加到第一个的后面&#xff0c;如何冒泡排序&#xff0c;这种方法简单粗暴但有效&#xff0c;可是不适用于这题&…

Python利用Turtle小乌龟实现推箱子游戏

文章目录&#xff1a; 一&#xff1a;运行效果 1.演示 2.思路和功能 二&#xff1a;代码 文件架构 level.py PushBox.py 必备知识&#xff1a;python图形化编程turtle小乌龟 一&#xff1a;运行效果 1.演示 效果图◕‿◕✌✌✌ Python利用Turtle小乌龟实现推箱子游戏运…

python5:基于多进程的并发编程、基于协程的并发编程的学习笔记

进程 为什么要使用多进程&#xff1f;——GIL的存在&#xff0c;多线程实际不是并发执行 将任务分为两类&#xff1a;IO密集型&#xff08;多线程&#xff09;CPU密集型&#xff08;多进程&#xff09; 多进程的基本用法 concurrent.futures.process.ProcessPoolExecutor#进…