freeman007 发表于 2020-8-9 19:23:59

请问各位大神这个什么问题

%5Bimg%5Dhttp://chuantu.xyz/t6/740/1596972170x1700340279.png%5Bimg%5Dhttp://chuantu.xyz/t6/740/1596972228x1709417261.png

zltzlt 发表于 2020-8-9 19:25:53

https://fishc.com.cn/thread-159225-1-1.html

freeman007 发表于 2020-8-9 19:32:44

https://imgchr.com/i/a7C89x https://imgchr.com/i/a7C141

freeman007 发表于 2020-8-9 19:36:11

https://imgchr.com/i/a7C89x

freeman007 发表于 2020-8-9 19:42:34

zltzlt 发表于 2020-8-9 19:25
https://fishc.com.cn/thread-159225-1-1.html

https://imgchr.com/i/a7C89x
https://s1.ax1x.com/2020/08/09/a7C141.png
是这种情况,本来想在文本后加数据,形成“最终价格为:***”这样的效果。
可它是先出数据然后再下一行显示“最终价格为:none”
不知道出了什么问题

qiuyouzhi 发表于 2020-8-9 19:43:41

1,请回复别人,不然别人看不见
2,发代码

freeman007 发表于 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

freeman007 发表于 2020-8-9 19:47:23

qiuyouzhi 发表于 2020-8-9 19:43
1,请回复别人,不然别人看不见
2,发代码

对不起,之前发的图片链接好像有点问题

Twilight6 发表于 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))

qiuyouzhi 发表于 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))

freeman007 发表于 2020-8-9 19:49:43

freeman007 发表于 2020-8-9 19:47
对不起,之前发的图片链接好像有点问题

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

freeman007 发表于 2020-8-9 20:02:35

Twilight6 发表于 2020-8-9 19:48
因为你的函数没有设置返回值,所以打印函数运行结果是 None

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

所以print不能直接打印函数必须要返回值是吗

windsaying 发表于 2020-8-9 20:02:39

你的discounts函数没有返回值,函数运行的结果就是打印你计算后得到的结果x。整个程序运行的结果就是这样:你输入price和rate,调用函数打印计算结果x,函数调用完成,接着打印你的‘the final price is:',后面你的函数没有返回值,就打印一个’none'。第一次回答,不知道说的对不对,请指正。

freeman007 发表于 2020-8-9 20:04:14

qiuyouzhi 发表于 2020-8-9 19:48
代码改成这样:

请问from decimal import Decimal是干啥用的

qiuyouzhi 发表于 2020-8-9 20:04:43

freeman007 发表于 2020-8-9 20:04
请问from decimal import Decimal是干啥用的

提高小数精度,你可以百度下decimal.Decimal的用法

Twilight6 发表于 2020-8-9 20:08:51

freeman007 发表于 2020-8-9 20:02
所以print不能直接打印函数必须要返回值是吗


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

是因为 print 函数是打印返回值的,而你函数没有设置 return 所以你的函数默认返回 None ,外部print 函数就打印了 None

freeman007 发表于 2020-8-9 20:15:22

Twilight6 发表于 2020-8-9 20:08
不是不能打印,如果不能打印肯定报错了,而你还是成功打印了,只是结果为 None

是因为 print 函数 ...

明白,谢谢了

freeman007 发表于 2020-8-9 20:20:57

qiuyouzhi 发表于 2020-8-9 20:04
提高小数精度,你可以百度下decimal.Decimal的用法

十分感谢,但抱歉最佳给七楼了因为七楼回复的比较早

freeman007 发表于 2020-8-9 20:27:44

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

明白了,discounts没有被定义,而return才能使discounts被结果定义,是吗
页: [1]
查看完整版本: 请问各位大神这个什么问题