gpt4 book ai didi

python - 我看似功能正常的 BF interpereter 无法运行标准 BF 程序

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:20 24 4
gpt4 key购买 nike

这是我的解释器的代码:

program=list(raw_input('Program: '))
array = [0 for i in range(100)]
pointer=0
prgpointer=0
run = True
while run:
try:
command = program[prgpointer]
if command == '>':
pointer += 1
if command == '<':
pointer -= 1
if command == '+':
array[pointer]=array[pointer]+1
if command == '-':
array[pointer]=array[pointer]-1
if command == '.':
print(array[pointer])
if command == '[' and array[pointer]==0:
while program[prgpointer]!=']':
prgpointer+=1
if command == ']' and array[pointer]!=0:
while program[prgpointer]!='[':
prgpointer-=1
except:
run = False
prgpointer+=1

当我运行这个程序时:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

我得到的结果是

-1
-3
4
4
7
0
-2
7
10
4
-4
1
1

此程序是任何其他 bf 解释器中的功能性“hello world”程序。即使输出转换为 ASCII,它也不是“Hello World”关于我的解释者,有什么可以指出的主要问题吗?命令是否正确?

最佳答案

  1. 要在您的数据指针处打印 char 值,您需要 sys.stdout.write(chr(array[pointer])) 因为否则您只会打印数字 - 毕竟数字是您列表中的内容。

  2. 语言规范说 [] 表示跳转到匹配 括号。您正跳转到下一个/上一个括号。

关于python - 我看似功能正常的 BF interpereter 无法运行标准 BF 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com