赞
踩
Python基础学习
目录
1.Py属于解释型语言,具有跨平台的优势。
2.py的设计目标(吉多)
一门简单直观的语言并与只要竞争者一样强大
开源,以便任何人都能为它做贡献
代码像纯英语那样容易理解
适用于短期开发的日常任务
(简单,可读性强,开发速度快)
3.py的设计哲学
优雅、明确、简单
4.py的特点
完全面向对象
函数、模块、数字、字符串都是对象,在py中一切皆对象;完全支持继承、重载、多重载;支持重载运算符,也支持泛型设计
Py有一个完全强大的标准库
py社区提供了大量的第三方模块,使用方式与标准库类似。(由爱好者开发的)
5.面向对象思维
一种思维方式,也是一门程序设计艺术
要解决一个问题,首先要考虑由谁来做,怎么做事情是谁的职责,最后把事情做好就行,这个对象就是谁。
要解决复杂的问题,就可以找多个不同的对象,各司其职,共同实现,最终完成需求
6.py的优缺点
优点: 简单易学、免费开源、面向对象、丰富的库、可扩展性(用C++或C来编写片段)
缺点: 运行速度慢,国内市场较小,中文资料匮乏
7.py源程序的基本概念
特殊格式的文本文件,可以使用任意文本软件做Py的开发,py程序的文件扩展名通常都是.py。
1.在终端中执行py文件: python xx.py
print 函数 打印输出 ,末尾没有分号
2.bug (出现的错误)
在py中可能会出现缩进错误,使源代码不整齐就会报错(每行代码前不要添加空格)
3.py2不支持中文,py3支持中文
在python后面添加3,代表使用python3的解释器
4.python的解释器
Cpython C语言实现
Jpython 可以再java平台运行
IronPython 运行在.NET和Mono平台
PyPy Python实现的,支持JIT即时编译
5.交互式运行Python程序
直接在终端运行解释器 ,而不需要输入执行的文件名
在Python的Shall中直接输入Python的代码,会立即看到程序的执行结果
此种方法的优点: 适合学习/验证Python语法或者局部代码
缺点:代码不能保存,不适合运行太大的程序
退出官方的解释器
exit() 或者 使用热键 Ctrl + D
6.IPython and IPython2
IPython的i代表交互 interactive
特点 IPython是一个python的交互式shall,比默认的python shall好用的多
优点:支持自动补全、自动缩进、支持 bash shall命令(可以执行Linux命令)、内置了很多有用的功能和函数
IPython 2x 使用的解释器是ipython
IPython 3x 使用的解释器是ipython3
直接退出 exit 注意这个没有小括号
Ctrl+ D 在退出选择会给一个提示:是否退出
7.集成开发环境(IDE)
在一个图形化的界面环境中,集成了开发软件所需要的所有工具
1.恢复PyCharm的初始设置(在Linux中)
关闭正在运行的PyCharm
终端中执行终端命令,删除Pycharm的配置信息目录(.PyCharmxxxx.x)
$ rm -r ~/.PyCharm2016.3
重新启动PyCharm
2第一次配置
是否导入之前的配置信息
选择许可协议
初始配置界面
欢迎界面
3.新建打开Python项目
项目: 解决复杂业务功能的一个软件
打开已经存在的项目,直接导入目录即可
打开项目之后,会在目录下创建一个.idea的目录,用于保存用户的相关信息,例如:解释器版本、项目包含的文件等
首次运行:右击文件 -> 选择run
4.在PyCharm中设置解释器版本
File -> Setting -> Project -> 选择解释器Interpreter
5.命令规则
项目命名:数字编号开头,随着知识点递增,编号递增
例如 01_Python基础、02_分支
文件名:由小写字母、数字和下划线组成,但文件名不能以数字开头
6.新建项目
A: 通过菜单
B: File -> new
7.设置字体
FILe -> Setting -> Editor ->Color and Fout ->Fout -> Size(24) andDia~input
CFout 是输出台的
8.PyCharm的升级
https://www.jebrains.com/pycharm-edu/download/#section=linux
9.将pycharm的目录移动到/opt中
目的是为了让所有用户号都能使用这个软件
9.卸载软件
移除根目录
移除配置信息/usr/share/applications/
删除快捷方式
10.在一个项目下新建一个文件
右击项目 -> File -> Python File -> 命名
新建的程序要鼠标右键进行一次运行
1.1单行注释 # 多行注释 :””” “””
复杂的操作应该添加注释。
1.2格式规范:
在#号后面加一个空格
PET8 python代码格式
reformat 格式化程序格式
注释的位置:在一行的开头或者在代码的后面(代码与注释之间至少要有两个空格)
如果代码存在问题,代码下面就会有小灰线
Step Over 单步执行
设置断点 断点后面不会执行
2.算数运算符
+ - * / 加减乘数
// 取整除(取除法的整数)
% 取余数 (取除法的余数)
** 幂 也叫乘方、次方
算数运算符的’*’可以用做字符串的拼接
"-" * 10 就代表"----------"
"I Love you" * 100 就代表100 个字符串的内容
运算符的优先级:
幂 > 乘、除 、取余数、取整数 > 加法、减法
同一级的运算符是从左向右计算的
可以利用小括号改变运算符的优先级
硬盘永久存储数据,内存是不能永久存储器数据 但是硬盘读取速度慢,内存读取速度快
4.程序执行的原理
程序在没有执行之前保存在硬盘上,操作系统首先会让CPU把程序复制到内存中,CPU执行内存中的程序代码
5.Python程序执行原理
操作系统会让CPU把Python解释器的程序复制到内存中,Python解释器根据语法规则,从上向下让CPU翻译Python程序中的代码,CPU负责执行翻译完成的代码。
6.程序的作用
程序用来处理数据,而变量就是用来存储数据的
7.变量的定义
变量名 = 存储在变量中的值 或 变量表达式
Python定义变量不用说明数据类型,在运行时,Python解释器会根据赋值语句等号右侧的数据自动推导出变量中保存数据的准确类型
8.在PyCharm中快速关闭其他窗口的方法
选中不关闭的窗口,鼠标右键,点击Close Others
点击调试按钮,打一个断点,点击调试(Shift + F9)
然后可以利用快捷键Shift + F8进行单步测试
PS:True 真 False 假
Close Tab 代表关闭标签
9.Python的变量类型
数据类型可以分为数字型和非数字型
数字型:整型 int 浮点型 float 布尔型 True False(除了0都是真) 复数型 complex
非数字型:字符串(str) 列表 元组 字典
PS:在python2x版本中整型根据保存数值的长度还分为:int 整数 long 长整数,但在3x中整合了整型和长整型
PS:使用type(name)函数可以查看一个变量的类型
10.不同类型变量之间的计算
A: 数字类型变量之间可以直接计算,True代表1,False代表0.
B: 字符串变量之间使用+做字符串拼接;
字符串变量可以使用整数和使用*重复拼接相同的字符串
1.变量的输入
获取用户在键盘的输入信息,使用input函数 input( ),可以同时制定提示信息
password = input("请输入银行卡密码")
input得到的数据类型都是字符串
print(x)将x输出到控制台
type(x)查看x的变量类型
2.类型转换函数
int(x)将字符串转换成整数
float(x)将字符串转换成浮点数
在键盘输入数据的时候,最好直接转换数据类型,这样节省空间
例如:要从键盘输入一个整数 i = int(input(“请输入一个整数:”))
3.变量的格式化输出
使用格式化字符串 %
%s 字符串 %d 十进制整数, %f 浮点数, %% 输出%
%6d 可以控制输出整数的六位,超过六位全部输出,不足六位在前面0补位
%.2f 可以控制输出小数点后两位
语法格式:
print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1,变量2...))
这个%就相当于C语言中的那个逗号,但是他要是多个变量的话需要用小括号括起来,每个逗号之后要空一格
4.标识符 和 关键字
字母、下划线、数字,不能以数字开头
关键字:python内部的标识符,具有特殊的功能和意义
PS:导入工具包 import 工具包
1.if 判断语句
if 条件:
执行
if语句和下面所有缩进的语句为一个完整代码块
PS:Ctrl+S 剪切快捷键 条件与冒号之间不空格
2.if - else 语句
if 条件:
执行
else:
执行
3. elif 语句
当希望分支语句,条件不同,执行的代码也不同,就可以使用elif
if 条件:
语句
elif 条件:
语句
else
语句
(else 是所有情况都不满足时的语句)
4.运算符
== 相等 > 大于 < 小于 >= 大于等于
<= 小于等于 != 不相等
PS: 在python2x中 <> 也可代表不等于
5.PyCharm快速注释:
选中代码块 Ctrl + /
取消注释操作相同
shift + F10 执行程序的快捷键
6.逻辑运算
与: 条件一 and 条件二 或: 条件一 or 条件二
非: not 条件 (取反操作)
7. if嵌套
在条件满足的前提下,再增加额外的判断
8. 综合案例 石头剪刀布
调整代码格式 :当if 语句太长了
可以在判断语句外加个小括号,在or或and处换行,并缩进八个格,跟下面的语句空一行
9.使用随机数
导入随机数的模块 import random
random.randint(a,b) 返回(a,b)之间的整数,包含a和b
PS: 导入工具包应该放在文件的顶部,方便下面语句能调用工具包的函数
导入模块后,可以在包模块名称后加“.”,会提示该模块包含的所有函数,要是在Linux的Ubuntu里面需要按下Tab键,
10.程序的三大流程:
循序、分支、循环
1.while语句基础语法
初始条件设置 —— 通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时执行
条件满足时执行
......
处理条件(计数器 + 1)
PS:while 语句以及缩进部分是一个完整的代码块
在Python里的自加一: i = i+1 (不能用i++表示)
Console 代表控制台
2.赋值运算符
+= -= *= /= %= //= **=
3. 计数方法
自然计数法 从1开始
程序计数法 从0开始
4.break and continue
break 满足某一个小条件 执行break 退出循环
continue 不会执行接下来的代码,让循环回到程序开头
PS:在循环中,使用continue这个关键字,在使用关键字之前要注意循环的计数是否修改,否则可能进行死循环
5.循环嵌套
每层添加四个空格的缩进
内层循环的变量要定义在内层while语句上
6. print 函数默认换行
如果不希望末尾添加换行,可以再print函数输出内容之后添加 ,end="",end中""中间的内容会替换换行
7.转义字符
\t 控制台输出一个制表符,垂直方向对齐
\n 在控制台输出一个换行
\\ 反斜杠号
\' 单引号
\" 双引号
\r 回车
8.变量的命名
1.函数的定义
所谓函数就是把具有独立功能的代码块组织为一个小模块,在需要用的时候调用。
2.函数的使用:
定义函数 --封装 独立的功能
调用函数 --享用 封装的成果
函数的作用,在开发时,使用函数可以提高编写的效率以及代码的重用
3.函数的封装
def 函数名( ):
然后把下面的代码缩进一个Tab
函数就封装完成了
4.使用封装的函数
import 导入封装函数的文件名
文件名.函数名()
就可以使用封装的函数
5.函数的定义
def 函数名( )
函数封装的代码
......
def是define的缩写;函数名称应该能表达函数封装代码的功能;函数命名应该符合标识符的规则
定义好函数之后,只表示这个函数封装了一段代码而已;要通过调用函数来执行函数
6.函数的调用能否放在函数定义的上方?
结果是不行的 ,因为python的解释器是从上向下执行的,如果在定义之前调用函数就会产生报错。一般会产生NameError
7.在函数内部单步调试函数程序:
Shift + F7 -> Step into
8函数的文档注释:
函数定义上方要有两个空行
Ctrl + Q 快速查看文档注释
在函数定义的下方,使用连续的三对引号,引号之间写函数的说明文字
9.函数的参数
实参:调用函数时,传递的数据
形参:定义函数时,接受参数并当做变量使用
10.函数的返回值
return 关键字
调用函数时,用有个变量来接收函数的返回值
return表示返回,在他下面的代码不会被执行
11.函数的嵌套调用
函数里面又调用了一个函数
12.分割线演练(函数)
打印五行的分割线,分割线的要求可以指定字符和重复次数
多行分割线的内部参数
查看快速文档注释:点击调用函数 -> 按Ctrl + Q 即可显示快速文档
PyCharm快速添加文档注释,点击定义的函数名,点击小灯泡第二项 insert~
添加后的样子:
1.模块的定义
.py结尾的源代码都是一个模块
在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具
在使用模块之前要先用import关键字导入模块
2.模块名也是一个标识符
由字母、数字、下划线组成,不能以数字开头,不能与关键字重名
如果模块名不符合标识符的规则,则利用import无法导入模块
3.Pyc文件(了解)pycache
C是compiled 编译过的意思
字节码:
1.列表的定义
List是python使用最频繁的数据类型,其他语言中称之为数组
作用:专门存储一串信息,列表用[]定义,数据之间用","分开,列表的索引从0开始,索引又称为下标
2.列表存储数据的特点
len(列表) 获得列表长度n+1
列表.count(数据) 数据在列表整出现的次数
列表.sort( ) 升序排序
列表.sort(reverse = True) 降序排序
列表.reverse( ) 反转、逆序
列表[索引] 从列表中取值
列表.index[数据] 获得数据第一次出现的索引
del 列表[索引] 删除指定索引的数据
列表.remove[数据] 删除第一个出现的指定数据
列表.pop 删除末尾数据
列表.pop[索引] 删除指定索引的数据
列表.insert[索引,数据] 在指定位置插入数据
列表.append[数据] 在末尾追加数据
列表.extend[列表2] 将列表2的数据追加到列表1
3.列表的常用方法
append、count、insert、reverse、clear、extend、pop、sort、copy、index、remove
4.列表中数据的常用操作
取值 : 列表[索引]
取索引:列表.index("balabala") 就是查找指定数据的位置
修改: 列表[索引] = 指定的新数据
增加: 列表.append = 增加的数据
插入: 列表.insert(n,要插入的数据)
(添加列表) 列表.extend(其他列表)
删除:列表.remove(指定数据) 删除对一个数据
列表.clear() 可以清空列表
列表.pop() 不添加索引,默认删除列表的最后数据
列表.pop(n) 删除指定索引的数据
del 列表[索引] 删除索引数据
统计:
len(列表) 统计列表中的数据个数
列表.cout(“bala”) 统计列表中一个数据出现的次数
排序:
列表.sort() 将列表升序排序
按首个字母的英文排序,数字大小排序
列表.reverse() 反转
列表.sort(reverse=True) 降序排序
PS: 选中方法 + Ctrl +Q 可查看帮助文档
PS:del本质上是将一个变量从内存中删除的,后续的代码就不能使用这个变量了,所以在日常开发删除列表中的数据最好不要使用这个关键字
统计:
5.列表中关键字、函数、方法
6.列表循环遍历
遍历就是从头到尾获取列表中的数据
Python为了提高列表的遍历效率,专门提供iteration遍历(迭代遍历)
for 变量名 in 列表变量:
循环内部针对列表元素进行操作
print(变量名)
7.列表的应用场景
存储多个相同类型的数据
通过迭代遍历对每一个数据进行相同的处理
1.元组的含义
元组和列表相似,定义元组变量使用一对小括号,元组定义完成不能修改元组中的任意数据。
元组的作用: 可以保存不同类型的数据
2.元组的定义
空元组的定义 empty_tuple = ()
元组中只包含一个元素:one_tuple = (2, )
3.元组的常用操作
元组取值和取索引
info_tuple[0] 取值
info_tupe.index("张三") 取索引
统计计数
info_tuple.cout("张三") 统计元组中某个元素出现的个数
len(info_tuple) 统计元组中的元素个数
PS:在ipython中先定义一个空元祖,然后元组名. Tab 可查看元组具有的方法
4.循环遍历元组
for 循环内部使用的变量 in 元组:
循环内部针对元组元素进行操作
print(循环内部使用的变量)
5.元组的应用场景
可以接受函数的参数,格式化字符串,保护数据安全
6.元组和格式化字符串
格式化输出后面的小括号就是元组
使用格式化字符串可以使用一个元组拼接
使用格式化字符串是可以用一个元组来拼接一个字符串
7.元组和字符串之间的转换
list[元组] 可以将元组转换为列表
tuple[列表] 可以将列表转换为元组
PS:
1.字典也可以用来存储多个数据
列表是有序的对象集合
字典是无序的对象集合
字典用{ }定义,使用键值对(key: value)存储数据,键值对之间用”,”分隔
Xiaoming = {"name":"小明", "age":18} 通常用于存储一个物体的信息
PS:value 与key后面的冒号空一格.定义字典的时候最好每个键值对占一行
2.对字典的操作
取值:
xiaoming[key] 在字典中取值,中括号内部指定的是键值对的key
增加/修改:
如果key不存在会新建键值对,如果key存在就会修改原来的键值对
直接建立一个新的键值对即可
xiaoming["age"] = 20 xiaoming["age"] = 18
删除:
利用pop方法指定key,可以删除对应的键值对
Xiaoming.pop(key)
3.一个函数两个方法
统计键值对的数量 len(字典)
合并字典 字典.update(字典)
PS:如果在合并的字典中包含已经存在的键值对,就会更新原来的键值对
清空字典: 字典.clear()
4.循环遍历字典
for 循环内部使用的‘key的变量’in 字典
print("%s - %s" % (使用的key, 字典[使用的key]))
5.应用场景
处理复杂的数据信息,可以将字典放在一个列表中
1.字符串的定义
双引号和单引号都可以定义字符串,大多数编程语言都使用双引号定义字符串
单引号的适用范围:单引号里用双引号来做特殊说明
2.字符串的索引
str[索引] 可以找到索引处的字符
3.迭代循环字符串
for char in str:
print(char)
4.字符串的计算
len(字符串) 获取字符串的长度
字符串.cout(字符串) 可以统计小字符串在大字符串中出现的次数,也可以是单个字符
字符串.index(字符串) 获得小字符串第一次出现的索引
判断空白字符
str.isspace() 转义字符\n\t\r 都算空白字符
判断只包含数字
str.isdecimal() 可以判断unicode字符串,就是正常键盘无法输入,可以通过特殊输入法或者编码输入 例如: \u00b2
查询和替换
文本对齐
向左、向右、居中
str.ljust(width)
str.rjust(width)
str.center(width)
去除空白字符
str.strip() 删除前后空白字符
str.lstrip() 删除左边的空白字符
str.rstrip() 删除右边的空白字符
字符串拆分和连接
列表接收 = str.split() 可以把一个大的字符串拆分成一个字符串列表
列表变量接收 = " ".join(列表) 连接字符串
is方法:
查找和替换
大小写转换
文本对齐
去除空白字符
拆分和连接
7.切片
str[n:m] 切掉的不包含你,包含m
PS:列用切片可以使字符串逆序
1.python内置函数
len( ) 计算容器中元素的个数
del( ) 删除变量,也可以作为关键字删除变量
max( ) 返回容器中元素最大值
min( ) 返回容器中元素最小值
cmp( ) 比较两个值(> 1.< -1,= 0)
PS: 在字典中man和min函数针对key比较
在python中取消了cmp函数
字符串比较符合以下规则:
"0" < "A" < "a"
2.切片
列表和元组都是有序的集合,都可以使用切片;字典存储的是无序的集合,通过键值对来保存数据
3.运算符
三者(不包括):
+ 合并
* 重复
> < >= <= == 元素比较
四者:
元素 in 集合 判断集合是否存在
元素 not in 集合 判断集合是否不存在
PS:in 和 not in 被称为成员运算符
in在对字典操作时,判断的是字典的键
4.完整的for循环语法
for 变量 in 集合:
循环体代码
else:
没有通过break退出循环,循环结束后执行的代码
PS:在循环执行结束后,就会执行else语句的部分,如果在循环体里面使用了break,else语句就不会被执行
1.Shebang #!
which python3
在主程序加上Shebang+python的完整路径,程序在终端中能直接执行,不用加载解释器
2.变量的引用:
在python中变量和数据是分开存储的,变量记录数据的地址这一动作就叫引用
如果变量已经被定义,当给一个变量赋值的时候,本质上修改了数组的引用
3.调用函数传递实参引用
4.可变和不可变类型
使用方法改变内部数据,内存地址是不会发生改变的,当给一个可变变量重新赋一个新的数据,引用会修改
5.可变类型的数据不能作为字典的key,不可变得类型数据能作为key。
整数,字符串,元组可以;
列表、字典不可以
6.哈希算法
python的内置函数hash( )的函数
接收一个不可变类型的数据作为参数,返回的是一个整数
作用:提取数据的特征码,相同的内容得到相同的结果,不同的内容得到不同的结果
7.局部变量和全局变量
函数内部 -> 局部变量,只能在函数内部使用,也就是说不同的函数中的内部变量可以定义为同名的
函数外部 -> 全局变量,可以在所有函数中
使用这个变量
8.局部变量的生命周期
从被创建到系统回收,函数执行结束后,局部变量的死亡了
9.全局变量的使用
在函数内部不允许修改全局变量的数据
如果使用赋值语句,只会定义一个全局变量
10.在函数内部对全局变量修改
使用global关键字
11.全局变量的位置
全局变量应该定义在所有函数的上方
12.函数参数和返回值的作用
当函数内部需要从外部数据时,就需要给函数传入参数
返回值,就是需要函数向外部汇报一个结果
13.返回多个返回值
利用元组
如果函数的返回类型是元组,同时希望单独处理元组中的元素,可以使用多个变量一次接受函数的返回结果。
temp, wetness = result()
14.python特有的交换变量的方法
a = 1
b = 2
a, b = (b, a) 等号右边是一个元组,可以去掉小括号
15.在python中,列表变量使用 += 本质上是在执行列表变量的extends方法,不会修改变量的引用
16.函数的缺省参数
17、函数的递归
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。