前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >30天学习Python系列第12篇:模块内容练习题参考答案

30天学习Python系列第12篇:模块内容练习题参考答案

作者头像
MegaQi
发布2023-10-21 19:38:49
1400
发布2023-10-21 19:38:49
举报

全民都在这次开放中等着进决赛,可惜笔者没那么强的抵抗力。上周不幸中招整个人都迷糊糊的。没有精气神,也不想拿这事做营销。只想告诉大家最好防护能别得就别得。得了也不要乱用药(且不说现在买不到药)物理降温,多补水保持营养进食很重要。

模块的内容就是练习引用,所以就不将每个题拆开了,这里先创建一个自定义py文件,名称可以叫做“modules.py”并实现所有题目的函数。

代码语言:javascript
复制
import string
import random

def random_user_id():
    '''
    随机生成6位字符(包括字母和数字)
    :return: 6位ID
    '''
    lowercase_and_number = string.ascii_lowercase + string.digits
    six_id = ""
    for i in range(6):
        index = random.randint(0, len(lowercase_and_number) - 1)
        six_id = six_id + lowercase_and_number[index]
    return six_id


def user_id_gen_by_user():
    '''
    获取用户给定两个数生成对应数量的用户ID
    :return: 用户ID列表
    '''
    str_num = int(input("输入字符数量:"))
    id_num = int(input("输入生成的ID数量:"))
    letters_and_number = string.ascii_letters + string.digits
    user_id_list = []
    for i in range(id_num):
        user_id = ""
        for s in range(str_num):
            index = random.randint(0, len(letters_and_number) - 1)
            user_id = user_id + letters_and_number[index]
        user_id_list.append(user_id)
    return user_id_list


def rgb_color_gen():
    '''
    生成一个RGB颜色
    :return: 三位数RGB元组
    '''
    items = list()
    for i in range(3):
        item = random.randint(0, 255)
        items.append(item)

    rgb = tuple(items)
    return rgb


def list_of_hexa_colors(number):
    '''
    生成指定数量的16进制的颜色组
    :param number: 数量
    :return: hexa颜色组
    '''
    color_charts = ['a', 'b', 'c', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    hexa_list = []
    for i in range(number):
        num = 0
        hexa_color = '#'
        while num < 6:
            index = random.randint(0, len(color_charts) - 1)
            hexa_color = hexa_color + color_charts[index]
            num += 1
        hexa_list.append(hexa_color)

    return hexa_list


def list_of_rgb_colors(number):
    '''
    生成指定数量的RGB颜色组,并且格式化为rgb(106,227,72)
    :param number: 数量
    :return: rgb颜色组
    '''
    rgb_list = []

    for num in range(number):
        item = 0
        rgb = "rgb("
        while True:
            rgb = rgb + str(random.randint(0, 255))
            item += 1
            if item < 3:
                rgb = rgb + ','
            else:
                break
        rgb = rgb + ")"
        rgb_list.append(rgb)

    return rgb_list


def generate_colors(color_type, number):
    '''
    按照指定类型返回数组颜色
    :param color_type: 颜色类型
    :param number: 颜色数量
    :return: 颜色组
    '''
    if color_type == 'hexa':
        return list_of_hexa_colors(number)
    elif color_type == 'rgb':
        return list_of_rgb_colors(number)

def shuffle_list(input_list):
    '''
    使用random内置函数直接返回打乱顺序的列表
    :param input_list:
    :return: 列表
    '''
    tmp_list = input_list
    random.shuffle(tmp_list)
    return tmp_list

def random_seven_number():
    '''
    利用random内置函数sample,从一个总体序列或集合中选择k个唯一的随机元素。
    :return:
    '''
    numbers = list(range(0, 10))
    unique_items = random.sample(numbers, 7)
    return unique_items

然后就是在使用此文件函数的进行导入。这里不在代码体现的,均默认为直接导入所有,在每道题练习的时候请尝试不同的导入方式。

代码语言:javascript
复制
from modules import *  #引用全部函数

「练习 1.1」 编写一个 random_user_id 函数,它的功能是随机生成6位字符(包括字母和数字)

代码语言:javascript
复制
from modules import random_user_id
print("随机生成6位用户ID:", random_user_id())

「练习 1.2」 声明一个名为 user_id_gen_by_user 的函数。它不设置参数,但它使用input() 接受两个输入。其中一个输入是字符的数量,第二个输入是应该生成的id的数量

代码语言:javascript
复制
user_ids = user_id_gen_by_user()
for user_id in user_ids:
    print(user_id)

「练习1.3」 编写一个名为 rgb_color_gen 函数。它将生成rgb颜色(3个值,每个值从0到255)

代码语言:javascript
复制
import modules as md
print("rgb随机颜色:", md.rgb_color_gen())

「练习2.1」 编写一个函数 list_of_hexa_colors,它返回数组中任意数量的十六进制颜色(在#之后写入的六个十六进制数)。十六进制数字系统由16个符号组成,0-9和字母表的前6个字母a-f

代码语言:javascript
复制
print("返回两组HEXA颜色:", list_of_hexa_colors(2))

「练习2.2」 编写一个函数 list_of_rgb_colors,它返回任意数量的RGB颜色数组。

代码语言:javascript
复制
print("返回两组RGB颜色:", list_of_rgb_colors(2))

「练习2.3」 写一个函数 generate_colors,它可以生成任意数量的hexa或rgb颜色

代码语言:javascript
复制
print("hexa,3:", generate_colors('hexa', 3))
print("hexa,1:", generate_colors('hexa', 1))
print("rgb,3:", generate_colors('rgb', 3))
print("rgb,1:", generate_colors('rgb', 1))

「练习3.1」 调用你的编写的函数 shuffle_list,它接受一个列表作为参数,并返回一个打乱的列表

代码语言:javascript
复制
original_list = [1, 2, 3, 4, 5, 6]
print("初始顺序:", original_list)
print("打乱后顺序:", shuffle_list(original_list))

「练习3.2」 编写一个函数,返回由0-9范围内的7个随机数组成的数组。所有的数字必须是唯一的

代码语言:javascript
复制

from modules import random_seven_number as rsn
print("随机7位唯一数列表:", rsn())

比较上篇练习,这次有不少初级算法题在里边了。但都没有超出之前所学的知识范围。所以没有理解或不熟练一定要亲自动手多多做几遍,如果你最后能用笔纸轻松的写出来,那我要给你大大的赞了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 非典型性程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档