You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将C++阶乘代码转Python遇语法错误,需适配returnfac(9)测试

解决C++阶乘转Python的语法错误与代码实现

先解决「Syntax error: unmatched '{'」问题

Python完全不使用C的大括号{}划分代码块,而是依靠**缩进(推荐4个空格)**区分代码层级,同时if/else/for等语句结尾必须加冒号:。你直接保留C代码里的大括号到Python中,就会触发这个语法错误——直接删掉所有{},用缩进替代即可。

按测试要求编写fac函数

作业给出的测试代码是return fac(9),这要求你必须定义一个名为fac的函数,接收整数参数并返回对应阶乘结果。结合原C++的逻辑,完整实现如下:

def fac(n):
    # 处理负数阶乘的异常情况
    if n < 0:
        return None
    factorial = 1
    # 对应C++的for循环逻辑:从1遍历到n(包含n)
    for i in range(1, n + 1):
        factorial *= i
    return factorial

# 验证测试代码:调用fac(9)并输出结果
print(fac(9))  # 输出:362880

# 还原原C++的交互输入输出功能
n = int(input("Enter a positive integer: "))
if n < 0:
    print("Error! Factorial of a negative number doesn't exist.")
else:
    print(f"Factorial of {n} = {fac(n)}")

关键细节说明

  • 函数定义:Python用def关键字声明函数,不需要像C++那样指定返回值类型
  • 循环实现:range(1, n+1)是左闭右开区间,刚好对应C++中i从1到n的循环逻辑
  • 输入处理:input()获取的是字符串,必须用int()转换为整数类型
  • 字符串输出:用Python的f-string(f"...")替代C++的cout拼接,语法更简洁直观

内容的提问来源于stack exchange,提问作者John1974

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:10:22