函数基础编程练习

函数的练习

复习一下前面的python基础,两个星期不写代码就手生,建议学了后面的要复习一下前面python基础,不能隔太久不写代码。具体练习如下,答案不唯一,作为参考。

练习1:写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和。
import random
def dice(n):
    sum = 0
    for i in range(n):
        sum += random.randint(1,6)
    return sum
print(dice(6))

练习2:写一个函数,求出列表中数值类元素(int、float)的平均值。
def average(array):
    avg = 0.0
    n = len(array)
    for num in array:
        avg+= 1.0*num/n
    return avg
        
练习3:写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串。
def str1(n):
    str2 = " "
    str2.replace("","")
    retuen str2
 print(str1("a b c"))
练习4:写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。
def str(s):
    
	for i in str1:
        for j in str2:
            if j == i:
                str1 = str1.replace(j,"")
             return str1
str1 = input("str1:")
str2 = input("str2:")
练习5:写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成。
def random_string(size):
    s = list("1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjkiopasdfghjklzxcvbnm")
    s.shuffle()
    return ''.join(s[:5])
练习6:写一个函数,返回给定文件名的后缀名(扩展名)。
def get_suffix(filename):
    pos = filename.rfind('.')

    if pos != -1:
        print(filename[pos:])
    else:
        print("输入错误")
if __name__ == '__main__':
    file_name = input("请输入文件名:")
    get_suffix(file_name)
练习7:写一个函数,传入圆的半径,返回圆的周长和面积。
import math
def area(r):
    area = math.pi*r*r
 	return area
print(area(10))
def perimeter(r):
	perimeter = 2*math.pi*r
    return perimete
print(perimeter(10))
练习8:写一个函数,传入两个正整数,返回两个数的最大公约数。
def gcd(a,b):
   	a,b = (a,b) if a >=b else (b,a)
    while b:
		a,b = b,a % b
     return a
def main():
	print(gcd(81,18))

if __name__ == '__main__':
		main()
练习9:写一个函数,判断传入的正整数是不是素数,返回布尔值。
def f(n):
    if n < 2 or n ==4:
        return False
    elif n == 2 or n ==3 or n == 5:
        return True
    for i in range(2,int(n/2)+1):
        if n % i == 0:
            return False
    return Ture
n = int(input("请输入一个正整数:"))
if f(n):
    print("是素数")
elseprint("不是素数")
练习10:写一个函数,判断传入的正整数是不是回文数,返回布尔值。

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

def is_palindrom(s):
    if len(s) < 2:
        return True
    if s[0] == s[-1]:
        return is_palindrom(s[1:-1])
    else:
        return False

练习11:写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数。
def middle(L):
	return [L[i] for i in range(len(L)-1)] 
li = [1,2,3,4,5,6,7]
print(li)
练习12:写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是adbecf,……,xaybzc,空格保持不变。
def encryption(str1):
    len1 = len(str1)
    list1 = list(str1)
    for i in range(len1):
        s=ord(list1[i])
        if 97<=s<120 :
            s+=3
            print(chr(s),end='')
        elif s==120 :
            print('a',end='');
        elif s==121 :
            print('b',end='')
        elif s==122 :
            print('c',end='')
        else:
            print(chr(s),end='');
 
str1=input('输入字符串:')
encryption(str1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值