python基础·练习2(函数的定义和使用)

本文提供了一系列Python编程的函数练习,包括摇色子求和、计算列表数值平均值、去除字符串空格、删除字符串特定字符、生成验证码、获取文件扩展名、计算圆的周长和面积、求最大公约数、判断素数、检查回文数以及找出列表中最大和次大元素。通过这些练习,可以提升Python编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的定义和使用作业参考答案

练习1:写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和。
import random
def to(num):
    total = 0
    for _ in range(num):
        total += random.randint(1, 6)
    return total
n = int(input('请输入骰子数:'))
print(to(n))
练习2:写一个函数,求出列表中数值类元素(int、float)的平均值。
def mean1(list1:list):
    num=0
    count=0
    for x in list1:
       if type(x) is int or type(x) is float:
              num+=x
              count += 1
    return num/count
print(mean1([2,4.1,3,6,8,'g','f']))
练习3:写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串。
s = input('请输入一个字符串:')
def remove_space(content):
    return content.replace(' ', '')
print(remove_space(s))
练习4:写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。
s1 = input('str1: ')
s2 = input('str2: ')
def remove_chars(str1, str2):
    str3 = ''
    for ch in str1:
        if ch not in str2:
            str3 += ch
    return str3
print(remove_chars(s1,s2))
练习5:写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成。
import random
def gen_vccode(length=4):
    all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    selected_chars = random.choices(all_chars, k=length)
    return ''.join(selected_chars)
print(gen_vccode(4))
练习6:写一个函数,返回给定文件名的后缀名(扩展名)。
def get_suffix(filename):
    pos = filename.rfind('.')
    return filename[pos + 1:] if pos > 0 else ''
print(get_suffix('data.txt'))
练习7:写一个函数,传入圆的半径,返回圆的周长和面积。
import math
def circle(r):
    return 2 * math.pi * r, math.pi * r * r
print(circle(2))  #(12.566370614359172, 12.566370614359172)
练习8:写一个函数,传入两个正整数,返回两个数的最大公约数。
def gcd(x, y):
    while y % x != 0:
        x, y = y % x, x
    return x
print(gcd(21,3)) # 3
练习9:写一个函数,判断传入的正整数是不是素数,返回布尔值。
def is_prime(num):
    for factor in range(2, int(num)):
        if num % factor == 0:
            return False
    return num != 1
print(is_prime(3)) #True
练习10:写一个函数,判断传入的正整数是不是回文数,返回布尔值。

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

def is_palindrome(num):
    total, temp = 0, num
    while temp > 0:
        total *= 10
        total += temp % 10
        temp //= 10
    return num == total
print(is_palindrome(12321)) #True
练习11:写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数。
def find_max_two(items):
    first, second = (items[0], items[1]) if items[0] >= items[1] \
        else (items[1], items[0])
    for index in range(2, len(items)):
        if items[index] > first:
            second = first
            first = items[index]
        elif items[index] > second:
            second = items[index]
    return first, second
print(find_max_two([1,2,45,67,5]))#(67, 45)

练习12:写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是adbecf,……,xaybzc,空格保持不变。
def encrypt(message):
    result = ''
    for ch in message:
        if ch == ' ':
            result += ch
        elif 'a' <= ch <= 'w':
            result += chr(ord(ch) + 3)
        else:
            result += chr(ord(ch) - 23)
    return result
print(encrypt('abwz'))#dezc

参考链接: link1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值