鱼C论坛

 找回密码
 立即注册
查看: 1305|回复: 19

[已解决]请问各位大神这个什么问题

[复制链接]
发表于 2020-8-9 19:23:59 | 显示全部楼层 |阅读模式

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

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

x
[img]%5Bimg%5D

                               
登录/注册后可看大图
[/img][img]%5Bimg%5D

                               
登录/注册后可看大图
[/img[/img][/img]
最佳答案
2020-8-9 19:48:15
freeman007 发表于 2020-8-9 19:46
然后效果却是这样:
place type in the original price:12
please type in the discount rate:0.7



因为你的函数没有设置返回值,所以打印函数运行结果是 None

把函数的 print 改成 return 即可设置返回值:
def discounts(price,rate):
    x = price * rate
    return x

spending = float(input("please type in the original price:"))
discount = float(input("please type in the discount rate:"))
print("the final price is:",discounts(spending,discount))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-9 19:25:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:32:44 | 显示全部楼层
[img]https://imgchr.com/i/a7C89x https://imgchr.com/i/a7C141[/img]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:36:11 | 显示全部楼层

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:42:34 | 显示全部楼层
zltzlt 发表于 2020-8-9 19:25
https://fishc.com.cn/thread-159225-1-1.html


                               
登录/注册后可看大图

https://s1.ax1x.com/2020/08/09/a7C141.png
是这种情况,本来想在文本后加数据,形成“最终价格为:***”这样的效果。
可它是先出数据然后再下一行显示“最终价格为:none”
不知道出了什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 19:43:41 | 显示全部楼层
1,请回复别人,不然别人看不见
2,发代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:46:37 | 显示全部楼层
def discounts(price,rate):
    x = price * rate
    print (x)

spending = float(input("please type in the original price:"))
discount = float(input("please type in the discount rate:"))
print("the final price is:",discounts(spending,discount))

然后效果却是这样:
place type in the original price:12
please type in the discount rate:0.7
8.399999999999999
the final price is: None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:47:23 | 显示全部楼层
qiuyouzhi 发表于 2020-8-9 19:43
1,请回复别人,不然别人看不见
2,发代码

对不起,之前发的图片链接好像有点问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 19:48:15 | 显示全部楼层    本楼为最佳答案   
freeman007 发表于 2020-8-9 19:46
然后效果却是这样:
place type in the original price:12
please type in the discount rate:0.7



因为你的函数没有设置返回值,所以打印函数运行结果是 None

把函数的 print 改成 return 即可设置返回值:
def discounts(price,rate):
    x = price * rate
    return x

spending = float(input("please type in the original price:"))
discount = float(input("please type in the discount rate:"))
print("the final price is:",discounts(spending,discount))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 19:48:56 | 显示全部楼层
freeman007 发表于 2020-8-9 19:46
然后效果却是这样:
place type in the original price:12
please type in the discount rate:0.7

代码改成这样:
from decimal import Decimal

def discounts(price,rate):
    x = price * rate
    return x

spending = Decimal(input("please type in the original price:"))
discount = Decimal(input("please type in the discount rate:"))
print("the final price is:",discounts(spending,discount))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 19:49:43 | 显示全部楼层
freeman007 发表于 2020-8-9 19:47
对不起,之前发的图片链接好像有点问题

代码发在楼下了,问题是为什么是数据先出来,然后下一行显示the final price is :none

点评

楼上都已经发代码了,看楼上即可  发表于 2020-8-9 19:54
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:02:35 | 显示全部楼层
Twilight6 发表于 2020-8-9 19:48
因为你的函数没有设置返回值,所以打印函数运行结果是 None

把函数的 print 改成 return 即可设置 ...

所以print不能直接打印函数必须要返回值是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 20:02:39 | 显示全部楼层
你的discounts函数没有返回值,函数运行的结果就是打印你计算后得到的结果x。整个程序运行的结果就是这样:你输入price和rate,调用函数打印计算结果x,函数调用完成,接着打印你的‘the final price is:',后面你的函数没有返回值,就打印一个’none'。第一次回答,不知道说的对不对,请指正。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-8-9 20:04:14 | 显示全部楼层

请问from decimal import Decimal是干啥用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 20:04:43 | 显示全部楼层
freeman007 发表于 2020-8-9 20:04
请问from decimal import Decimal是干啥用的

提高小数精度,你可以百度下decimal.Decimal的用法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 20:08:51 | 显示全部楼层
freeman007 发表于 2020-8-9 20:02
所以print不能直接打印函数必须要返回值是吗



不是不能打印,如果不能打印肯定报错了,而你还是成功打印了,只是结果为 None

是因为 print 函数是打印返回值的,而你函数没有设置 return 所以你的函数默认返回 None ,外部print 函数就打印了 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:15:22 | 显示全部楼层
Twilight6 发表于 2020-8-9 20:08
不是不能打印,如果不能打印肯定报错了,而你还是成功打印了,只是结果为 None

是因为 print 函数 ...

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

使用道具 举报

 楼主| 发表于 2020-8-9 20:20:57 | 显示全部楼层
qiuyouzhi 发表于 2020-8-9 20:04
提高小数精度,你可以百度下decimal.Decimal的用法

十分感谢,但抱歉最佳给七楼了因为七楼回复的比较早
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 20:27:44 | 显示全部楼层
windsaying 发表于 2020-8-9 20:02
你的discounts函数没有返回值,函数运行的结果就是打印你计算后得到的结果x。整个程序运行的结果就是这样: ...

明白了,discounts没有被定义,而return才能使discounts被结果定义,是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 11:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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