鱼C论坛

 找回密码
 立即注册
查看: 2781|回复: 4

[已解决]好久没碰Python了 遇到了一个很小的问题

[复制链接]
发表于 2020-3-1 09:39:49 | 显示全部楼层 |阅读模式

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

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

x
def chengji(x):
    if x>90:
        print('a')
    elif x>=80 and x<=90:
        print('b')
    elif x>=60 and x<80:
        print('c')
    elif x<60:
        print('d')
    else:
        print('输入错误')


x = int(input('请输入成绩'))
jieg = chengji(x)
print('成绩为:',jieg)

这个答案:
请输入成绩77
c
成绩为: None
>>>
为什么会变成这样,我本来想这样:成绩为:c
怎么会出现none 那个c为什么会跑上去
最佳答案
2020-3-1 10:00:08
你的函数没有返回值,默认返回None。

所以jieg = chengji(x)的时候jieg无论如何都是None。

因为你的函数内部已经print成绩了,所以最后没必要再print(jieg)了,直接调用chengji(x)。

规范点的话,就把函数内部的print改成return,最后再
jieg = chengji(x)
print('成绩为:',jieg)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-1 09:44:23 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-3-1 09:46 编辑

你的chengji函数是没有返回值的,所以最后为None
有两种办法:
1,把所有的print改成return
  1. if x > 90:
  2.     return 'a'
复制代码

2,把最后的函数调用改一下
  1. chengji(x)  # 直接调用
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 09:50:03 | 显示全部楼层
你这最后一行代码,是有格式化吗?
最后一行代码改一下
  1. print('成绩为:%s',%(jieg))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 09:55:48 | 显示全部楼层
print()是打印函数,不能做值
可以把def()里的print 全用return ‘a’
最后一行代码有点问题,如果不是格式化,用逗号隔开干嘛,不应该用+吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 10:00:08 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
你的函数没有返回值,默认返回None。

所以jieg = chengji(x)的时候jieg无论如何都是None。

因为你的函数内部已经print成绩了,所以最后没必要再print(jieg)了,直接调用chengji(x)。

规范点的话,就把函数内部的print改成return,最后再
jieg = chengji(x)
print('成绩为:',jieg)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 16:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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