函数的定义和使用作业

目录

1、写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和

2、写一个函数,求出列表中数值类元素(int、float)的平均值

 3、写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串

4、写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。

 5、写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成

6、写一个函数,传入圆的半径,返回圆的周长和面积

7、写一个函数,传入两个正整数,返回两个数的最大公约数

 8、写一个函数,判断传入的正整数是不是素数,返回布尔值

 9、写一个函数,判断传入的正整数是不是回文数,返回布尔值。

10、写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数

11、写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是a变d,b变e,c变f,……,x变a,y变b,z变c,空格保持不变


1、写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和

import random

def sum(n):
    s = 0
    for i in range(n):
        s +=random.randint(1,6)

    return s

if __name__ == '__main__':
    n = int(input('请输入骰子个数'))
    print('骰子点数是:{}' .format(sum(n)))

2、写一个函数,求出列表中数值类元素(int、float)的平均值

def avg(a):
    count = 0
    s = 0
    for i in range(len(a)):
        if ('0' < str(a[i]) < '9'):
            s += (a[i])
            count += 1
    return s / count

if __name__ == '__main__':
    a =[12,23,45,'s','y',12.1,'rtr','as']
    print(avg(a))

 3、写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串


#写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串

def delete(a):
    j = 0
    b = []
    for i in range(len(a)):
        if (a[i] != ' '):
            b.append(a[i])#将不是空格的数插入到一个新的列表中
    return b#返回一个列表

if __name__ == '__main__':
    s = '   hsg   jd   '
    print("".join(delete(s)))
    #join()函数将列表或元组中的字符串合并成一个字符串

4、写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。

 


#写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串
def delete(x,y):
    b =[]
    for i in range(len(x)):
        for j in range(len(y)):
            if (x[i] == y[j]):
                x = x.replace(y[j],' ')
    for i in range(len(x)):
        if (x[i] != ' '):
            b.append(x[i])  # 将不是空格的数插入到一个新的列表中

    b = "".join(b)

    return b


if __name__ == '__main__':
    x = 'qweruutyuuiop'
    y = 'rtyu'
    s = delete(x,y)
    print(s)

 5、写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成

#写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成

import  random

def generate(n):
    li_code = []
    for i in range(65,91):#大写字母A-Z
        li_code.append(chr(i))#使用chr方法,可以获取一个编码对应的字符
        # 使用ord方法,可以获取一个字符对应的编码
    for j in range(97,123):#小写字母a-z
        li_code.append(chr(j))
    for k in range(0,10):#数字0-9
        li_code.append(chr(k))
    code = random.sample(li_code, n)#从列表中选择n个随机且独立的元素放入列表中
    ran_code = "".join(code)#可以把列表或者元组快速的转变成为字符串,并且以指定的字符分隔

    '''
    txt = '_'
    print(txt.join(['hi','hello','good'])) #hi_hello_good
    print(txt.join(('good','hi','hello'))) #good_hi_hello
    '''
    return ran_code

#sample(seq, n) 从序列seq中选择n个随机且独立的元素

if __name__ == '__main__':
    n = int(input('请输入验证码长度:'))
    print(generate(n))

6、写一个函数,传入圆的半径,返回圆的周长和面积


#写一个函数,传入圆的半径,返回圆的周长和面积

def count(r):
    s = 3.14 * r * r
    c = 2 * 3.14 * r
    return s , c


if __name__ == '__main__':
    r = int(input('请输入圆的半径:'))
    print('面积是:%.3f周长是:%.3f' % (count(r)))

#str.format() 方法还可以使用 *元组 和 **字典 的形式传参,两者可以混合使用。
# 位置参数、关键字参数、*元组 和 **字典 也可以同时使用,但是要注意,位置参数要在关键字参数前面,*元组 要在 **字典 前面。

 

7、写一个函数,传入两个正整数,返回两个数的最大公约数

#写一个函数,传入两个正整数,返回两个数的最大公约数
# 辗转相除法
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第一个数字:"))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
    m ,n= n ,r
    r = m % n
print(num1, "和", num2, "的公约数为", n)

 

 8、写一个函数,判断传入的正整数是不是素数,返回布尔值


#写一个函数,判断传入的正整数是不是素数,返回布尔值

def judge(n):
    count = 0
    for i in range(1,n):
        if (n % i == 0):
            count += 1
    if (count <= 1):
        return True
    else:
        return False

if __name__ == '__main__':
    n = int(input('请输入一个数:'))
    print(judge(n))

 

 9、写一个函数,判断传入的正整数是不是回文数,返回布尔值。

说明:12321是一个回文数,因为从左向右和从右向左读,结果是一样的

#写一个函数,判断传入的正整数是不是回文数,返回布尔值

def judge(n):
    s = str(n)
    if (s[::] == s[::-1]):
        return True
    else:
        return False

if __name__ == '__main__':
    n = int(input('请输入一个数:'))
    print(judge(n))

10、写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数

 

#写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数。

def max(n):
    for i in range(len(n) - 1):#冒泡排序
        for j in range(len(n) - 1):
            if n[j] < n[j + 1]:
                n[j] ,n[j + 1] = n[j + 1] , n[j]
    # for i in range(len(n) - 1):#选择排序
    #     min = i
    #     for j in range(i + 1,len(n)):
    #         if n[min] < n[j]:
    #             n[min] , n[j] = n[j] ,n[min]
    return n[0],n[1]

if __name__ == '__main__':
    n = [10,20,67,98,20,190,78,900]
    print('列表最大为:{},次大为:{}'.format(*max(n)))

11、写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是adbecf,……,xaybzc,空格保持不变

 

# 写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是`a`变`d`,`b`变`e`,`c`变`f`,……,`x`变`a`,`y`变`b`,`z`变`c`,空格保持不变

def change(s):
    a = []
    for i in range(len(s)):
        if (s[i] != 'x' and s[i] != 'y' and s[i] != 'z' and s[i] != ' '):
             a.append(chr(ord(s[i]) + 3))
        if (s[i] == 'x'):
             a.append('a')
        if (s[i] == 'y'):
            a.append('b')
        if (s[i] == 'z'):
            a.append('c')
        if (s[i] == ' '):
            a.append(' ')
    b = ''.join(a)
    return b

if __name__ == '__main__':
    s = 'asdf   xyz'
    print(change(s))

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值