当前位置: 首页 > 知识库问答 >
问题:

有大佬可以帮忙看看菜鸟python入门问题吗?

满耀
2023-10-10
def is_integer_string(s):    if not s.isdigit() and s[0]!='-':        return False      return int(s)==s def print_hourglass(n,sym):    i=1    while n>=i**2:        print(''*(i-1)+sym*i*2)        print(''*(i-1)+sym*(i+1)*2)        i+=2    while i>0:        print(''*(i-1)+sym*i*2)        i-=2    print(n-i**2)n=is_integer_string(input())try:    n,sym=map(int,input().split())except ValueError:    print("请输入一个数字")print(print_hourglass(n,sym))

这串代码后

Traceback (most recent call last):  File "/tmp/a.py", line 20, in <module>    print(print_hourglass(n,sym))NameError: name 'sym' is not defined. Did you mean: 'sum'?

这个sym的变量我该怎么修改

共有2个答案

阮健
2023-10-10

同萌新,我觉得是sym变量定义在try块里面,最后一行代码访问不到,变量需要定义在try块外面。

谭山
2023-10-10

没搞明白要干啥, 盲猜写法

def is_integer_string(s):    if not s.isdigit() and (s[0] != '-' or not s[1:].isdigit()):        return False    return Truedef print_hourglass(n, sym):    i = 1    while n >= i * i:        print(' ' * (i - 1) + sym * (i * 2))        print(' ' * (i - 1) + sym * ((i + 1) * 2))        i += 2    while i > 0:        print(' ' * (i - 1) + sym * (i * 2))        i -= 2try:    n = input()    if is_integer_string(n):        n = int(n)        sym = input()        print_hourglass(n, sym)    else:        print("请输入一个整数")except ValueError:    print("请输入一个整数")
 类似资料: