python程序设计问题

wrg1997 2017-09-02 03:35:43
题目要求:输出如下图片中的图形

========================以下是我写的python代码============================
# coding: utf-8
import sys
print "请输入要打印的字符"
char = raw_input() # number 是循环的层数
print "请输入您要打印的层数"
number = input() # char 是用户输入的打印的字符

def function2(number,char):
for temp in range(number,0,-1):
standardOutput(temp,char)
for i in range(1,number - temp):
standardOutput(number,char)
print "\n"
sys.stdout.write(char)
for temp in range(1,number):
standardOutput(number, char)
function3(number,char)

def function3(number,char):
for temp in range(1,number):
standardOutput(temp,char)
for i in range(1,number - temp):
standardOutput(number,char)
print "\n"

def standardOutput(number,char): # 标准输出(number个空格,1个char)
space = " "*number
sys.stdout.write(space)
sys.stdout.write(char)

function2(number,char)
========================以下是运行结果============================



求大神帮助!!!为什么运行的结果这么搞笑啊!!
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
NG7711 2017-09-03
  • 打赏
  • 举报
回复
试着用最简单的方法解决这个问题。 首先,说一下我的思路 打印每一行时需要的信息 1. 行首多少空格: num_space 2. 这行打印多少个字符: num_char 1,2具备这样的关系:num_space + num_char = num_layer 根据这个分析可以得到打印一行的函数

num_layer_input=9
num_layer = 9

def print_char(line_no, num_layer=num_layer_input):
	#print heading space
	line_str = " " * (num_layer-line_no-1)
	# print other character
	line_str += ">    " * (line_no+1)
	print(line_str)
接下来就需要决定打印多少行了,传给print_char的参数应该是这样的一个列表 [0, 1, .., num_layer-2 , num_layer-1, num_layer-2,...,1,0] 所以最直接的方法是

for i in range(0,num_layer):
	print_char(i)

for i in range(num_layer-2,-1,-1):
	print_char(i)
混沌鳄鱼 2017-09-02
  • 打赏
  • 举报
回复

symbol = '>'
layer = 9

result = []
for i in range(layer,0,-1):
    line = ' '*(layer-i) + (symbol+' '*7)*i
    result.append(line)
    if i != layer:
        result.insert( 0, line)
混沌鳄鱼 2017-09-02
  • 打赏
  • 举报
回复
提供你个思路参考一下。



要是上面的看不懂用下面的也可以。



symbol = '>'
layer = 9

result = []
for i in range(level,0,-1):
line = ' '*(level-i) + (symbol+' '*7)*i
result.append(line)
if i != level:
result.insert( 0, line)

print('\n'.join(result))

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧