Python简单教程(第01章---第04章)

news2024/11/24 14:20:29

Python简单教程

  • 1. Python综述
    • 1.1 python是什么
    • 1.2 python的发展
    • 1.3 python的特点
  • 2.Python3安装
    • 2.1 python3 和 python2的区别
    • 2.2 python3环境的安装(以windows为例)
    • 2.3 Anaconda 安装(可选)
  • 3. Python基本语法
    • 3.1 编码
    • 3.2 标识符
    • 3.3 注释
    • 3.4 关键子和保留字
      • 简介:
    • 3.5 行和缩进
    • 3.6 多行语句
    • 3.7 python的引号
    • 3.8 Python空行
    • 3.9 等待用户输入
    • 3.10 同一行显示多条语句
    • 3.11 多个语句构成代码组
    • 3.12 Print 输出
    • 3.13 import 与 from...import
    • 3.14 命令行参数
  • 4. 基本数据类型
    • 4.1 变量赋值
    • 4.2 多变量赋值
    • 4.3 标准数据类型
    • 4.4 Number
      • 4.1.1 函数
      • 4.1.2 进制
      • 4.1.3 数学函数
    • 4.5 String
    • 4.6 List
    • 4.7 Tuple
    • 4.8 Set
    • 4.9 Dictionary(字典)
    • 4.10 python类型转换

1. Python综述

1.1 python是什么

在这里插入图片描述

1.2 python的发展

  • Python 是由 Guido van Rossum(龟叔) 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

  • Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

1.3 python的特点

易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

易于阅读:Python代码定义的更清晰。

易于维护:Python的成功在于它的源代码是相当容易维护的。

一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

数据库:Python提供所有主要的商业数据库的接口。

GUI编程:Python支持GUI可以创建和移植到许多系统调用。

可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

2.Python3安装

2.1 python3 和 python2的区别

Python的3​​.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。

为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。

许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。

为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。

新的Python程式建议使用Python 3.0版本的语法。

除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python 3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。

Python 3.0 在 print函数、Unicode编码、除法运算、数据类型和异常等方面都与2.X版本有所变化。

2.2 python3环境的安装(以windows为例)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 Anaconda 安装(可选)

在这里插入图片描述

3. Python基本语法

3.1 编码

在这里插入图片描述

3.2 标识符

在这里插入图片描述

3.3 注释

在这里插入图片描述

3.4 关键子和保留字

在这里插入图片描述

简介:

	1.and:表示逻辑‘与’
	2.del:用于list列表操作,删除一个或者连续几个元素。
	3.from:导入相应的模块,用import或者from...import
	4.not:表示逻辑‘非’
	5.whilewhile循环,允许重复执行一块语句,一般无限循环的情况下用它
	6.as:as单独没有意思,是这样使用:with....as用来代替传统的try...finally语法的。
	7.elif:if配合使用的,if语句中的一个分支用elif表示。
	8.global :定义全局变量
		例如:
		name = 10
		age = 20
		def test():
			global name
			age = 30
			name = 'aa'
			#print(name)
		test()
		print(name)		# 'aa'
		print(age)		# 20

	9.or:表示逻辑“或”
	10.with:和as一起用,使用的方法请看as,见with
	11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError

		v1 = 10
		v2 = 20
		assert(v1 > v2)

	12.else:参考下面if的解释
	13.ifif语句用于选择分支,依据条件选择执行那个语句块。(if语句中最好不要嵌套if语句,建议把嵌套的if语句写在另一个函数中)
	14.pass:pass的意思就是什么都不做
	15.yield:用起来和return很像,但它返回的是一个生成器
	16.break:作用是终止循环,程序走到break的地方就是循环结束的时候。
	17.except:和try一起使用,用来捕获异常。
	18.import:用来导入模块,有时这样用from....import
	19.class:定义类
	20.in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。
	21.raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
	22.continue:跳过continue后面循环块中的语句,继续进行下一轮循环。
	23.finally:看到finally语句,必然执行finally语句的代码块。
	24.is:Python中的对象包含三要素:id、type、value,用来判断对象是否相等
	25.return:用于跳出函数,也可以在跳出的同时返回一个值。
	26.def:用于定义方法
	27.forfor....in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目
	28.lambda:即匿名函数
	29.try:出现在异常处理中,使用格式为:try...except,try中放想要执行的语句,except捕获异常
	30.nonlocal:nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量
		例如:
		def make_counter(): 
	    	count = 0 
			def counter(): 
				nonlocal count 
				count += 1 
				return count 
	    	return counter 
		       
		def make_counter_test(): 
			mc = make_counter() 
			print(mc())
			print(mc())
			print(mc())
		make_counter_test()

3.5 行和缩进

  • 学习 Python 与其他语言最大的区别就是,Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。

  • python 最具特色的就是用缩进来写模块

  • 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

例如:
		if True:
			print "True"
		else:
			print "False"

3.6 多行语句

Python语句中一般以新行作为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

	total = item_one + \
		        item_two + \
		        item_three
		print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
				aaaaaaaaaaaaaaaaaaaa')

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

		days = ['Monday', 'Tuesday', 'Wednesday',
				'Thursday', 'Friday']

3.7 python的引号

Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" )表示字符串,引号的开始与结束必须的相同类型的。

  • 其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
word = 'word'
		sentence = "这是一个句子。"
		paragraph = """这是一个段落。
		包含了多个语句"""

3.8 Python空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

3.9 等待用户输入

执行下面的程序在按回车键后就会等待用户输入:
input(“\n\n按下 enter 键后退出。”)

3.10 同一行显示多条语句

Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
x = ‘runoob’;print(x + ‘\n’)

3.11 多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。
例如:

		if expression : 
		   suite
		elif expression : 
		   suite 
		else : 
		   suite

3.12 Print 输出

在这里插入图片描述

3.13 import 与 from…import

在这里插入图片描述
在这里插入图片描述

3.14 命令行参数

在这里插入图片描述

4. 基本数据类型

4.1 变量赋值

![在这里插入图片描述](https://img-blog.csdnimg.cn/4528442f53f74724ad88def5173a91b2.png

4.2 多变量赋值

在这里插入图片描述

4.3 标准数据类型

在这里插入图片描述

4.4 Number

在这里插入图片描述

4.1.1 函数

	type(a)				# 判断数据类型
	isinstance(a,int)	   # 判断数据是否属于某类型
	del var1,var2		# 手动GC

区别:
(1) type()不会认为子类是一种父类类型
(2) isinstance()会认为子类是一种父类类型

例如:

			class A:
				pass
			class B(A):
				pass
			print(type(A()) == A)
			print(type(B()) == A)
			print(isinstance(B(),A))
			print(isinstance(B(),A))

4.1.2 进制

在这里插入图片描述

4.1.3 数学函数

在这里插入图片描述
在这里插入图片描述

(2) 随机数函数

	随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

在这里插入图片描述

(3) 三角函数

在这里插入图片描述

(4) 数学常量

在这里插入图片描述

4.5 String

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。下标从0开始。
加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。

(1)字符串截取

在这里插入图片描述
在这里插入图片描述

(2)字符串打印

Python 使用反斜杠()转义特殊字符,
如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

print('Ru\noob')
		Ru
		oob
		print(r'Ru\noob')
		Ru\noob

(3)字符串获取

print(str[0])

注意:
	1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
	2、字符串可以用+运算符连接在一起,用*运算符重复。
	3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
	4、Python中的字符串不能改变。
		str = 'abcdef'
		str[0] = 's'	# 报错
	5、Python 没有单独的字符类型,一个字符就是长度为1的字符串。

4.6 List

List(列表)是Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号[]之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

定义:

		list = [0,1,2,3,'c']
		list[0]			# 0
		len(list)		# 长度5
		list[0:3]		# [0,1,2]

注意:
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
5、不支持与或非运算

4.7 Tuple

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

定义:

		t = (0,1,2,3,'c')
		t[0]			# 0
		len(list)		# 长度5
		t[0:3]			# (0,1,2)
		t[0] = 2		# 报错

注意:

1、与字符串一样,元组的元素不能修改。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
			list = [0,2,1,3]
			t = (0,1,2,3,list)
			t[0] = 1			# 报错
			t[4][0] = 1
			print(t[4])			# ok

2、元组也可以被索引和切片,方法一样。
3、注意构造包含0或1个元素的元组的特殊语法规则。

  • tup1 = () # 空元组
  • tup2 = (20,) # 一个元素,需要在元素后添加逗号

4、元组也可以使用 + 或 * 操作符进行拼接。

4.8 Set

集合(set)是由一个。合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。

可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

	parame = {value01,value02,...} 或者 set(value)

		s = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
		print(s)					# {'Mary', 'Jack', 'Rose', 'Tom', 'Jim'}

		s = set('1b1b2b3b2b')		# {'2', '3', '1', 'b'}

		set操作:
			# set可以进行集合运算
			a = set('abracadabra')
			b = set('alacazam')
			 
			print(a)
			>>> {'b', 'a', 'c', 'r', 'd'}
			print(a - b)     # a和b的差集
			>>> {'b', 'd', 'r'}
			print(a | b)     # a和b的并集
			>>> {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
			print(a & b)     # a和b的交集
			>>> {'a', 'c'}
			print(a ^ b)     # a和b中不同时存在的元素
			>>> {'l', 'r', 'z', 'm', 'b', 'd'}

4.9 Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

字典创建:
			(1) d = {"a":1,"b":2,"c":3}
			(2) d = dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
			(3) d = {x:x**2 for x in (2, 4, 6)}
			(4) d = dict(Runoob=1, Google=2, Taobao=3)
字典操作:
			tinydict = {'name': 'guigu','code':1, 'site': 'www.atguigu.com'}
 
			print (dict['name'])			# 输出键为 'name' 的值
			print (dict['code'])			# 输出键为 'code' 的值
			print (tinydict)				# 输出完整的字典
			print (tinydict.keys())			# 输出所有键	dict_keys(['name', 'code', 'site'])
			print (tinydict.values())		# 输出所有值 dict_values(['guigu', 1, 'www.atguigu.com'])

4.10 python类型转换

在这里插入图片描述

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

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

相关文章

内网渗透之横向移动 委派-非约束委派约束委派资源委派

0x01 横向移动-非约束委派 原理: 机器A(域控)访问具有非约束委派权限的机器B的服务,会把当前认证用户(域管用户)的的TGT放在ST票据中,一起发送给机器B,机器B会把TGT存储在lsass进程…

tomcat乱码解决方案

2.将里面的java.util.logging.ConsoleHandler.encoding 的值改为GBK。如下图:

电影推荐算法

模型训练 下载数据集,解压到项目目录下的./ml-1m文件夹下。数据集分用户数据users.dat、电影数据movies.dat和评分数据ratings.dat。 ** 数据集分析 ** user.dat:分别有用户ID、性别、年龄、职业ID和邮编等字段。 数据集网站地址为http://files.group…

数智未来,因你而来 | 昇腾AI创新大赛2023全新启动

在5月6日-7日举行的昇腾AI开发者峰会2023上,昇腾AI创新大赛2023正式启动。大赛旨在鼓励全产业开发者基于昇腾AI技术和产品,打造软/硬件解决方案、探索模型算法,加速AI与行业融合,促进开发者能力提升。 会上,中国工程院…

【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积

CDN(Content Delivery Network)即内容分发网络,是一种通过在全球范围内分布式部署服务器来加速网络内容传输的技术。CDN加速的原理是,当用户请求访问某个资源时,CDN会根据用户的地理位置和网络状况,自动选择…

【内置函数】——高级编程——如桃花来

目录索引 1. hasattr():2. getattr():有:没有则报错: 3. setattr():4. delattr():5. issubclass():6. isinstance():判断前面是不是属于后面的类型:判断前面是不是属于后面的类型之一:判断前面是…

百度网盘密码数据兼容处理

文章目录 一、问题描述二、代码实现1. 配置类2. 数据库配置3. config 配置类4. AOP 通知类5. 数据层6. 业务层7. 实体类 三、测试及结果 一、问题描述 需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理。 分析: ① 在业务方法执行之前对所…

目标检测YOLO(V1、V2、V3)入门

one-stage和two-stage的区别 YOLO常见的指标 YOLO V1 yolo v1架构解读 yolo v1损失函数 NMS非极大值抑制 yolo v1版本的问题 重叠在一起的物体不好分类,只是一个单分类问题多标签问题(狗和哈士奇) v2和v1的区别 v2网络结构 batch normaliz…

【iOS】---pthread,NSThread

在iOS中多线程开发有四种方式,在之前我们浅浅了解了一下GCD,这期来看看pthread和NSThread pehread pthread简介 pthread 是一套通用的多线程的 API,可以在Unix / Linux / Windows 等系统跨平台使用,使用 C 语言编写,…

Redis持久化之RDB高频问题

1、RDB是如何应用的? 因为记录的是操作命令,而不是实际的数据,所以,用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用…

ApacheBench网站压力测试

ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试,亦可用于发起CC攻击,请不要滥用哦。ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试。如果已经安装过Apache&a…

Linux基本指令----上

Linux基本指令----上 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令&&rm指令man指令cp指令mv指令cat指令echo指令more指令less指令head指令tail指令结语 ls指令 语法: ls [选项] [目录或文件] 功能: 对于目录,该命令列出该目录下…

Spring Boot集成ShardingSphere实现按月数据分片及创建自定义分片算法 | Spring Cloud 44

一、前言 在前面我们通过以下章节对数据分片有了基础的了解: Spring Boot集成ShardingSphere实现数据分片(一) | Spring Cloud 40 Spring Boot集成ShardingSphere实现数据分片(二) | Spring Cloud 41 Spring Boot集…

【Windows】高效的本地文件搜索工具《Everything》

🐳好用高效的本地文件搜索工具《Everything》 🧊一、什么是Everything🧊二、为什么选择Everything🧊三、下载Everything🧊四、Everything为什么高效 🧊一、什么是Everything Everything是一个运行于Window…

单片机GD32F303RCT6 (Macos环境)开发 (五)—— IAP代码架构工程

IAP代码架构工程 1、IAP一般分两个工程,一个Bootloader工程,一个Application工程。 这两个工程的差异后面会讲。 IAP架构工程的好处在于产品上线以后,想要升级的话,不用借助烧录器,就可以完成产品的软件升级。 2、Boo…

轻量级团队协作工具推荐,提高效率从选择开始

首先不得不夸一句:爱用Zoho工具的人,都十分自律和高效,因为Zoho旗下有多种简单好用的团队协作工具。 1、Zoho Projects项目管理工具 项目任务进度和团队沟通与协作管理软件Zoho Projects是一款基于web的软件。专为团队协作而设计,…

手写卡尔曼滤波

形象图 里面的my_Kalman.ipynb 和ppt就是了,其他的是原始资料和 辅助函数 链接:https://pan.baidu.com/s/1J1nA–oqoj8OvgbrA3LfbQ?pwd1264 提取码:1264 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation i…

物理验证LVS对bulk(体)的理解和处理技巧

对于物理验证中的LVS,需要对各种物理器件进行SpiceVsGDS的比对,基于现在流行的std-cell的库的设计方法,LVS需要对CMOS器件多相应的处理,这里会涉及到一些具体的物理库的知识和小的技巧,这里结合具体的物理设计和CDL形态…

网络安全战略:如何应对不断变化的威胁环境?

网络安全一直是大家所关注的重点。在如今的数字化时代,网络安全问题日益严峻,网络攻击者使用更加复杂和高级的攻击方式,企图从各种角度入侵和危害我们的计算机网络。因此,我们必须制定一套完善的网络安全战略,以便更好…

LeetCode 牛客单链表OJ题目分享

目录 链表的回文结构相交链表环形链表I环形链表II 链表的回文结构 链接: link 题目描述: 题目思路: 本题思路是找到每一条链表的中间节点,之后逆置中间节点之后的链表,定义两个指针,分别指向逆置后链表的头部的链表的…