网站首页 > 文章中心 > 其它

质量的函数Python

作者:小编 更新时间:2023-09-25 07:23:18 浏览量:29人看过

求一道Python题,是关于定义函数和身体指数的,谢谢各位大神啦!!!

按照题目要求编写的Python程序如下

def calBMI(height,weight):

BMI=weight/(height*height)

return [BMI,"过轻"]

return [BMI,"正常"]

return [BMI,"过重"]

else:

return [BMI,"肥胖"]

import re

s=input("请输入你的身高(米)和体重(公斤)【逗号隔开】:")

s1=re.split(r'[,,]',s)

height=float(s1[0])

weight=float(s1[1])

name="李子健"

bmi=calBMI(height,weight)

print("{}的测算结果为:".format(name))

print(bmi[1])

源代码(注意源代码的缩进)

如何在Python中实现这五类强大的概率分布

R编程语言已经成为统计分析中的事实标准.但在这篇文章中,我将告诉你在Python中实现统计学概念会是如此容易.我要使用Python实现一些离散和连续的概率分布.虽然我不会讨论这些分布的数学细节,但我会以链接的方式给你一些学习这些统计学概念的好资料.在讨论这些概率分布之前,我想简单说说什么是随机变量(random variable).随机变量是对一次试验结果的量化.

举个例子,一个表示抛硬币结果的随机变量可以表示成

Python

X = {1 如果正面朝上,

随机变量是一个变量,它取值于一组可能的值(离散或连续的),并服从某种随机性.随机变量的每个可能取值的都与一个概率相关联.随机变量的所有可能取值和与之相关联的概率就被称为概率分布(probability distributrion).

我鼓励大家仔细研究一下scipy.stats模块.

概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布.

离散概率分布也称为概率质量函数(probability mass function).离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等.

连续概率分布也称为概率密度函数(probability density function),它们是具有连续取值(例如一条实线上的值)的函数.正态分布(normal distribution)、指数分布(exponential distribution)和b分布(beta distribution)等都属于连续概率分布.

若想了解更多关于离散和连续随机变量的知识,你可以观看可汗学院关于概率分布的视频.

二项分布(Binomial Distribution)

服从二项分布的随机变量X表示在n个独立的是/非试验中成功的次数,其中每次试验的成功概率为p.

E(X) =?np, Var(X) =?np(1?p)

如果你想知道每个函数的原理,你可以在IPython笔记本中使用help file命令.?E(X)表示分布的期望或平均值.

键入stats.binom?了解二项分布函数binom的更多信息.

二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?

您可以使用.rvs函数模拟一个二项随机变量,其中参数size指定你要进行模拟的次数.我让Python返回10000个参数为n和p的二项式随机变量.我将输出这些随机变量的平均值和标准差,然后画出所有的随机变量的直方图.

泊松分布(Poisson Distribution)

一个服从泊松分布的随机变量X,表示在具有比率参数(rate parameter)◆的一段固定时间间隔内,事件发生的次数.参数◆告诉你该事件发生的比率.随机变量X的平均值和方差都是◆.

E(X) =?◆, Var(X) =?◆

你可以看到,事故次数的峰值在均值附近.平均来说,你可以预计事件发生的次数为◆.尝试不同的◆和n的值,然后看看分布的形状是怎么变化的.

现在我来模拟1000个服从泊松分布的随机变量.

正态分布(Normal Distribution)

正态分布的取值可以从负无穷到正无穷.你可以注意到,我用stats.norm.pdf得到正态分布的概率密度函数.

b分布(Beta Distribution)

b分布是一个取值在?[0, 1]?之间的连续分布,它由两个形态参数a和b的取值所刻画.

b分布的形状取决于a和b的值.贝叶斯分析中大量使用了b分布.

当你将参数a和b都设置为1时,该分布又被称为均匀分布(uniform distribution).尝试不同的a和b取值,看看分布的形状是如何变化的.

指数分布(Exponential Distribution)

指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔.比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等.

接着,我在指数分布下模拟1000个随机变量.scale参数表示◆的倒数.函数np.std中,参数ddof等于标准偏差除以 $n-1$ 的值.

结语(Conclusion)

概率分布就像盖房子的蓝图,而随机变量是对试验事件的总结.我建议你去看看哈佛大学数据科学课程的讲座,Joe Blitzstein教授给了一份摘要,包含了你所需要了解的关于统计模型和分布的全部.

如何编写高质量的python程序

代码规范

首先阅读下面的两份规范,并深入理解.

Google SoC 建议的 Python 编码风格:Google Python Style Guide 中文版

写出规范的代码是写出高质量代码的第一步,并且有助于培养仔细的习惯.

空白项目模版

好的开始是成功的一半,写python代码就从pyempty开始吧.

①README.md 这里写你项目的简介,quick start等信息,虽然distutils要求这个文件没有后缀名,但github上如果后缀是.md的话可以直接转换成html显示.

单元测试

Martin Fowler:"在你不知道如何测试代码之前,就不该编写程序.而一旦你完成了程序,测试代码也应该完成.除非测试成功,你不能认为你编写出了可以工作的程序."

我们有很多理由不写单元测试,归根结底是懒,虽然代码大全上说:

但是单元测试还是让别人相信你的代码有很高质量的最有力证据.

好了,请详细阅读:

Unit testing framework 不完整中文版

文档

敏捷开发不是提倡什么文档也不写,没有文档就没有传承和积累,轮岗或新人接手任务就会遇到很大的麻烦,所以我决定每个项目最少要写以下文档:

①nalysis.model.md 概要设计文档,不同于README.md文件,该文档应该写于项目开发之前,把项目有哪些功能,大概分几个模块等项目整体概述信息写一下.

上面这些文档都是项目全局性的文档,不适合写在docstring或注视里,所以要有单独的文档.

打包

python有专门的模块打包系统distutils,你可以用这套机制把你的代码打包并分发到Pypi上,这样任何人都可以用pip或easy_install安装你的模块.

如果你开发的是内部项目,还可以用mypypi架设私有的pypi,然后把项目的大的版本更新发布到内部的pypi上,配置管理人员和运维人员可以很方便的从pypi上拉取代码安装到测试环境或生产环境.

发布大版本的时候要给版本命名及编写ChangeList,可以参考Git Pro的相关章节,主要记住以下几个命令.

git tag -a v0.1 -m 'my test tag' #给大版本命名,打Tag git describe master #给小版本命名,Git将会返回一个字符串,由三部分组成:最近一次标定的版本号,加上自那次标定之后的提交次数,再加上一段SHA-1值 git shortlog --no-merges master --not v0.1 #生成版本简报,ChangeList

python有自己的打包机制,所以一般不要用git archive命令.

当然大版本管理用pypi管理比较合适,小的bug fix,紧急上线等好多公司都是用git直接从生产环境拉代码更新,因为git,svn等可以很方便的撤销某次更新,回滚到某个位置.

关于打包,请阅读如下链接:

Python 打包指南

python打包:分发指定文件

以上就是土嘎嘎小编为大家整理的质量的函数Python相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章