python在列表中存放一首古诗,然后分别用横版和竖版两种形式输出。python
时间: 2023-06-12 14:05:12 浏览: 906
可以先将古诗的每一行作为列表中的一个元素,然后分别输出。
横版输出:
```
poem = ['静夜思', '床前明月光,', '疑是地上霜。', '举头望明月,', '低头思故乡。']
for line in poem:
print(line)
```
竖版输出:
```
poem = ['静夜思', '床前明月光,', '疑是地上霜。', '举头望明月,', '低头思故乡。']
for i in range(len(poem[0])):
for j in range(len(poem)):
print(poem[j][i], end=' ')
print()
```
输出结果如下:
横版输出:
```
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
```
竖版输出:
```
静 床 疑 举 低
夜 前 是 头 头
思 明 地 望 思
月 上 明 故
霜 月 乡
```
相关问题
用一个python 编写一个程序输入一首古诗,然后分别用横版和竖版两种形式输出。
当然可以,下面是一个简单的Python程序,它会读取用户输入的一首古诗,并将其按横版和竖版的方式打印出来。这里假设我们使用`input()`函数获取诗歌文本:
```python
def print_poem(verse):
# 横版输出
for line in verse.split('\n'):
print(line)
# 竖版输出
print("\n竖版输出:")
columns = len(max(verse.split('\n'), key=len))
for line in verse.split('\n'):
padded_line = ' '.join([' ' * (columns - len(line)) + line] * columns)
print(padded_line)
if __name__ == "__main__":
poem = input("请输入一首古诗,每行按回车键分隔:")
print_poem(poem)
```
运行此程序后,你可以输入一首古诗,如“床前明月光,疑是地上霜。举头望明月,低头思故乡。”。程序将首先按照原始的横排格式显示,然后再按照竖排方式对齐最宽的字数。
编写一个程序输入一首古诗,然后分别用横版和竖版两种形式输出。效果如图
编写一个这样的程序通常涉及到文本处理和格式化输出。首先,你需要从用户那里获取输入的古诗,可以使用Python的`input()`函数。接下来,你需要确定古诗的行数和每行的字符数,以便调整格式。
对于横版输出(逐行显示),就是正常的文本排列,每个汉字占一格:
```python
def print_horizontal(verse):
for line in verse.split('\n'):
print(line)
# 示例
poem = input("请输入古诗:")
print_horizontal(poem)
```
对于竖版输出(每一行都是等长的),你可以计算诗句中最长的词的长度,然后按照这个长度对所有诗句进行切割并换行:
```python
def print_vertical(verse, max_width):
lines = [line.strip() for line in verse.split('\n')]
formatted_lines = [''.join(line[i:i+max_width] if i+max_width <= len(line) else '') for i in range(0, len(line), max_width)]
for line in formatted_lines:
print(line.center(max_width))
# 示例
max_width = max(len(word) for line in poem.split('\n') for word in line.split())
print_vertical(poem, max_width)
```
注意,为了美观,上述竖版打印可能会有空格填充。如果不想填充,可以使用`left`代替`center`。
阅读全文