鱼C论坛

 找回密码
 立即注册
查看: 1927|回复: 3

[已解决]下面第一行是什么推导式吗?

[复制链接]
发表于 2023-6-11 23:53:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> def recursion(x) : return x if x == 1 else x * recursion(x - 1)

>>> number = int(input('请输入一个正整数:'))
请输入一个正整数:12
>>> result = recursion(number)
>>> print(f'{number}的阶乘是:{result}')
12的阶乘是:479001600
最佳答案
2023-6-11 23:53:56
本帖最后由 歌者文明清理员 于 2023-6-11 23:56 编辑

这不是推导式,而是一个递归函数的定义,函数名为recursion,接受一个参数x。函数体内部首先判断x是否等于1,如果是则返回1,否则返回x * recursion(x - 1)。这意味着调用recursion(x)函数将返回x!的值,即x的阶乘。

  • 第二行中,通过input()函数提示用户输入一个正整数,然后将用户输入的字符串转换成整型数并赋值给变量number。
  • 第三行调用了recursion()函数来计算输入数字的阶乘,并将结果赋值给变量result。
  • 最后一行使用print()函数输出阶乘结果。


如果您是指第一行代码的x if x == 1 else x * recursion(x - 1)

这是Python中的三元表达式,格式为:
a if b else c

意思是:如果b成立(即b为真),则返回a的值;否则(即b为假),返回c的值。

可以理解为一个简单的条件判断语句,其中a和c可以是任何数据类型,包括数字、字符串、列表、字典等。如果b为真,就返回a,否则返回c。

使用三元表达式可以使代码更加简洁,例如在对变量进行赋值时,可以用三元表达式来根据不同的情况给变量赋不同的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-11 23:53:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-6-11 23:56 编辑

这不是推导式,而是一个递归函数的定义,函数名为recursion,接受一个参数x。函数体内部首先判断x是否等于1,如果是则返回1,否则返回x * recursion(x - 1)。这意味着调用recursion(x)函数将返回x!的值,即x的阶乘。

  • 第二行中,通过input()函数提示用户输入一个正整数,然后将用户输入的字符串转换成整型数并赋值给变量number。
  • 第三行调用了recursion()函数来计算输入数字的阶乘,并将结果赋值给变量result。
  • 最后一行使用print()函数输出阶乘结果。


如果您是指第一行代码的x if x == 1 else x * recursion(x - 1)

这是Python中的三元表达式,格式为:
a if b else c

意思是:如果b成立(即b为真),则返回a的值;否则(即b为假),返回c的值。

可以理解为一个简单的条件判断语句,其中a和c可以是任何数据类型,包括数字、字符串、列表、字典等。如果b为真,就返回a,否则返回c。

使用三元表达式可以使代码更加简洁,例如在对变量进行赋值时,可以用三元表达式来根据不同的情况给变量赋不同的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-12 07:30:19 | 显示全部楼层
歌者文明清理员 发表于 2023-6-11 23:53
这不是推导式,而是一个递归函数的定义,函数名为recursion,接受一个参数x。函数体内部首先判断x是否等于1 ...

……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-12 18:32:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 12:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表