输入两个整数,在这两个整数组成的闭区间范围内生成100个随机整数,并统计出现数据的次数,出现0次的故字不输出(而不是输出0)。为满足评测需要,程序必须使用seed函数将随机种子设为10,并使用randint函数生成随机数。输入格式
一行当中输入两个整数,以空格间隔。题目保证两个整数从小到大
输出格式
按照生成随机数从小到大的顺序,每行输出一个生成的整数以及其出现的次数,以空格间隔。
import random
random.seed(10)
a, b = map(int, input().split())
nums = [random.randint(a, b) for _ in range(100)]
count_dict = {}
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
items = sorted(count_dict.items())
for item in items:
if item[1] > 0:
print(item[0], item[1])
import random
from collections import Counter
random.seed(10)
a, b = map(int, input().split())
cnt = Counter(random.randint(a, b) for _ in range(100))
for k in sorted(cnt):
print(k, cnt[k])
import random
a, b = map(int, input().split())
random.seed(10) # 设置种子值为10
count = {} # 用来统计每个数出现的次数
for i in range(100):
num = random.randint(a, b)
count[num] = count.get(num, 0) + 1
# 按照生成随机数从小到大的顺序输出数和出现次数
for num in range(a, b+1):
if count.get(num, 0) != 0:
print(num, count[num])
import sys
import pygame
pygame.init()
#icon = pygame.image.load("biu.jpg")
#pygame.display.set_icon(icon) #设置窗口图标
#Vinfo = pygame.display.Info() #获取当前操作系统的屏幕尺寸
#size = width, height = Vinfo.current_w, Vinfo.current_h #将系统的屏幕尺寸作为显示窗口的尺寸
size = width,height = 900 ,600 #设置屏幕的长度和宽度
speed = [1,1] #设置移动速度[x,y]
BLACK = 0,0,0 #设置背景颜色
#screen = pygame.display.set_mode(size) #初始化显示窗口
screen = pygame.display.set_mode(size,pygame.RESIZABLE) #将屏幕设置为大小可调
#screen = pygame.display.set_mode(size,pygame.NOFRAME) #将屏幕设置为无边框
#screen = pygame.display.set_mode(size,pygame.FULLSCREEN) #将屏幕设置为全屏模式
pygame.display.set_caption("壁球游戏") #将窗口命名为“壁球游戏”
ball = pygame.image.load("biu.jpg") #加载图片
ballrect = ball.get_rect() #返回一个覆盖图像的矩形Rect对象,载入图像的外切矩形
"""Rect对象有一些重要的属性,比如top、bottom、left、right表示上下左右
width、height表示宽度和高度"""
fps = 300
fclock = pygame.time.Clock()
still = False
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
#按左键改变壁球左右移动方向,按一次方向取反
if event.key == pygame.K_LEFT:
speed[0] = -speed[0]
#按上键改变壁球上下移动方向,按一次方向取反
elif event.key == pygame.K_UP:
speed[1] = -speed[1]
elif event.key == pygame.K_ESCAPE:
sys.exit("游戏结束!")
elif event.type == pygame.VIDEORESIZE:
size = width, height = event.size[0], event.size[1]
screen = pygame.display.set_mode(size,pygame.RESIZABLE)
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
still = True
"""当鼠标左键按下时,将控制壁球移动的变量设置为True,
让壁球停止移动,因为后边是用if pygame.display.get_active() and not still:
来控制壁球移动的,将still取反了"""
elif event.type == pygame.MOUSEBUTTONUP:
still = False
if event.button == 1:
ballrect = ballrect.move(event.pos[0] - ballrect.left, event.pos[1] - ballrect.top)
"""当鼠标按键释放时,让壁运动的相对球移动到鼠标所在的位置,同时让壁球继续运动
move函数的参数是指两次距离,将两个位置的相对距离赋值给函数
"""
elif event.type == pygame.MOUSEMOTION:
if event.buttons[0] == 1: # 当鼠标左键按下的时候
ballrect = ballrect.move(event.pos[0] - ballrect.left, event.pos[1] - ballrect.top)
"""当鼠标左键处于按下状态并且在移动时,使壁球的图片跟随着鼠标一起移动"""
if pygame.display.get_active() and not still:
ballrect = ballrect.move(speed[0],speed[1]) #在横轴和纵轴移动x,y像素
""" 设置窗口感知,当显示为界面的时候,返回True,图标化的时候返回False
这样设置如果将窗口最小化,壁球会停止运动
当打开的时候壁球将会继续运动"""
#判断图像的边缘位置,如果碰到上下左右边缘,使其速度取反
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
#sys.exit("Game Over!")
if ballrect.right > width and ballrect.right + speed[0] > ballrect.right:
speed[0] = - speed[0]
"""如果壁球的右边缘的坐标位置大于屏幕宽度,则让壁球改变运动方向"""
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
#sys.exit("Game Over")
if ballrect.bottom > height and ballrect.bottom + speed[1] > ballrect.bottom:
speed[1] = - speed[1]
screen.fill(BLACK) #填充背景颜色
screen.blit(ball,ballrect)
"""将一个图像绘制在另一个图像上,即将ball绘制到ballrect位置上。
通过Rect对象引导对移动图像的绘制,让图像跟着外切矩形的移动而移动
这样就形成了图像的移动"""
pygame.display.update() #刷新屏幕,仅仅重新绘制窗口中有变化的地方,比flip函数速度更快,flip函数重新绘制整个窗口
fclock.tick(fps)
首先,我们需要先使用seed函数将随机种子设置为10,然后使用randint函数生成100个随机整数,并统计出现的次数。
代码如下:
import random
# 设置随机种子为10
random.seed(10)
# 生成100个随机整数
random_list = [random.randint(0, 100) for i in range(100)]
# 统计每个数字出现的次数
count_dict = {}
for num in random_list:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 剔除出现次数为0的数字
result_dict = {k: v for k, v in count_dict.items() if v > 0}
# 输出结果
print(result_dict)
解释一下,首先使用random.seed函数将随机种子设置为10,以确保每次执行程序生成的随机数相同。然后使用列表推导式结合random.randint函数生成100个随机整数,并存储到random_list列表中。接着使用for循环遍历random_list中的每个数字,统计该数字出现的次数,存储到count_dict字典中。最后使用字典推导式剔除出现次数为0的数字,存储到result_dict字典中,并输出结果。