美文网首页
python函数学习(二)

python函数学习(二)

作者: 进步小小青年 | 来源:发表于2017-08-10 21:55 被阅读0次

    最小公倍数

    def lcm(x,y):#定义函数
    #获取最大的数
    if x>y:
    greater=x
    else:
    greater=y
    while True:
    if ((greater%x==0) and (greater%y==0)):
    lcm=greater
    break
    greater+=1
    return lcm

    获取用户输入:

    num1=int(input("输入第一个数字:"))
    num2=int(input("输入第二个数字:"))
    print(num1,"和",num2,"的最小公倍数为:",lcm(num1,num2))
    输入第一个数字:48
    输入第二个数字:78
    48 和 78 的最小公倍数为: 624

    最大公约数函数

    找出两个整数的最大公约数

    def gcd(x,y):#定义函数
    k=2#在循环开始之前对变量进行初始化
    while k<=x and k<=y:
    if (x%k==0)and(y%k==0):
    gcd=k
    k+=1
    return gcd

    输入变量

    num1=int(input("输入第一个数字:"))
    num2=int(input("输入第二个数字:"))
    print(num1,"和",num2,"的最大公约数为:",gcd(num1,num2))
    输入第一个数字:48
    输入第二个数字:78
    48 和 78 的最大公约数为: 6

    求函数的极差、平均数、中位数、众数、方差

    • 极差:最大值与最小值之差。它是标志值变动的最大范围。英文:range
      ** 公式:R=Xmax-Xmin(其中,Xmax为最大值,Xmin为最小值)
    • 平均数:一组数据中所有数据之和再除以数据的个数。反映数据集中趋势的一项指标。英文:average
      ** 公式:A=(a1+a2+a3+……+an)/n
    • 中位数:对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。英文:median
      ** 公式:X1,……,Xn从小到大排序X(1),……,X(n),n为奇数时,中位数为X0.5=X(n+1)/2;n为偶数时,X0.5=[X(n/2)+X(n+1)/2]/2
    • 众数:众数是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中。英文:mode
      ** 例如:1,2,3,3,4的众数是3。
      ** 但是,如果有两个或两个以上个数出现次数都是最多的,那么这几个数都是这组数据的众数。
      ** 例如:1,2,2,3,3,4的众数是2和3。
      ** 还有,如果所有数据出现的次数都一样,那么这组数据没有众数。
      ** 例如:1,2,3,4,5没有众数。
    • 方差:方差是实际值与期望值之差平方的平均值,方差是在概率论和统计方差衡量随机变量或一组数据是离散程度的度量。英文:variance

    求极差

    def range(l):
    return max(l)-minl)

    求平均数

    def avg(l):
    return float(sum(l))/len(l);

    求中位数

    def median(l):
    l=sorted(l);#先排序
    if len(l)%2==1:
    return l[len(l)/2];
    else:
    return (l[len(l)/2-1]+l[len(l)/2])/2.0;

    求众数

    def mode(l):
    #统计list中各个数值出现的次数
    count_dict={};
    for i in l:
    if count_dict.has_key(i):
    count_dict[i]+=1;
    else:
    count_dict[i]=1;
    #求出现次数的最大值
    max_appear=0
    for v in count_dict.values():
    if v>max_appear:
    max_appear=v;
    if max_appear==1:
    return;
    mode_list=[];
    for k,v in count_dict.items():
    if v==max_appear:
    mode_list.append(k);
    return mode_list;

    求词频

    text = '''the clown ran after the car and the car ran into the tent
    and the tent fell down on the clown and the car'''

    第一步

    words=text.split()# 获取单词的列表
    print(words)

    第二步

    使用字典可以极大简化步骤

    获取单词-词频字典

    counts=dict()#初始化一个空的字典
    for word in words:
    counts[word]=counts.get(word,0)+1#构造字典,注意get方法需要设定默认返回值0(当单词第一次出现时,词频为1)
    print(counts)

    第三步

    在字典中查找最高词频的单词

    bigcount=None
    bigword=None
    for word,count in counts.items():
    if bigcount is None or count > bigcount:
    bigword=word
    bigcount=count
    print(bigword,bigcount)

    相关文章

      网友评论

          本文标题:python函数学习(二)

          本文链接:https://www.haomeiwen.com/subject/fjjkrxtx.html