全民都在这次开放中等着进决赛,可惜笔者没那么强的抵抗力。上周不幸中招整个人都迷糊糊的。没有精气神,也不想拿这事做营销。只想告诉大家最好防护能别得就别得。得了也不要乱用药(且不说现在买不到药)物理降温,多补水保持营养进食很重要。
模块的内容就是练习引用,所以就不将每个题拆开了,这里先创建一个自定义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())
比较上篇练习,这次有不少初级算法题在里边了。但都没有超出之前所学的知识范围。所以没有理解或不熟练一定要亲自动手多多做几遍,如果你最后能用笔纸轻松的写出来,那我要给你大大的赞了。