首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在for循环中打印

在for循环中打印
EN

Stack Overflow用户
提问于 2020-03-24 03:41:05
回答 2查看 32关注 0票数 0

(对于任何错误我深表歉意,英语是我的第二语言,我还在学习)

我试图在我的吉他热身和音阶练习中自动化一些东西,但在这一点上卡住了。首先,我编写了这段代码来随机选择三个手指图案,并且只有在选择了所有其他项之后,才会再次选择集合中选择的项,但在fingerPatternLoop.txt中什么都没有,在终端上也没有得到任何东西。

代码语言:javascript
运行
复制
import random

fingerPatterns = set(['1, 2, 3, 4', '1, 2, 4, 3', '1, 3, 4, 2', '1, 3, 2, 4', 
'1, 4, 3, 2', '1, 4, 2, 3', '2, 1, 3, 4', '2, 1, 4, 3', '2, 3, 1, 4', 
'2, 3, 4, 1', '2, 4, 3, 1', '2, 4, 1, 3', '3, 1, 2, 4', '3, 1, 4, 2', 
'3, 2, 4, 1', '3, 2, 1, 4', '3, 4, 2, 1', '3, 4, 1, 2', '4, 1, 2, 3', 
'4, 1, 3, 2', '4, 2, 1, 3', '4, 2, 3, 1', '4, 3, 1, 2', '4, 3, 2, 1', 
    ])

fingerPatternLoop = open("fingerPatternLoop.txt", "a+")
rand_warmup = random.sample(fingerPatterns, 3)

for rand_warmup in fingerPatternLoop:
    if rand_warmup not in fingerPatternLoop:
        print(rand_warmup)
        print(f"{rand_warmup}", file=fingerPatternLoop)

删除for循环可以使代码正常工作。

代码语言:javascript
运行
复制
print(rand_warmup)
print(f"{rand_warmup}", file=fingerPatternLoop)

但是我仍然不知道如何让这些打印在一个for循环中工作,该循环验证random.sample的任何项是否已经发生,并在所有24个项都已被选中的情况下清除fingerPatternLoop.txt。

EN

Stack Overflow用户

回答已采纳

发布于 2020-03-24 03:54:26

文件模式a+永远不会有用。你打开文件进行读写,在最后设置文件指针。因此,读取永远不会进入for循环。

你必须分两步读写这个文件。

代码语言:javascript
运行
复制
rand_warmup = random.sample(fingerPatterns, 3)
with open("fingerPatternLoop.txt") as lines:
    found = rand_warmup in map(str.strip, lines)

if not found:
    with open("fingerPatternLoop.txt", "a") as output:
        print(rand_warmup, file=output)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60820500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档