文章目录
# day01
##学习小捷径> 1.验证课堂例子> 2.完成作业实践> 3.很好的搜索引擎> 4.把想法变代码 ___
##一:python基础
1.python简介,安装及IDLE工具- [ python官网](https://www.python.org/ ) | [ 蟒实际应用<打开网页往下翻看> ](https://www.zhihu.com/question/20799742 )** -安装** ** 版本选择** ** -windows下开发环境配置** > **|
a.进入**python官网 | 点击download选择版本|点击版本选择操作系统位数(课上使用2.7.14和3.6.5两个版本)(既然安装了两个,那么想在命令行指定选择哪个版本就输入 py -2 | py -3 两个命令来选择)
b.安装: 安装时有个安装路径需要记住一下<用于下一步配置环境变量>(默认安装路径|手动选择路径)<运行环境>
c.安装成功后配置环境变量(为什么需要设置环境变量):先进入环境变量设置界面(计算机->属性->高级设置->环境变量->系统环境变量)|在Path值最后面加上 一个分号(用于和上一个环境变量隔开)以及python安装路径(文件夹的路径)|和python/scripts文件夹的安装路径<其下有pip.exe,需要用到>,记得保存
如何验证环境变量配置成功:从环境变量的作用上去检测,即配置完成后在任意路径下都能运行某一个.exe程序,那么最直接的方法就是进入cmd,使用命令行敲出该程序,和linux系统一样…,看能否运行,如显示找不到该命令,则配置失败
- python开发工具pycharm安装与使用
下载和安装:jetbrians官网
汉化pycharm
激活:License server |输入(http://xidea.online)| 不行就自己上淘宝花两块买一个激活码
使用:点击 new project ->pure python | 设置项目创建的位置 | 并按照下图进行设置编译器的路径
创建文件夹和py文件并运行helloworld
-
IDEL
-
python中文编码
python中默认的编码格式是ASCII码格式,在没修该编码格式之前无法正确打印汉字,所以需要在py文件开头声明编码格式:即在开头<第一行或者第二行>加入
```
#coding=utf-8
print"张三"
或者
#first
# -*- coding:utf-8 -*-
print"张三"
```
- 如何添加文件头信息
打开file | Settings | Editor | code style | File and Code Templates | Python Scripts 在里面输入就ok
**:英文输入法状态下的双引号和单引号皆表示字符串,当存在包含关系时,单引号内放双引号,双引号内放单引号,也可以用转义字符\,代码如下
打印“我叫”+姓名+','+'今年'+年龄+'岁'+','+天气
打印姓名,年龄,性别,爱好 回声: 我叫love23,今年22岁,今天天气不错` `
___ - 内存地址: >在python中,变量其实就是对象在特定命名空间中的名称而已,而对象本身的类型信息是保存在他地址自己内部的.— 即python中,每个物体都被事先分配好内存空间,声明变量指向他只是给他不同的名字,类似于C语言里的指针,所以python中变量只能先赋值后使用 打印ID(3) α= 3 b = 3 打印ID的(a) 打印ID(b)中 回声: 31815976 31815976 31815976
___ - **
变量命名规范:**
>1.字母,数字,下划线组成,不能数字开头
2.关键字不能作变量名
3.除了下划线,其他符号不行
4.建议使用驼峰式命名,且取名为相应单词
3.python选择判断结构
4.python循环
5.python函数
6.python面向对象
#day 5.7
###场景:把一个不定长函数的参数内的所有数字单个提取出来并求和
**def function(*args,kwargs):
args 为一个元祖可以直接转化成列表,kwargs也是一个字典,一样可以转化成列表(名字转列表,或值转列表)
eg:
def function(*args,**kwargs): #args 为一个元祖可以直接转化成列表,kwargs也是一个元祖,一样可以转化成列表(名字转列表,或值转列表)
function(1,'2',3,4,'hello5',a=1,b=2)
目标:提取出[1,2,3,4,5,1,2] 并求和
方法1:利用str = re.findall(正则,str,flag) 函数提取再求和
即先将参数列表转化为列表list = [‘1’,2,'3,‘hello5’,‘1’,2]再使用该函数得到[‘1’,‘2’,‘3’,'5 ',‘1’,‘2’]
re.findall()应用| [ 点开链接](https://www.cnblogs.com/xieshengsen/p/6727064.html )
###下述场景实现代码,复制到echo部分运行,echo为输出结果
# re正则分析与应用,list = re.findall('正则',字符串,flag)
# 分析可知:返回值是一个list,变量为一个字符串,那么想使用好re,就得灵活掌握List,字符串操作..
import re
# function:把一个列表内的所有数字单个提取出来并累加
# eg:list = ['1',2,3,'hell4o','5',5] ==> ['1', '2', '3', '4', '5', '5']
# 根据re.findall(),先需要把一个列表中的所有元素相加成一个字符串做参数传入
def listAbsractNumberAndSum(list):
#按照re.findall()处理的是字符串,所以需要先把list所有元素连接成一个字符串
sumStr=''
for i in range(len(list)):
sumStr += str(list[i])
#从字符串中提取出单个数字,并存成一个list
resultList = re.findall("\d", sumStr)
# 对已经提取成纯数字的列表元素进行求和
count = 0
for j in range(len(resultList)):
count += int(resultList[j])
return count
#主函数
#元祖转列表调用提取求和函数,字典值转列表调用提取求和函数
def fun(*args,**kwargs):
return listAbsractNumberAndSum(list(args)) + listAbsractNumberAndSum(list(kwargs.values()))
print(fun(1,'2','hello3',5,a=4,b=5))
echo:
20
###[ Python中列表,元组,str和字典之间的相互转换]
###python 中 print 函数用法总结
###Python 面向对象 —— super 的使用(Python 2.x vs Python 3.x)
###Python运行的17个时新手常见错误小结(今天遇见第14个错误)
###Python 中 import 的机制与实现
###类的继承
###Math模块
#coding=utf-8
import math
import cmath #复数函数库
#取绝对值
print(abs(-10))
print(abs(-10.0))
#向上取整
print(math.ceil(5.2))
#向下取整
print(math.floor(5.2))
#比较 python3 用五个新函数替代python2 的cmp()
import operator #首先要导入运算符模块
# operator.gt(1,2) #意思是greater than(大于)
# operator.ge(1,2) #意思是greater and equal(大于等于)
# operator.eq(1,2) #意思是equal(等于)
# operator.le(1,2) #意思是less and equal(小于等于)
# operator.lt(1,2) #意思是less than(小于)
print(operator.gt(1,2))
print(operator.ge(1,0))
print(operator.eq(2,3))
print(operator.le(1,2))
print(operator.lt(2,2))
#返回自然常量e的x次幂
print(math.exp(2))
#log(x,N)
print(math.log(4,2))
print(math.log1p(2)) # y = ln (1+x)
#平方根 square root = 平方根
print(math.sqrt(4))
#比较大小
print(max([4,5,6]))
print(max(4,5,7))
#max的高级技巧--很重要:https://www.cnblogs.com/whatisfantasy/p/6273913.html
#max的高级理解--很重要:https://www.cnblogs.com/rendawei/p/7057010.html
#幂指数x^y
print(pow(3,2))
#四舍五入
#round(float,ndigits=) 指定小数点后位数
print(round(2.312,1))
#round(x)
print(2.31)
import random
#从给定集合中挑选一个位置的元素
#random.choice(range(10))
#random.choice(range(1,100))
#random.choice(range(1,100,1))
#random.choice(range(100,1,-1))
#ramdom.randrange(1,100,1)
print(random.choice(range(2,100)))
print(random.choice(range(100,1,-5)))
l1 = [1,'2',2.2,'hello']
print(random.choice(l1))
#取[0,1)的一个随机数
print(random.random())
#用random.random()随机生成1~33的数字
print(round((random.random()*100)) % 34)
#四舍五入概率问题,取随机数是很重要的事情
#shuffle(lst) 随机再排列lst
list1 = [1,2,3,4,5]
print(random.shuffle(list1))
print(list1)
#uniform(x,y),随机生成一个[x,y]内的实数
print(random.uniform(-2,3))
print(dir(math))
print(dir(random))
print(random._pi)
###max的高级技巧–很重要:https://www.cnblogs.com/whatisfantasy/p/6273913.html
###max的高级理解–很重要:https://www.cnblogs.com/rendawei/p/7057010.html
###Str模块
#day5.8
###1.List模块
####列表函数
#day5.26
###Numpy 先打开1.14NumPy手册
####课程目标
- 目标1:了解使用numpy的原因
- 目标2:掌握NDArray的创建和索引切片
- 目标3:掌握NDArray常用函数及统计分析函数
- 目标4:掌握NDArray写入问价你的方法
- 目标5:掌握Numpy实现矩阵和通用函数的方法
- 目标6:掌握Numpy实现线性代数中的常见计算
- 目标7:掌握Numpy实现金融计算方面的函数
####目标1:了解使用numpy
-
1.1原因
(1)对于同样的数值计算任务,由于Numpy能投直接对数组和矩阵进行操作,可以省略很多循环语句使用NumPy要比编写Python代码便捷得多
(2)NumPy中数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构;
(3)NumPy的大部分代码都是用C语言写的,能够直接操作硬件,这就使得NumPy比纯Python代码高效得多 -
1.2NumPy是什么
(1)NumPy的全名为Mumeric Python,是一个开源的Python科学计算库,他包括:
a.一个强大的N维数组对象ndarry;
b.比较成熟的函数库
c.用于整合c/c++和Fortan代码的工具包
d.使用的线性代数,傅里叶变换和随机数生成函数
(2)NumPy支持高维度数组与矩阵运算,此外也针对数组与那算提供大量的数学函数库 -
1.3安装NumPy
python能安装的操作系统下都能使用NumPy,如些为Windows下安装NumPy
方法1:(a) 进入官网下载
注意:
–numpy-.143-cpxx-winxx…
–cpxx表示python的版本winxx 表示windows版本
(b)将下载好的(numpy-1.14.3-cp36-none-win_amd64.whl)文件拷贝到yourpath/phthon/scripts/ 下,再进入cmd pip install yourpath/phthon/scripts/numpy-1.14.3-cp36-none-win_amd64.whl 即可
方法2:或者直接进入cmd 然后 pip install numpy(这个是要基于你以及将python/scripts/pip命令添加到环境变量里了,如何添加,在第一天里面有 )
如何检测安装成功,从pycharm里面的setting里可以看到是否有numpy即可
- 1.4小案例
#实现并创建两个矩阵,并将其相加
import numpy as np
def numpySum(n):
a = np.arange(n) ** 2
print(a)
b = np.arange(n) ** 3
print(b)
c = a+b
return c
c = numpySum(5)
print(c)
arange()函数的用法说明
1.打开Numpy1.14Manual->Ctrl + F 搜索输入arange()即可找到用法,纯英文的赋值过去用有道翻译一下
numpy.ma.arange([start, ]stop, [step, ]dtype=None) = <numpy.ma.core._convert2ma object>
**注意:文档中的[arg,] 代表着该参数有一个默认值,可以不传递,使用默认值,没有加[] 或者 dtype=None 类似于这种给定默认参数的都需要传递,在此只需要传递一个stop 参数即可,注意,取值是从[start,stop)先闭后开的区间(手册上有说明)**
返回值:一维数组
主要是提升看官方文档的能力