目录
4.3 break和continue语句及循环中的else子句
一、Anaconda以及jupyter的准备工作
Anacond的安装过程较为简单,具体的可以参考知乎https://www.zhihu.com/question/46309360/answer/254638807,这里面关于Anaconda以及jupyter的安装教程还算详细的。
其中,有两种常见问题:
1)Anaconda安装后,点击anaconda navigator后,一直卡在loading application界面。
关于这个问题,网上给出的原因很多,我也试过不少。比较有效的解决方案是:进入F:\Anaconda\Lib\site-packages\anacondanavigator\api\anaconda_api.py 即你anaconda的安装路径,找到anaconda_api.py,将811行的将versions=[vsdata.get('productVersion')], 改成 versions=["1b8e8302e405050205e69b59abb3559592bb9e60"], 问题基本上可以解决。
2)cmd不具备anaconda prompt的某些功能
当你安装anacond后,一般情况下可以在cmd上查询一些版本信息之类的,比如conda --version等。但是初次安装后,我发现cmd一直提示conda不是内部命令,很多anaconda的操作都无法执行,但是anaconda prompt却可以正常使用。这个主要是在安装过程没有将script加入环境变量。网上也有一些修改环境的方法,我试过好多种,效果不佳。可以考虑卸载重装,在安装过程勾选红色部分,(默认状态是未勾选的)
2、jupyter的虚拟环境准备
创建新的虚拟环境 conda create -n myenv python=2.7
查询所有环境 conda env list
激活某环境 conda activate myenv
退出当前虚拟环境 deactivate即可(或者conda activate root,返回base环境)
查询安装的那些数据包 conda list
安装某个包 conda install package_name(包名)
将新的环境加入jupyter中
1)安装ipykernel : conda install ipykernel
2) 将环境写入notebook的kernel中: python -m ipykernel install --user --name test
通过jupyter kernelspec remove test
删除环境
3、关于jupyter中的断点调试
在需要breakpoint的地方插入import pdb; pdb.set_trace()
,运行后会进入debugger,有一个交互界面。
二、python基础
1、python中转义字符
参考链接:https://www.cnblogs.com/Gaoqiking/p/11254505.html
这其中:\r 能将光标定位到当前行的行首
\b则是将光标退回一位
光标的含义:光标后面的输出内容均会消失,光标回退后,后面位置的内容都会被抹除。
2、python数据类型
(1)关于python 单引号、双引号问题。在字符串输出,单双引号输出其实没啥差别。但是在实际应用中,单双引号的使用要视情况而定,详细可参考:https://blog.youkuaiyun.com/woainishifu/article/details/76105667
(2)python3中6个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)。
概述:字符串常见形式:str = ('my')或者(“my”),两种方式均可;
列表:以[]来创建,list1 = ['Google', 'Runoob', 1997, 2000] or list2 = [1, 2, 3, 4, 5 ] or list3 = ["a", "b", "c", "d"] or list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black'] 均可,且列表元素可修改;
元组:使用(),tup1 = ('Google', 'Runoob', 1997, 2000) or tup2 = (1, 2, 3, 4, 5 ) or tup3 = "a", "b", "c", "d" # 不需要括号也可以;但是元组的元素不可被修改;
字典:使用{},键值对 如 : dict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'};
集合:大括号{},或者set();但是创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
------------------------------------------------------------------------------------------------------------------------------
Number:float、bool、complex、int(python3中无long整型)
String:“my”或者‘my’ 单双引号均可
但字符串不可被修改;+ 可进行str拼接,*可进行重复运算
索引切片时,str[2:5],不包含索引号为5的值
List:[ ‘1’,‘2’ ],元素逗号间隔;
+ 可进行str拼接,*可进行重复运算
元素可被修改
Tuple:( ) ;元素逗号间隔,与list类似
但元素不可被修改
0或1个元素的元组,由特定语法创建tup1=() 空元组;tup2=(20, ) 只含一个元素的元组
Set:{ }或者set ()均可创建
元素可被修改
空集合只能由set()创建
Dictionary:{ };键值对,健唯一,但值未必
----------------------------------------------------------------------------------------------------------------------------
2.1 Number(数字)
Python3 支持 int、float、bool、complex(复数);在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。内置的 type() 函数可以用来查询变量所指的对象类型。
详细内容参考:https://www.runoob.com/python3/python3-number.html
2.2 String(字符串)
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。注意,python字符串不能被改变
值得留意的是:print(str[2:5])指的是输出noo,并不包含索引号为5的字符b;但是str[2:]则会输出至5,即索引号为3后的所有字符。
详细内容参考:https://www.runoob.com/python3/python3-string.html
2.3 List(列表)
List的截取,注意步长所指间隔,如list[1:4:2],步长为2,即间隔一个数,如下图:
详细内容参考:https://www.runoob.com/python3/python3-list.html
2.4 Tuple(元组)
与列表List类似,但是元组的元素不可以被更改。元组写在小括号 () 里,元素之间用逗号隔开。它的基本操作与list也类似
构造包含0个或1个元素的元组比较特殊,需要额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
注意:
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接/
详细内容参考:https://www.runoob.com/python3/python3-tuple.html
2.5 Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
详细内容参考:https://www.runoob.com/python3/python3-set.html
2.6 Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
详细内容参考:https://www.runoob.com/python3/python3-dictionary.html
3、python运算符
具体内容可阅读:https://www.runoob.com/python3/python3-basic-operators.html
比较容易混淆的主要是逻辑运算符 and/or/not 这三个的优先级为 not and or (由左至右)
4、python循环语句
Python 中的循环语句有 for 和 while。
4.1 while语句
在 Python 中没有 do..while 循环。
while 判断条件(condition):
执行语句(statements)……
while循环使用else语句:
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
4.2 for 语句
Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
在for 实例中使用了 break 语句,break 语句用于跳出当前循环体:
4.3 break和continue语句及循环中的else子句
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。
4.4 pass语句
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句
5、python字符串格式化输出
详细参考:https://blog.youkuaiyun.com/qq_29720657/article/details/102771436
在程序中,看到%s这样的操作符,这就是python中字符串格式化的符号。除此之外,还可以用%符号对其他类型的数据进行格式化。常见的格式化符号如下表。
三、python训练简记
3.1 字符串格式化
"N={}, Sum={}".format(N,sum) 称为字符串格式化,大括号和其中的字符会被替换成传入 str.format()
的参数,也即 N
和 Sum
。其中 {:.2f}
的意思是替换为 2 位精度的浮点数。
四、Numpy
以下内容来源于蓝桥云课内容:https://www.lanqiao.cn/courses/912/learning?id=3406
4.1 关于Numpy
Numpy的英文全称为 Numerical Python,意味 Python 面向数值计算的第三方库。NumPy 的特点在于,针对 Python 内建的数组类型做了扩充,支持更高维度的数组和矩阵运算,以及更丰富的数学函数。NumPy 是 Scipy.org 中最重要的库之一,它同时也被 Pandas,Matplotlib 等我们熟知的第三方库作为核心计算库。当你在单独安装这些库时,你会发现同时会安装 NumPy 作为依赖。
4.2 Numpy所支持的数据类型
4.3 Numpy多维数组创建(5种常用方法)
- 从 Python 数组结构列表,元组等转换。
- 使用
np.arange
、np.ones
、np.zeros
等 NumPy 原生方法。 - 从存储空间读取数组。
- 通过使用字符串或缓冲区从原始字节创建数组。
- 使用特殊函数,如
random
。
这一部分主要包括各类ndarray的创建,zero、ones、eye等,以及数组属性的输出
详细创建方法阅读:https://www.lanqiao.cn/courses/912/learning?id=3406
4.4 数组的维度和形状
4.4.1 维度
4.4.2 形状
在numpy中,可以通过.shape查看数组的形状:
4.4.3 数组的操作
常见的操作包括:reshape 、concatenate(拼接)、split(拆分)、resize、append等
详见:https://www.lanqiao.cn/courses/912/learning?id=3406 数组基本操作部分
4.5 Numpy随机数
NumPy 的随机数功能非常强大,主要由 numpy.random
模块完成。
numpy.random.rand(d0, d1, ..., dn)
方法的作用为:指定一个数组,并使用 [0, 1)
区间随机数据填充,这些数据均匀分布。