07-python函数-案例

案例1:判断一个数是否为素数


# -----------------判断一个数是否是素数------------------
def sushu(a):
    i=1
    for i in range(2,a):
        if a%i==0:
            print(i)
            break
    if i==a-1:
        print('素数')
    else:
        print('不是素数')
    # return;

if __name__=="__main__":
     sushu(17)

案例2:输出100以内的素数;

def sushu(a):
    j=1
    list=[]
    for i in range(3,a):
        for j in range(2,i):
            if(i%j==0):
                break;
        if j==i-1:
            #print(i)
            list.append(i)
    return list

if __name__=='__main__':
    x=input('please input number:\n')
    t=int(x)
    su=sushu(t)
    print(su)

案例3:判断三边能否构成三角形;

# ------------习题2,编写一个函数,判断三个数是否能构成一个三角形------------
import sys
def triangle(a,b,c):
    if(a+b>c and a+c>b and b+c>a):
        print('组成三角形' ,a,b,c)
        if(a==b==c):
            print("等边三角形")
        elif (a == b or a == c or b == c):
            print("等腰三角形")
        elif(a**2+b**2==c**2 or a**2+c**2==b**2 or c**2+b**2==a**2):
            print("直角三角形")
        else:
            print("普通三角形")
    else:
        print("不能组成三角形")
if __name__=="__main__":
    print("please input three number:")
    x=input("first number:",)
    y=input("second number:",)
    z=input("thrid number:",)
    triangle(int(x),int(y),int(z))

案例4:求三角形周长函数

import math

'''
函数名称:square
参数:x
返回值:一个数的平方
功能:求1个数的平方
'''
def square(x):
    return x*x

'''
功能:求2个点之间的距离,方式通过构成一个直角三角行来求
参数:2个点的坐标
'''
def distance(x1,y1,x2,y2):
    L =math.sqrt(square(x1-x2)+square(y1-y2))
    return L

'''
功能:根据给定的3个点,判断是否为一个三角形
      方式通过判断3点是否在一条线上
参数: 随便传入三个点
'''
def isTriangle(x1,y1,x2,y2,x3,y3):
    flag=((x1-x2)*(y3-y2)-(x3-x2)*(y1-y2))!=0
    return flag

def main():
    print('输入三个点的坐标:')
    x1,y1=eval(input('x1,y1='))
    x2,y2=eval(input('x2,y2='))
    x3,y3=eval(input('x3,y3='))
    if(isTriangle(x1,y1,x2,y2,x3,y3)):
        perim=distance(x1,y1,x2,y2)+distance(x1,y1,x3,y3)+distance(x2,y2,x3,y3)
        print('the primeter is',perim)
    else:
        print('this is not triangle')

main()

案例5:计算传入的列表的最大值、最小值和平均值,并以元组的方式返回;

# -------习题5:编写一个函数,计算传入的列表的最大值、最小值和平均值,
#并以元组的方式返回,然后调用该函数
import math
def deal_num(li):
    list=[]

    list.append(float(max(li)))
    list.append(float(min(li)))
    sum=0
    for i in li:
        sum=sum+float(i)
    aver=float(sum)/li.__len__()
    list.append(aver)
    print("list:",list)
    return tuple(list)
if __name__=="__main__":
    # print("请输入一个序列:")
    # while
    ll=input("please input a list,just contain number:",)
    lll=ll.split(',')
    # print(type(lll))
    deal=deal_num(lll)
    print("tuple contain max_number,min_number and average_number:",deal)

案例6:计算传入的列表的最大值、最小值和平均值,并以列表的方式返回;

# ---习题6:编写一个函数,计算传入的元组的最大值、最小值和平均值,
#并以列表的方式返回,然后调用该函数。
import math
def deal_num(li):
    list=[]

    list.append(float(max(li)))
    list.append(float(min(li)))
    sum=0
    for i in li:
        sum=sum+float(i)
    aver=float(sum)/li.__len__()
    list.append(aver)
    print("list:",list)
    return list
if __name__=="__main__":
    # print("请输入一个序列:")
    # while
    ll=input("please input a list,just contain number:",)
    lll=tuple(ll.split(','))
    print("tuple:",lll)
    # print(type(lll))
    deal=deal_num(lll)
    print("list contain max_number,min_number and average_number:",deal)

案例7:统计字符串中不同字符的个数;

# ---习题7:编写一个函数,接收传入的字符串,统计大写字母的个数、小写字母的个
#数、数字的个数、其它字符的个数,并以元组的方式返回这些数,然后调用该函数;

import sys
def deal_char(li):
    list=[]

    # list.append(float(max(li)))
    # list.append(float(min(li)))
    upper=0
    lower=0
    num=0
    other=0
    # str.__len__()
    for i in  range(li.__len__()):
        if li[i].isupper():
            upper+=1
        elif li[i].islower():
            lower+=1
        elif li[i].isnumeric():
            num+=1
        else:
            other+=1
    list.append(upper)
    list.append(lower)
    list.append(num)
    list.append(other)

    print("list:",list)
    return tuple(list)
if __name__=="__main__":
    # print("请输入一个序列:")
    # while
    ll=input("please input some char(or a string):",)

    # print(type(lll))
    deal=deal_char(ll)
    print("tuple contain count with upper char,lower char ,number and others:",deal) 

案例8:实现登录与注册

def login(username,password):
    '''
    功能:用户登录
    :param username: 用户输入的用户名
    :param password:用户输入的密码
    :return:True,登录成功;False,登录失败
    '''

    f =open('D:\python\db.txt','r')

    #逐行读取
    for line in f:
        #用'|'进行分割
        line_list=line.strip().split("|")
        #匹配是否正确
        if line_list[0]==username and line_list[1]==password:
            return True
    return False

def register(username,password):
    '''
    用户注册
    :param username:用户名
    :param password:密码
    :return:默认返回None
    '''

    f =open('D:\python\db.txt','a')
    temp="\n"+username+"|"+password
    f.write(temp)
    f.close()

def main():
    t=input("1:登录;2:注册\n")
    if t=='1':
        user =input("请输入用户名:")
        pwd =input("请输入密码:")
        r =login(user,pwd)

        if r:
            print("登录成功")
        else:
            print("登录失败")
    elif t=='2':
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        register(user, pwd)
main()

案例9:一个字符串list,每个元素都是一个ip,求出现次数最多的ip

list=['10.199.88.161','10.199.88.162','10.199.88.163','10.199.88.163','10.199.88.163']
dict={}
li=[]
for i in list:
    if not dict.has_key(i):
        dict[i]=1
    else:
        dict[i]+=1
for i in dict.keys():
    if dict[i]==max(dict.values()):
        print u'出现次数最多的ip是:',i
#has_key方法的调用和字典键值对的访问

你可能感兴趣的:(07-python函数-案例)