梳理性总结。
Python由module组成,module是PY文件,文件由语句组成,语句由对象和函数构成。小问题找函数,大问题找包。全新体验认准python.org。:)
conda install numpy/pip install numpy
;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ numpy
(可以替换成其他的服务器,豆瓣,或者自己的大学)(比较快,比较稳定);pip install 路径/the.file.whl
。pip install numpy --upgrade
2)conda update numpy.
pip uninstall imageic
模块名.函数名()
。如果名字太长,用第二种写法: import 模块名 as 外号
外号.函数()
部分外号是固定好了的。
还有第三种写法为:from 模块 import 函数
。调用的时候不需要写模块名字,直接引用函数。
import sys
sys.path
['',
'C:\\Users\\yy\\Anaconda3\\python36.zip',
'C:\\Users\\yy\\Anaconda3\\DLLs',
'C:\\Users\\yy\\Anaconda3\\lib',
'C:\\Users\\yy\\Anaconda3',
'C:\\Users\\yy\\AppData\\Roaming\\Python\\Python36\\site-packages',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\Sphinx-1.5.1-py3.6.egg',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.6.egg',
'C:\\Users\\yy\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\yy\\.ipython']
import sys
sys.builtin_module_names
import os
os.getcwd()
#修改
#os.chdir("E:\\ ")
出来的是jupyter文件存在的路径。
如果想把整体的文件的路径都改掉,比如说jupyter的目录。具体做法参考朝乐门老师工作室的教程。完全没有问题。
https://mp.weixin.qq.com/s/5kXgYYSOoTPn2AAu5eyLFA
jupyter notebook是一个很灵活的软件。
try后面跟需要的语句,用except打补丁,并给出语音提示。
代码如下:
try:
f = open('myfile.txt','w')
while True:
x = input("输入一个整数,若要停止请输入字母‘N’")
if x.upper() == 'N':break#往下跳。continue重复上一个语句
y = 100/int(x)
f.write(str(y)+'\n')
print(y)
except ZeroDivisionError:
print("ZeroDivisionError")
except ValueError:
print("ValueError")
finally:
f.close()
有问题可以上官网检索exception
变量的函数和变量的定义封装在一起叫类。面向对象是一个封装,目的是为了再次调用。另一个大类下的小类进行定义的时候,可以继承。有些属性可以继承,publish的是可以继承的;属性是proteced的,外面的不能继承;private的。比较隐私,继承者无法继承。
python在做的过程中没有面向对象的概念,但是在用第三方的包的时候,往往会遇到别人用面向对象写的代码。
变量前面有一个下划线的,是proteced的,有两个下划线的,是private的。类其实是空的,因此要先实例化,把他定义成一个对象。python的实例化模板为:
p = person('tom',30)
p.say_hi()
class Person:
#定义了三个变量
nationnality = 'china'
_deposit = 10e10#protected
__gender = 'M'#private
#函数1
def __init__(self,name,age):#不能改
self.name = input('创建您的昵称')#实例属性
age = age#局部变量
#函数2
def say_hi(self):
print(self.name)
#把tom和30传递给name,age
p1 = Person('Tom',30)#把person转化成p1的实例
p1.say_hi()
像下面的案例,就不会把输入放在里面,不然会覆盖。一般都是在里面写静态的赋值。
#错误案例
class Person:
#定义了三个变量
nationnality = 'china'
_deposit = 10e10#protected
__gender = 'M'#private
#函数1
def __init__(self,name,age):#不能改
#self.name = name
#age = age
self.name = input("新建您的昵称:")#实例属性
self.age = input("设置角色的年龄:")#实例属性,局部变量的话应该写age = age
#函数2
def say_hi(self):
print("您好!"+self.age+"岁的"+self.name)
#print(self.name)
#p1 = Person('Tom',30)
#p1.say_hi()
p1 = Person(1,1)
p1.say_hi()
#待补充
@staticmethod
#静态函数的装饰器。
@classmethod
#类装饰器。
x = 1
y = 2
z = 3
x,y,z = y,x,z
x,y,z
height = [1,11,111,1111,1111,1111,1,1,1,1,1,1,1,1,1]
weight = (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
import matplotlib.pyplot as plt
#在输出框里显示静态图。换成notebook,换成静态图。
%matplotlib inline
plt.plot(height,weight)
plt.rcParams['font.family'] = 'DengXian'#画图的中文显示,设置为宋体
plt.xlabel("身高(英寸)")
plt.ylabel("体重(千克)")
plt.title("何以解忧唯有暴富")
import matplotlib.font_manager
[f.name for f in matplotlib.font_manager.fontManager.ttflist]#列表推导式
mylist = [1,2,3,4,5,6,7,8,9,10]
filter(lambda x: x%3 ==0, mylist)#过滤函数#过滤条件,过滤对象#只有把%放在前面才是魔术命令
#filter函数是通过迭代的方式,从第二个参数里面读取送给第一个参数。x没有特意声明。
print(*filter(lambda x: x%3 ==0, mylist))
list(filter(lambda x: x%2 ==0, mylist))
#输出
3 6 9
[2, 4, 6, 8, 10]
import pandas as pd
pd.__version__
#jp 主题
#pip install jupyterthemes #从网上下载
###pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ jupyterthemes#上一个,这个比较快
#jt-l #查询是否真的安装了
#jt-1 chesterish
#jt-r #恢复原来的白色设置
#import numpy as np
a = range(1,7,1)#输出1234567
print(a[0:2:6])#输出1,3,5
#用numpy不规则地切 可以随意切,叫fancy Indexing
#print(a[[1,3,4]])#切出来第1,3,4列