Python编写右向箭头程序时input()参数引发Syntax Error求助
Python右向箭头生成程序的语法错误解决
问题背景
需要编写一个生成5行右向箭头的Python程序,示例输入为* #,预期输出如下:
# ******## ******### ******## #
但编写第一行代码时就触发Syntax Error,怀疑是*和#的使用导致,且担心第二行代码会出现同样问题。
当前代码
base_char=input(*) # line 1 head_char=input(#) # line 2 # line 3 row1=' ' + head_char # line 4 # line 5 print(row1) # line 6
报错信息
base_char=input(*) ^ syntax error: invalid syntax
错误原因与解决方案
1. 语法错误根源
input()函数的参数如果是提示文本,必须是字符串类型,需要用单引号或双引号包裹。原代码中直接写input(*)、input(#),Python会将*、#视为语法符号而非字符串,因此触发语法错误。
2. 输入逻辑优化
示例输入是一行内的两个字符(空格分隔),不需要两次调用input(),一次读取整行输入后拆分更符合需求。
修正后的完整代码
# 读取一行输入,拆分得到基础字符和箭头头部字符 base_char, head_char = input().split() # 构造箭头的5行内容 row1 = ' ' + head_char row2 = base_char * 6 + head_char * 2 row3 = base_char * 6 + head_char * 3 row4 = base_char * 6 + head_char * 2 row5 = ' ' + head_char # 依次打印所有行 print(row1) print(row2) print(row3) print(row4) print(row5)
代码说明
- 使用
input().split()读取输入并按空格拆分,直接获取两个字符; - 利用字符串乘法
*快速重复字符,构造箭头的重复部分; - 按预期格式拼接每行内容,最终输出符合要求的右向箭头。
内容的提问来源于stack exchange,提问作者David Wild
相关产品推荐
相关产品推荐

