Python基础(一)
python自述
1、我为什么值得你拥有?
2、我为什么能成为网红?
-
我对大数据分析、人工智能中至关重要的机器学习、深度学习都提供了大力的支持
-
我背后有最最庞大的“代码库”
-
人们习惯称我为“胶水语言”
3.我能帮你做些啥?
-
我能帮你抢火车票
-
我帮你数据分析少踩杭
-
我还能帮你开发网站
-
我还能帮你开发游戏
Python的简介
我是一个‘90’后,我被孕育在1989年的圣诞节期间,我的程序员爸爸荷兰人吉多·范罗苏姆,为了打发无趣的圣诞节创造了我,我在1991年时候被真正的生了出了,我的程序员爸爸给我起了个非常吓人的名字叫Python(大蟒蛇的意思),我的名字取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)
现在我已经更新到3.0版本了,被大家叫做Python3000,熟悉我的朋友会称我为Py3k,我的爸爸在2020年1月1日,官宣停止了Python2的更新,所以对于初学者的你来说,你只需要认识我就可以了
-
我一种跨平台的计算机程序设计语言把你的想法告诉我,我再以计算机认识的方式告诉计算机,我们是你们之间交流的工具
-
我是一种解释型语言 我在开发过程中是没有编译这个环节的,这一点我与Java不一样
-
我是一种交互式语言你可以在我的提示符>>>后直接执行代码
-
我是面向对象语言在我的世界里一切皆对象
-
我是初学者最好的语言对于初级程序员而言,我是非常伟大的,我支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏,我无所不能
搭建Python开发环境
安装Python解释器
https://www.python.org/ 官网
https://www.python.org/downloads/windows/
相关程序介绍
第一个Python程序helloworld
交互式命令行程序
Python自带的简单开发环境IDLE
新建Python文件 first.py
第三方开发环境PyCharm的下载与安装
PyCharm的安装
https://www.runoob.com/w3cnote/pycharm-windows-install.html
收费破解参考:https://www.bilibili.com/read/cv34497190/
设置Python文件模板
Python中的输出函数
print()函数
我里面有一个你可以直接使用的函数叫print(),可以将你想展示的东东在IDLE或标准的控制台上显示,如print(520)
print()函数的使用
-
print()函数可以输出哪些内容?
(1)print()函数输出的内容可以是数字
(2)print()函数输出的内容可以是字符串
(3)print()函数输出的内容可以是含有运算符的表达式 -
print()函数可以将内容输出的目的地
(1)显示器
(2)文件 -
print()函数的输出形式
(1)换行 print(520)
(2)不换行 print(5, 2, 0)
转义字符
1.什么是转义字符呢?
就是反斜杠+想要实现的转义功能首字母。\r \n \t \\ 等等
2.为什么需要转义字符?
当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义(转换一个含义)
反斜杠 :\
单引号:’
双引号: \“
当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符当字符串中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符
换行:\n
回的:\r
水平制表符 : \t
退格 :\b
Python中的标识符和保留字
有一些单词被我赋予了特定的意义,这些单词你在给你的任何对象起名字的时候都不能用
import keyword
print(keyword.kwlist) //查看关键字
变量、函数、类、模块和其它对象的起的名字就叫标识符
规则:
字母、数字、下划线_
不能以数字开头
不能是我的保留字
我是严格区分大小写的
变量的定义和使用
变量由三部分组成
-
标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取
-
类型 :表示的是对象的数据类型,使用内置函数type(obj)来获取
-
值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出
当多次赋值之后,变量名会指向新的空间
常用数据类型
整数类型
英文为integer,简写为int,可以表示正数、负数和零
整数的不同进制表示方式
-
十进制 默认的进制
-
二进制 以0b开头
-
八进制 以0o开头
-
十六进制 0x开头
浮点类型
浮点数整数部分和小数部分组成
浮点数存储不精确性
使用浮点数进行计算时,可能会出现小数位数不确定的情况
print(1.1+2.2) #3.3000000000000003
print(1.1+2.1) #3.2
解决方案:导入模块decimal
from decimal import Decimal
print(Decimal(‘1.1’)+Decimal(‘2.2’)) # 3.3
布尔类型
用来表示真或假的值
True表示真,False表示假
布尔值可以转化为整数 True->1 False->0
print(True+1) #2
print(False+1) #1
字符串类型
字符串又被称为不可变的字符序列
可以使用单引号’’ 双引号”” 三引号’’’ ’’’ 或””” ”””来定义
单引号和双引号定义的字符串必须在一行
三引号定义的字符串可以分布在连续的多行
str1='人生苦短,我用Python'
str2="人生苦短,我用Python"
str3="""人生苦短,我用Python"""
str4='''人生苦短
我用Python'''
数据类型转换
为什么需要数据类型转换?
将不同数据类型的数据拼接在一起,python不支持不同类型连接
print(“我今年” + str(30) + “岁”)
Python中的注释
在代码中对代码的功能进行解释说明的标注性文字,可以提高代码的可读性
注释的内容会被Python解释器忽略
通常包括三种类型的注释
-
单行注释 以#开头,直到换行结束
-
多行注释 ‘’'或"""并没有单独的多行注释标记,将一对三引号之间的代码称为多行注释
-
中文编码声明注释 在文件开头加上中文声明注释,用以指定源码文件的编码格式
#coding:gbk
Python的输入函数input()
类型转换
如果需要整数型和浮点型,就需要将str类型通过int()函数或者float()函数进行类型转换
Python中的运算符
算术运算符
赋值运算符
比较运算符
对变量或表达式的结果进行大小、真假等比较
布尔运算符
位运算符
将数据转成二进制进行计算
运算符的优先级
对象None
对象None用于表示数据值的不存在,但在内存中占用一定的空间
a=Noneprint(id(a)) #140725745358976
print(type(a)) #<class 'NoneType'>
print(a) #None
a=None
print(a)
b=20print(b)
b=None #重置为数据值不存在状态print(b)
经常用于变量的初始化,或将变量重置为‘数据不存在状态’
对象的布尔值
Python一切皆对象,所有对象都有一个布尔值
获取对象的布尔值,使用内置函数bool()
以下对象的布尔值为False:
-
False
-
数值0
-
None
-
空字符串
-
空列表
-
空元组
-
空字典
-
空集合
程序的组织结构
顺序结构
程序从上到下顺序地执行代码,中间没有任何的判断和跳转,直到程序结束
选择结构
程序根据判断条件的布尔值选择性地执行部分代码,明确的让计算机知道在什么条件下,该去做什么
单分支结构
双分支结构
多分支结构
嵌套if
循环结构
while循环的执行流程
四步循环法
-
初始化变量
-
条件判断
-
条件执行体(循环体)
-
改变变量
for-in循环
for-in循环
-
in表达从(字符串、序列等)中依次取值,又称为遍历
-
for-in遍历的对象必须是可迭代对象
for-in的语法结构
for 自定义的变量 in 可迭代对象:
循环体
for-in的执行图
循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
嵌套循环
循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行
条件表达式
条件表达式是if…else的简写
语法结构:
x if 判断条件 else y
运算规则
如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为False
流程控制语句break
用于结束循环结构,通常与分支结构if一起使用
流程控制语句continue
用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用
else语句
与else语句配合使用的三种情况
二重循环中的break和continue用于控制本层循环
pass语句
语句什么都不做,只是一个占位符,用在语法上需要语句的地方
什么时候使用:
先搭建语法结构,还没想好代码怎么写的时候
哪些语句一起使用
-
if语句的条件执行体
-
for-in语句的循环体
-
定义函数时的函数体
内置函数range()
用于生成一个整数序列
创建range对象的三种方式
返回值是一个迭代器对象
range类型的优点 :不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素
in与not in 判断整数序列中是否存在(不存在)指定的整数
列表
为什么需要列表
-
变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作
-
列表相当于其它语言中的数组
列表的创建
列表需要使用中括号[],元素之间使用英文的逗号进行分隔
列表的创建方式
-
使用中括号
-
调用内置函数list()
lst=['大圣','娟子姐']
lst2=list(['大圣','娟子姐'])
列表的特点
列表的查询操作
获取列表中指定元素的索引
获取列表中的单个元素
lst=['hello','world',98,'hello']
print(lst.index('hello')) #如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
#print(lst.index('Python')) #ValueError: 'Python' is not in list
#print(lst.index('hello',1,3)) #ValueError: 'hello' is not in list 'world',98
print(lst.index('hello',1,4)) #3
获取列表中的多个元素
语法格式: 列表名[start : stop : step]
lst=[10,20,30,40,50,60,70,80]
#start=1,stop=6,step1
#print(lst[1:6:1])
print('原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段:',id(lst2))
print(lst[1:6]) #默认步长为1
print(lst[1:6:])
#start=1,stop=6,step=2
print(lst[1:6:2])
#stop=6,step=2,start采用默认
print(lst[:6:2])
#start=1,step=2,stop采用默认
print(lst[1::2])
print('------------step步长为负数的情况-----------------')
print('原列表:', lst)
print(lst[::-1]) #倒序
#start=7,stop 省略 step=-1
print(lst[7::-1])
#start=6,stop=0,step=-2
print(lst