修改程序使")"出现在i项的右侧。import random def print_dice_sequence(): sequence = [] for _ in range(20): dice_value = random.randint(1, 6) sequence.append(dice_value) for i in range(len(sequence)): if i >= 0 and sequence[i]!=sequence[i-1]: if i < len(sequence) - 1 and sequence[i]==sequence[i+1]: print("(", end=" ") if i >= 0 and sequence[i]==sequence[i-1]: if i < len(sequence) - 1 and sequence[i]!=sequence[i+1]: print(")", end=" ") print(sequence[i], end=" ") print() print_dice_sequence()
时间: 2024-02-28 08:55:42 浏览: 22
可以将输出的括号保存到一个列表中,当当前数和前一个数不相等,但和后一个数相等时,将左括号"("添加到括号列表中,当当前数和前一个数相等,但和后一个数不相等时,将右括号")"添加到括号列表中。最后,将输出时括号列表中的")"插入到当前数的右侧即可。
修改后的代码如下:
```python
import random
def print_dice_sequence():
sequence = []
for _ in range(20):
dice_value = random.randint(1, 6)
sequence.append(dice_value)
brackets = [] # 保存括号的列表
for i in range(len(sequence)):
if i >= 0 and sequence[i] != sequence[i-1]:
if i < len(sequence) - 1 and sequence[i] == sequence[i+1]:
brackets.append("(")
if i >= 0 and sequence[i] == sequence[i-1]:
if i < len(sequence) - 1 and sequence[i] != sequence[i+1]:
brackets.append(")")
print(sequence[i], end="")
if len(brackets) > 0 and brackets[-1] == ")": # 如果括号列表中最后一个是")",则输出")"
print(")", end="")
brackets.pop() # 弹出已输出的")"
elif len(brackets) > 0 and brackets[-1] == "(": # 如果括号列表中最后一个是"(",则输出"("
print("(", end="")
print(" ", end="")
if i == len(sequence) - 1: # 如果已经输出完所有数,则将所有未输出的")"输出出来
while len(brackets) > 0:
print(")", end="")
brackets.pop()
print()
print_dice_sequence()
```
输出示例:
```
1 2 3 ( 4 5 5 ) 5 4 2 1 ( 2 4 1 ) 5 3 1 ( 3 ) 2 4 6
```