全网最详细超长python学习笔记、14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了!
相关文章:
全网最详细超长python学习笔记、14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了!
【1】windows系统如何安装后缀是whl的python库
【2】超级详细Python-matplotlib画图,手把手教你画图!(线条颜色、大小、线形、标签)
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
python入门合集:
python快速入门【三】-----For 循环、While 循环
python学习笔记 jupyter notebook教学,14章节知识点很全面十分详细。
注意事项:本博客是我早起自己写的python笔记word版本,现在转成博客形式,由于ipython文件找不到了,很多代码都会以图片形式出现,不过放心不影响学习,对于比较长的程序例子我回重新贴好代码放入。
python笔记+代码下载地址:https://download.csdn.net/download/sinat_39620217/16658064
DLE (Integrated Development and Learning Environment)集成开发与学习环境
编辑器 交互模式---指令直接反馈
编辑器—new file
修改编辑器字体:Options --- configure IDLE
Alt+p 重复上面输入 Alt+n,获取下一部分代码 ctrl+c 终止,整体缩进:tab 整体取消缩进:tab+shift,整体缩进 Ctrl+【 整体取消缩进 Ctrl+】。
1.变量名
py3.7中文可以当作变量名
#引入第三变量
#引用第三变量
X=3
Y=5
x,y=y,x
Print(x,y)
2.字符串
①单引号和双引号----基本差别
.单引号(双引号)用于引用; 转义字符
print("\"let\'s,go\"")
#"let's,go"---------------------转义字符保证引号无别的含义
#显示路径:
Print(d:\\das\\dasd\\das\\now)#---反斜杠转义反斜杠
②原始字符串:
print(r"d:dasd\dasda\gdf") #加r 为原始字符串,及后面字符无含义
#d:dasd\dasda\gdf
字符串相加===字符串拼接:
>>> first_name=("abc")
>>> last_name=("efg")
>>> full_name=first_name+" "+last_name
>>> print(full_name)
abc efg
乘法----代表复制
3.修改字符串大小写等
>>> name=('asd love')
>>> print(name)
asd love
>>> print(name.title()) #只把首字母变大写
Asd Love
>>> print(name.upper()) #全部变大写
ASD LOVE
删除空白:
>>> massge=("python ")
>>> massge.rstrip() #删除末尾空白
'python'
>>> massge=(" python ")
>>> massge.lstrip() #删除前面的空白
'python
其中:函数:Str() 转为字符串
3.Game:基础语法测试程序:
"""python game"""
import random
count=10 #猜三次
answer=random.randint(1,10) #生成随机数
while count > 0:
temp = input("猜猜数字")
guess =int(temp)
if guess == answer:
print("right")
break
else:
if guess < answer:
print("小了")
else:
print("大了")
count-=1 #py没有自增自减
print("end")
随机数状态:Random.getstate() random.setstate()获得原来的数字
4.数字类型
浮点数精度有误差0.1+0.2=0.30000004 ;
- Decimal 十进制模块
decimal.Dicimal(‘’)
保证计算正确性。
- 运算
//[向下去整] 3/2=1; -3/2=-2地板除
取余%
divmod() 直接求得 取余和取商(//)
divmod(3,2)得(1,1)
dicmod(-3,2)得(-2,1)
int(3.14)=3 不是四舍五入
complex(“1+2j”)复数;
1e6 十的六次方 2e6:2十的六次方
Pow(x,y)计算x的y次方
X**y 计算x的y次方
其中:pow(x,y,z)==x**y%z
- 布尔类型
Bool()false true
定义为false对象:none和false
值为零的数字类型:0,0.0,0J,decimal(0),fraction(0,1)
空的序列和集合:’’.[],{},set(),range(0)
True==1,false==0;
>>>3and4
4
>>>4or3
4
>>> "123" and "456 '
456
>>> " 123 and 345
345
>>>
除了逻辑运算,数值也可以
>>>(not1)or(0and1)or(3and4)or(5and6)or(7and8and9)
4
短路逻辑:从左往右,只有当第一个操作数的值无法确定逻辑运算的时候,才对第二个数进行求值
And 右边结果最终影响逻辑结果,3为true 4也为true 取4 or 第一个为4时就已经判断;
O or 3 ==3 o and 3==0(and两个都为真为true;or两个都为假为假 )
not 1 or 0 and 1 or 3 and 4 and 5 and 6
6
优先级 not > and >or
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 ---------------4
小括号内容:False 0 4 6 9
因为是or 到4
得4
5.列表
①列表normal:
①列表normal:
>>> list = ["a","b","c","d"] #构建列表
>>> print(list)
['a', 'b', 'c', 'd']
>>> print(list[0]) #找到列表中第一个元素
a
>>> print(list[0].title()) #首字母变大写
A
修改列表值:直接赋值
>>> list[0]="A"
>>> print(list) ②massage=[]
['A', 'b', 'c', 'd'] massage.append("a")
在列表末尾添加元素:①list.append("e") massage.append("b")
>>> print(list) massage.append("c")
['A', 'b', 'c', 'd', 'e'] print---['a', 'b', 'c'] #不断为空列表添加内容
在列表中插入元素:
massage.insert(0,"a") ['a', 'a', 'b', 'c'] 位置+内容化 insert
在列表中删除元素:>>> ①del massage[0] #删除位置下标
>>> print(massage)
['a', 'b', 'c']
Pop()删除末尾元素 ②>>> massage=["a","b","c"]
>>> poped_massage=massage.pop()
>>> print(massage) #pop删除的元素,可以调用
['a', 'b']
>>> print(poped_massage)
C #并且每使用一次pop,都会删除最后一个。如下:
>>> print(massage.pop())
b
>>> print(massage)
['a']
弹出列表任意位置元素:
根据值删除元素:
②组织列表
Sort()对列表进行永久性排序
>>> list=["aa","cc","bb"]
>>> list.sort() #按字母排序,不能恢复
>>> print(list)
['aa', 'bb', 'cc']
>>> list=["aa","cc","bb"]
>>> list.sort(reverse=True) 相反打印排序;
>>> print(list)
['cc', 'bb', 'aa']
Sorted()临时排序
>>> list=["aa","cc","bb"]
>>> print(sorted(list)) 对原序列不产生影响
['aa', 'bb', 'cc']
Reverse()倒着打印
③操作列表
①遍历整个列表:
在for循环内可以进行别的·操作
②数值列表:
⑴>>> for value in range(1,5):
print(value) #打印1—n-1
⑵>>> num =list(range(1,6))
>>> print(num)
[1, 2, 3, 4, 5]
>>> num =list(range(1,8,2)) #步进为二
>>> print(num)
[1, 3, 5, 7]
⑶squars = []
for value in range(1,11):
squar = value**2
squars.append(squar) #添加到末尾 squars.append(value**2)
print(squars)
max(),sum(),min()等进行计算
④ 列表解析
>>> nun=[value**2 for value in range(1,11)]
>>> print(nun)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
④部分元素——切片等
- 切片
0---n-1个
索引数组,【:,4】则把前面四个打印出来
【2:】则打印第二个开始的所有后面
players =["aa","bb","cc","dd"]
print(players[-2:]) ['cc', 'dd'] -2也可以打印出后面两个
② 遍历切片
players =["aa","bb","cc","dd"]
for player in players[:2]: #遍历切片打印出前两个 没有切片则遍历全部全部列表。
print(player)
③ 复制列表
players =["aa","bb","cc","dd"]
num=players[:] #即复制列表
print(num)
players.append("ee") #后面添加新元素
num.append("ff")
④ 定义元组
- 定义元组
元组小括号
采用复制的方法修改;遍历所有值
6.If条件
cars=["audi","bmw","aubaru","toyota"]
for car in cars:
if car=="bmw":
print(car.upper())
else :
print(car.title())
大小写不相等,也会不相等
条件判断不相等!=,and or的使用;
① 检查特定值是否在列表中:
in
If elif else ;
可以多个elif, 数值转换str;
都加冒号:·, else可以等价为elif中条件最后一个的填入即可
7.字典
①alien={'color':'green','point':'5'}#键color 值green
print(alien['color'])
也可以在空白alien{}添加
修改字典中的值---直接赋值覆盖
![]()
alien={'color':'green','point':'5'}#键color 值green
del alien['point']
print(alien) 删除的键值永远消失
- 遍历字典键值(一对)
声明两个变量 items返回一个键值对
遍历所有键
遍历所有值
找出列表中独一无二的元素,并使用这些元素创建一个新的列表等
- 嵌套,字典列表
切片显示
前三个参数修改字典中存储列表
字典嵌套字典
8.input&while
message=input("输入")
print(message)
输入打印前缀处理
- 让用户选择合适退出:
![]()
- 标志 true来标志程序运行状态
② 标志 true来标志程序运行状态
prompt="\n输入信息"
prompt+="\n信息为:"
active=True #使用标志
while active:
message=input(prompt)
if message=="quit":
active=False
else:
print(message) break
打印奇数
删除列表中特定值:
用户输入填充字典
9.函数定义
①简单的定义:
①def guess():
print("name")
guess() 输出name
- 关键字实参(顺序注意)
def describ_name(fist,last):
print('name is '+last)
print('baibia is '+fist)
#因为是字符串,输出写上字符串
describ_name('asd','fsd')
#为了保证参数顺序,
describ_name(fist="asd",last="fsd") 默认值
等效的函数调用:
![]()
def get_name(first,last,middle_name=''):
if middle_name:
full_name=first+' '+middle_name+' '+last
else:
full_name=first+' '+last
return full_name.title()
message=get_name('ab','cd')
print(message) #返回值
message=get_name('ab','cd','bb')
print(message) #可选实参
②返回值
def get_name(first,last,middle_name=''):
if middle_name:
full_name=first+' '+middle_name+' '+last
else:
full_name=first+' '+last
return full_name.title()
message=get_name('ab','cd')
print(message) #返回值
message=get_name('ab','cd','bb')
print(message) #可选实参
返回字典:
def get_name(first_name,last_name):
"""构建一个返回字典,包含个人信息"""
person={'first':first_name,'last':last_name}
return person
message=get_name('ab','cd')
print(message) #返回值
循环+函数,用户输入:→→→→(2192)
10.传递列表:
①函数中修改列表,
"""信息存储在一个列表中,打印后移到另一个列表中"""
"""不使用函数模拟过程"""
un_desigins=["iphone","robot","unkonow"]
completed_models=[]
#模拟打印每个列表内容,全部打印完结束;
#打印原列表内容后转移到列表complete_models中
while un_desigins:
cunrrent_design=un_desigins.pop()
print("model"+":"+cunrrent_design)
completed_models.append(cunrrent_design)
#显示所有信息
print("\nthe following models")
for completed_model in completed_models:
print(completed_model)
model:unkonow
model:robot
model:iphone
the following models
unkonow
robot
iphone
def print_models(un_designs,complete_design):
"""打印并复制列表到下一个列表中"""
while un_desigins:
cunrrent_design=un_desigins.pop()
print("model"+":"+cunrrent_design)
completed_models.append(cunrrent_design)
def show_models(completed_models):
print("\nthe following models")
for completed_model in completed_models:
print(completed_model)
un_desigins=["iphone","robot","unkonow"]
completed_models=[]
print_models(un_desigins,completed_models)
show_models(completed_models)
model:unkonow
model:robot
model:iphone
the following models
unkonow
robot
iphone
②传递任意数量实参
def make_pizza(price,*toppings): #*创建一个topping的空元组
"""打印顾客菜单配料"""
i=0
for topping in toppings:
i+=1
print('价格'+str(price)+","+"配料"+" "+str(i)+" "+topping)
make_pizza(16,"meat","beaf","sala")
('meat',)
('sala',)
def make_pizza(*toppings): #*创建一个topping的空元组
"""打印顾客菜单配料"""
i=0
for topping in toppings:
i+=1
print("配料"+" "+str(i)+" "+topping)
make_pizza("meat","beaf","sala")
配料 1 meat
配料 2 beaf
配料 3 sala
def make_pizza(price,*toppings): #*创建一个topping的空元组
"""打印顾客菜单配料"""
i=0
for topping in toppings:
i+=1
print('价格'+str(price)+","+"配料"+" "+str(i)+" "+topping)
make_pizza(16,"meat","beaf","sala")
价格16,配料 1 meat
价格16,配料 2 beaf
价格16,配料 3 sala
③使用任意数量的关键字实参
def build_profile(first,last,**user_info):
"""创建字典,包含用户所有信息"""
profile={}
profile["first_name"]=first
profile["last_name"]=last
for key,value in user_info.items():
profile[key]=value
return profile
user_profile=build_profile("asd","qwe",
location="beijing",
field="pysicis")
print(user_profile)
{'first_name': 'asd', 'last_name': 'qwe', 'location': 'beijing', 'field': 'pysicis'}
④导入文件
①Import xxx #文件 可以再Python vs都行
Demo:
Import pizza #可以调用def 的文件里所有函数
Pizza.make_pizaa(xxxxxx) 需要模块模块名
②导入特定的函数
Form pizza import make_pizza
make_pizaa(xxxxxx) 不需要指定模块名了
③把指定调用函数函数名-----自己命名调用
Form pizza import make_pizza as mp
mp(xxxx)
④ 给模块命名
Import pizza as p
11.类 面相对象编程
①类创建以及属性值等
#创建小狗类别 dog
#包括名字+年龄 行为:蹲下+打滚
#创建类
class Dog(): #首字母大写就是类
def __init__(self,name,age): #两个下划线 __init__方法,初始化变量 self在其他形参前面
"""初始化"""
self.name=name #通过传递姓名+年龄,self会自动传递
self.age=age
#以SELF为前缀的昂量可以供类中变量所有方法使用
#获取存贮在形参name中的值,并将其存储到变量name中,变量会被关联到当前创建实例
def sit(self):
"""模拟小狗蹲下"""
print(self.name.title()+"小狗下蹲")
def roll_over(self):
"""模拟小狗蹲下"""
print(self.name.title()+"小狗打滚")
my_dog=Dog("blue",4)
print("my dog is"+" "+my_dog.name.title())
print("my dog is"+" "+str(my_dog.age)+" "+"years old")
my_dog.sit()
my_dog.roll_over()
my dog is Blue
my dog is 4 years old
Blue小狗下蹲
Blue小狗打滚
汽车例子
#创建一个表示汽车的类,存储汽车的信息,还有一个汇总这些信息的方法 get_descriptive_name
class Car():
def __init__(self,make,model,year):
"""初始化汽车属性"""
self.make=make
self.model=model
self.year=year
self.odometer=0
def get_descriptive_name(self):
"""返回信息描述"""
long_name=str(self.year)+" "+self.model+" "+self.make
return long_name.title()
def read_odometer(self):
"""打印里程数"""
print("this car is "+str(self.odometer)+" km")
def update_odometer(self,odo):
"""修改里程数值""" #2通过方法修改里程值,
if odo>=self.odometer:
self.odometer=odo
else:
print("你不可以更改")
my_newcar=Car("audi","a4",2018)
print(my_newcar.get_descriptive_name())
#1.直接修改属性值
my_newcar.odometer=23
my_newcar.update_odometer(24)
my_newcar.read_odometer()
2018 A4 Audi
this car is 24 km
#创建一个表示汽车的类,存储汽车的信息,还有一个汇总这些信息的方法 get_descriptive_name
class Car():
def __init__(self,make,model,year):
"""初始化汽车属性"""
self.make=make
self.model=model
self.year=year
self.odometer=0
def get_descriptive_name(self):
"""返回信息描述"""
long_name=str(self.year)+" "+self.model+" "+self.make
return long_name.title()
def read_odometer(self):
"""打印里程数"""
print("this car is "+str(self.odometer)+" km")
def update_odometer(self,odo):
"""修改里程数值""" #2通过方法修改里程值,
if odo>=self.odometer:
self.odometer=odo
else:
print("你不可以更改")
def increase_odometer(self,miles):
"""增加制定里程读数""" #3.通过方法对属性的值进行递增
self.odometer+=miles
my_newcar=Car("audi","a4",2018)
print(my_newcar.get_descriptive_name())
#1.直接修改属性值
my_newcar.odometer=10
my_newcar.read_odometer()
my_newcar.update_odometer(20)
my_newcar.read_odometer()
my_newcar.increase_odometer(30)
my_newcar.read_odometer()
2018 A4 Audi
this car is 10 km
this car is 20 km
this car is 50 km
修改属性的值三种方法
- 直接修改属性
- 通过方法修改属性值
- 通过方法对属性的值进行递增
②继承
1.原有类为父类,新类为子类
#创建一个表示汽车的类,存储汽车的信息,还有一个汇总这些信息的方法 get_descriptive_name
class Car():
def __init__(self,make,model,year):
"""初始化汽车属性"""
self.make=make
self.model=model
self.year=year
self.odometer=0
def get_descriptive_name(self):
"""返回信息描述"""
long_name=str(self.year)+" "+self.model+" "+self.make
return long_name.title()
def read_odometer(self):
"""打印里程数"""
print("this car is "+str(self.odometer)+" km")
def update_odometer(self,odo):
"""修改里程数值""" #2通过方法修改里程值,
if odo>=self.odometer:
self.odometer=odo
else:
print("你不可以更改")
def increase_odometer(self,miles):
"""增加制定里程读数""" #3.通过方法对属性的值进行递增
self.odometer+=miles
class EletricCar(Car): #继承父类 Car
def __init__(self,make,model,year):
"""初始化父类属性"""
super().__init__(make,model,year) #super使父类子类关联起来
my_car=EletricCar("bmw","model2",2020)
my_car.get_descriptive_name()
'2020 Model2 Bmw'
2.给子类定义属性和方法
3.重写父类(在子类写相同的类)
!子类和父类def 相同则只会运行子类的定义函数函数
4.将实例用作属性----把属性放到另外一个类中---重新定类
电瓶续航补充
注意实例作为属性的调用
完整代码:
#创建一个表示汽车的类,存储汽车的信息,还有一个汇总这些信息的方法 get_descriptive_name
class Car():
def __init__(self,make,model,year):
"""初始化汽车属性"""
self.make=make
self.model=model
self.year=year
self.odometer=0
def get_descriptive_name(self):
"""返回信息描述"""
long_name=str(self.year)+" "+self.model+" "+self.make
return long_name.title()
def read_odometer(self):
"""打印里程数"""
print("this car is "+str(self.odometer)+" km")
def update_odometer(self,odo):
"""修改里程数值""" #2通过方法修改里程值,
if odo>=self.odometer:
self.odometer=odo
else:
print("你不可以更改")
def increase_odometer(self,miles):
"""增加制定里程读数""" #3.通过方法对属性的值进行递增
self.odometer+=miles
class Battery(): #无继承
def __init__(self,battery_size=70):
self.battery_size=battery_size
"""初始化属性"""
def describe_battery(self):
"""打印描述电瓶容量信息""" #将实例放到新的
print("电池 "+str(self.battery_size)+" kwh")
def get_range(self):
"""打印电瓶续航里程"""
if self.battery_size==70:
range=240
elif self.battery_size==85:
range=270
message="this car can go approximately "+str(range)
message+="miles on a full charge" #不上语句
print(message)
class EletricCar(Car): #继承父类 Car
def __init__(self,make,model,year):
"""初始化父类,在初始化子类"""
super().__init__(make,model,year)
self.battery=Battery() #电池,子类属性
def increase_odometer(self,miles):
"""增加制定里程读数""" #3.通过方法对属性的值进行递增
self.odometer+=miles*10
my_car=EletricCar("bmw","model2",2020)
print(my_car.get_descriptive_name())
my_car.battery.describe_battery()
my_car.battery.get_range()
2020 Model2 Bmw
电池 70 kwh
this car can go approximately 240miles on a full charge
12.Vs code文件导入以及异常处理
基础配置完成后:
绝对路径时:
会报错,
斜杠反方向 rstrip删除末尾空白
读取每一行:
Or
判断内容有无在文件text中:
写入文本中:
file_path='C:/Users/Administrator/Desktop/py_demo/test_files/kong.txt'
with open(file_path,'w') as file_object:
file_object.write("i love you \n")
file_object.write("you \n")
with open(file_path,'a') as file_object: #附加到文本里 add
file_object.write("i love you \n")
file_object.write("you \n")
检验代码:
文件不存在提示:
一个字符串分割成字符串数组
json
文件加载:
加载不存在信息
import json
file="numbers.json"
try:
with open(file) as file_json:
username=json.load(file_json)
except FileNotFoundError:
username=input("you name\n")
with open(file,"w") as file_json:
json.dump(username,file_json)
print("加载成功")
else:
print("see you"+str(username))
#json.load加载储存在numbers.json文件内容
13文件测试
测试函数
①测试文件是否能通过:
显示ok则测试通过,
assertEqual 核实a==b unittest测试,创建类
②demo
结果
测试多个答案的,确保每个答案都在my_survey.reponses
Srtup创建例子供测试调用
14.项目实战
①生成折线图:
x.ylabel 在下面散点图中绘制修复了
原因:可能之前运行,变量或者参数erro导致的,重新构建即可
②散点图—渐变色
生成多个点数据
颜色设置
plt.scatter(x_values,y_values,c='red',s=40) RGB模式:c=(0,0,0.8) 蓝的,RGB 色彩模式默认采用小数值
颜色映射,Plt.cm
保存在文件图片指令。
项目三-随机漫步
#模拟随机漫步
from random import choice
#choice 返回非空序列里的随机元素
class RandomWalk():
"""生成随机漫步数的类"""
def __init__(self,num_points=5000):
self.num_points=num_points
#所有随机漫步都始于(0,0)
self.x_value=[0] #FIXME: 标识处代码需要修正,甚至代码是错误的
self.y_value=[0] #TODO:标识处有功能代码待编写
def fill_walk(self):
#不断漫步,直到达到表达指定长度
while len(self.x_value)<self.num_points:
#决定前进方向以及沿着这个方向前进的距离
x_direction=choice([-1,1])
x_distance=choice([0,1,2,3,4])
x_step=x_direction*x_distance
#choice([0, 1, 2, 3, 4]) 随机地选择一个0~4之间的整数
y_direction=choice([-1,1])
y_distance=choice([0,1,2,3,4])
y_step=y_direction*y_distance
#拒绝原地踏步
if x_step==0 and y_step==0:
continue
#计算下一个点的x和y值
next_x=self.x_value[-1]+x_step #将x_step x_value最后值相加
next_y=self.y_value[-1]+y_step
self.x_value.append(next_x)
self.y_value.append(next_y)
进阶版:
效果:
import matplotlib.pyplot as plt
#import matplotlib as mpl
import numpy as np
from submanbu import RandomWalk
while True:
rw=RandomWalk(50000) #自己设置点数5w.原来为5k
rw.fill_walk()
#设置绘图窗口的尺寸n
#分辨率128,dpi 确定了图形每英寸包含的像素数,图形尺寸相同的情况下, dpi 越高,则图像的清晰度越高
plt.figure(dpi=128,figsize=(10,6))
#给数据点着色,渐变色无轮廓-----------cmap=plt.cm.Blues 大写颜色,这个erro不用管
point_number=list(range(rw.num_points))
plt.scatter(rw.x_value,rw.y_value,c=point_number,cmap=plt.cm.Blues,edgecolors="none",s=1)
#突出起点和终点
plt.scatter(0,0,c="green",edgecolors="none",s=50)
plt.scatter(rw.x_value[-1],rw.y_value[-1],c="red",edgecolors="none",s=50)
#隐藏坐标轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
plt.show()
keep_running=input("make another walk?(y/n): ")
if keep_running=='n':
break
#(看终端处,当图片被关闭,就会询问是否再次模拟漫步,需要保存)
#无法在编辑中操作,去setting中设置run code config,保存即可
四掷骰子可视化
- 一个骰子:基础版
from random import randint
#导入函数randint可以返回(a,b)范围内的数
class Shaizi():
"""一类骰子"""
def __init__(self,num_sudes=6):
#骰子有6面
self.num_sudes=num_sudes
def roll(self):
#返回一个位于1和骰子面熟之间的随机值
return randint(1,self.num_sudes)
Svg文件浏览器可以打开
- 两个骰子
import pygal
from shaizi import Shaizi
#创建一个D6 6面骰子
shaizi_1=Shaizi()
shaizi_2=Shaizi(10)
#投几次并将结果存储在一个列表中
results=[]
for roll_num in range(1000):
result=shaizi_1.roll()+shaizi_2.roll()
results.append(result)
#分析结果频率
frequencies=[]
max_result=shaizi_1.num_sudes+shaizi_2.num_sudes
for value in range(2,max_result+1):
frequency=results.count(value) #计算每种点数在结果中出现次数
frequencies.append(frequency)
#可视化列表,直方图
hist=pygal.Bar()
hist.title=("Biao ti")
hist.x_labels=["2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"]
hist.x_title=("reslt")
hist.y_title=("numbers")
hist.add("shuaizi:6+10",frequencies) #add传递图表值,将图表渲染为svg文件
hist.render_to_file("shuaizi_visual.svg")
"""
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
Svg文件浏览器可以打开
至此教程全部结束,辛苦学习了!
全网最详细超长python学习笔记、14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了!的更多相关文章
- python学习笔记14(多态、封装、继承)
创建自已的对象(尤其是类型或者被称为类的对象)是python非常核心的概念. 多态: 可对不同类的对象使用同样的操作. 封装:对外部世界隐藏对象的工作细节. 继承:以普通的类为基础建立专门的类对象. ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- Python学习笔记14:标准库之信号量(signal包)
signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...
- python学习笔记(14):可视化分析
一.Matplotlib 1.用于创建出版质量图表的绘图工具库 2.目的的为Python构建一个Matlab式的绘图接口 3.import matplotlib.pyplot as plt:pyplo ...
- Python 学习笔记14 类 - 使用类和实例
当我们熟悉和掌握了怎么样创建类和实例以后,我们编程中的大多数工作都讲关注在类的简历和实例对象使用,修改和维护上. 结合实例我们来进一步的学习类和实例的使用: 我们新建一个汽车的类: #-*- codi ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- 大学四年的Python学习笔记分享之一,内容整理的比较多与仔细
翻到以前在大学坚持记录的Python学习笔记,花了一天的时间整理出来,整理时不经回忆起大学的时光,一眨眼几年就过去了,现在还在上学的你们,一定要珍惜现在,有个充实的校园生活.希望这次的分享对于你们有学 ...
- Python学习笔记总结
目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...
- Python学习笔记(十)
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...
随机推荐
- 查看公网出口ip
curl cip.cc curl http://members.3322.org/dyndns/getip curl icanhazip.com curl ident.me curl ifconfig ...
- SpringBoot 项目实战 | 瑞吉外卖 Day05
该系列将记录一份完整的实战项目的完成过程,该篇属于第五天 案例来自B站黑马程序员Java项目实战<瑞吉外卖>,请结合课程资料阅读以下内容 该篇我们将完成以下内容: 新增套餐 套餐信息分页查 ...
- 编译busybox错误汇总
提示错误: arm-linux-gcc:Command not found PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 arm-linux-gcc 原因: ex ...
- Vue中使用el-menu高亮显示问题
https://blog.csdn.net/weixin_43336525/article/details/132541500 <template> <el-menu :defaul ...
- vue2+高德地图web端开发
https://blog.csdn.net/qq_51553982/article/details/123014412
- uni-app图片上传接口联调
https://www.bilibili.com/video/BV1jy4y1B7pw?p=159&spm_id_from=pageDriver
- zzuli 1908
***做的时候判断当前位置为.的上下左右是否为*,如果全是改位置就改为*,如果四周中有为.,再DFS一下,其实就相当于把判断化为更小的子问题*** #include<iostream> # ...
- java基础-java面向对象-02-day09
目录 1. 封装 2. 继承 2.1 什么是方法的重写 2.2 super 2.3 object详解 2.4 equals方法 3. 多态 4. final修饰符 5.抽象类 6. 接口 7. 内部类 ...
- Mongo库表占用空间统计
1. 背景 DBA同事反馈说Mongp集群磁盘占用空间过大,超过监控告警95%阈值,因此建议删除部分资源或者申请扩容,本着开源节流的理念,还是乖乖看哪些老数据应该删除.但Mongo中的库和表过多,因此 ...
- CSS : object-fit 和 object-position实现 图片或视频自适应
img { width: 100%; height: 300px; object-fit: cover; ...