帮忙优化下python代码,加下输入的异常处理 200
importrea,b=re.split(',||,|',input('请输入2个数字,用逗号或空格隔开:'))a,b=int(a),int(b)i=1whilei<=a...
import re
a, b = re.split(',| |,| ', input('请输入2个数字,用逗号或空格隔开:'))
a, b = int(a), int(b)
i = 1
while i <= a:
print(" " * (a - i), end="")
if i == 1 or i == a:
y = 1
while y <= b:
print("*", end="")
y += 1
else:
print("*", end="")
j = 1
while j <= (b - 2):
print(" ", end="")
j += 1
print("*", end="")
i += 1
print() 展开
a, b = re.split(',| |,| ', input('请输入2个数字,用逗号或空格隔开:'))
a, b = int(a), int(b)
i = 1
while i <= a:
print(" " * (a - i), end="")
if i == 1 or i == a:
y = 1
while y <= b:
print("*", end="")
y += 1
else:
print("*", end="")
j = 1
while j <= (b - 2):
print(" ", end="")
j += 1
print("*", end="")
i += 1
print() 展开
展开全部
代码主体部分给你整理到非常简洁了。另外在输入这块加了一重验证,非法输入(输入的不是数字、或者不是两个数字、或者没有用逗号空格隔开、或者数字小于等于0等)会要求用户重新输入。效果如下:
代码如下:
import re
def read_input():
while 1:
try:
usr_input = input("请输入2个数字,用逗号或空格隔开:")
a, b = map(int, re.split("[\s,]", usr_input))
if a <= 0 or b <= 0:
raise ValueError("长和宽均需要大于0!")
break
except ValueError:
print("请确认输入的是两个数字, 并且中间有逗号或者空格!")
return a, b
a, b = read_input()
for i in range(a):
if i == 0 or i == a - 1:
body = "*" * b
else:
body = "*" + " " * (b - 2) + "*"
print(" " * (a - i - 1) + body)
展开全部
你这样的代码没法看 python 的空格缩进和换行也是代码的一部分
请把准确的代码或者截图重发一次 或者说明白你要达到什么目的
请把准确的代码或者截图重发一次 或者说明白你要达到什么目的
追问
我也很绝望啊,复制粘贴进来就是这样了。
追答
# 你在代码可以这样写 然后没明白你要做什么会有什么异常? 比如输入的值是负数或是什么?
a, b = 3, 6
for i in range(1, a + 1):
print(' ' * (a - i), end = '')
if i == 1 or i == a:
for y in range(1, b + 1):
print("*", end = '')
else:
print("*", end = '')
for j in range(b - 2):
print(' ', end = '')
print("*", end = '')
print()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请参考我的另一个回答答案,直接复制代码可运行:
import re
def is_right_triangle(*nums: float) -> bool:
"""直角三角形判断"""
if len(nums) != 3:
return False
new_nums = sorted(nums)
return new_nums[0]**2 + new_nums[1]**2 == new_nums[2]**2
def triangle():
"""三角形判断"""
try:
a, b, c = [float(num) for num in re.split(',| |,| ', input("请输入3个数字,用逗号或空格隔开:"))]
except:
print('输入非法数值!')
else:
# 判断是否可以组成三角形
if a + b > c and a + c > b and b + c > a:
if a == b == c:
print('%.2f,%.2f,%.2f能组成等边三角形' % (a, b, c))
elif a == b or a == c or b == c:
if is_right_triangle(a, b, c):
print('%.2f,%.2f,%.2f能组成等腰直角三角形' % (a, b, c))
else:
print('%.2f,%.2f,%.2f能组成等腰三角形' % (a, b, c))
elif is_right_triangle(a, b, c):
print('%.2f,%.2f,%.2f能组成直角三角形' % (a, b, c))
else:
print('%.2f,%.2f,%.2f能组成普通三角形' % (a, b, c))
else:
print('%.2f,%.2f,%.2f不能组成三角形' % (a, b, c))
triangle()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
python的异常处理是try execpt自己研究下,比较简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
坦白说这个我不是很懂,希望哪位大神能帮助到解决一下?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询