鱼C论坛

 找回密码
 立即注册
查看: 2235|回复: 5

为啥这个for不循环?

[复制链接]
发表于 2022-9-15 12:29:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2022-9-15 12:42 编辑
import pygame
import random
import re



pygame.mixer.init()
pygame.init()
size = (1280, 580)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("1")

bg = pygame.image.load("b")


white = (0, 0, 0)
black = (230, 0, 100)
light_grey = (224, 224, 224)
dark_grey = (200, 200, 200)

text = pygame.font.SysFont("Agency FB", 20)



myList = ["a5一个5ˈei", "am5是5æm", "are5是5a:r"]
font = pygame.font.Font('./simhei.ttf', 25)
button_text = font.render("aaaaa", True, black)
button_rect = pygame.Rect(70, 350, 200, 200)


bFont = None 

var = True
while var:
    
    mouse = pygame.mouse.get_pos()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            var = False
        
        if event.type == pygame.MOUSEBUTTONDOWN:
            
            if button_rect.collidepoint(event.pos):
                #for rb in myList:
                rb = random.choice(myList)
                    #bFont = font.render(rb, True, white)
                    #bFont1 = font.render(rb, True, white)
                bFont = font.render(rb, True, white)
                bFont1 = font.render(rb, True, white)

    
    screen.blit(bg, (0, 0))

    if button_rect.collidepoint(mouse):
        pygame.draw.rect(screen, dark_grey, (70, 350, 200, 200), 0)
    else:
        pygame.draw.rect(screen, light_grey, (70, 350, 200, 200), 0)
    screen.blit(button_text, (90, 450))  

    if bFont:
        screen.blit(bFont, (70, 100))
        screen.blit(bFont1, (70, 220))

    pygame.display.update()
    

abc.png

想让鼠标每次点击,都从列表中依序显示一个值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-15 13:48:21 | 显示全部楼层
一个是随机
rb = random.choice(myList)

一个是固定
for rb in myList:                    
                    bFont = font.render(rb, True, white)
                    bFont1 = font.render(rb, True, white)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-15 15:17:06 | 显示全部楼层
本帖最后由 blackantt 于 2022-9-15 15:24 编辑
ba21 发表于 2022-9-15 13:48
一个是随机
rb = random.choice(myList)


照理说
for rb in myList:
    print(rb)

是能顺序遍历列表 myList的,为啥它就成固定的了?
那想:每一次鼠标点击,都依序从myList里显示一个值,该怎么改呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-15 19:18:54 | 显示全部楼层
blackantt 发表于 2022-9-15 15:17
照理说
for rb in myList:
    print(rb)

你的是
for rb in myList:
    print(rb)
    print(rb)
不是
for rb in myList:
    print(rb)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-15 20:01:06 | 显示全部楼层

无论怎么点,显示的都是同样的一个值。myList里有3个值,他应该显示
值1
值1
值2
值2
值3
值3

才对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-15 21:44:06 | 显示全部楼层
blackantt 发表于 2022-9-15 20:01
无论怎么点,显示的都是同样的一个值。myList里有3个值,他应该显示
值1
值1

for rb in myList:
    print(rb)
    print(rb)
#for执行完后,值肯定是
#值3
#值3

脱离IDLE思想吧。当然也可以实现你说的
for rb in myList:
    print(rb)
    print(rb)
    time.sleep(5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 18:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表