关于python中greeting的用法一些疑问
greeting为什么可以取到Hello,'Hello'和‘greeting’来取字母e有什么区别,运行效率哪个更快,为什么?希望大佬解答,谢谢。 看不懂你的问题,greeting是什么 疾风怪盗 发表于 2020-10-16 17:30
看不懂你的问题,greeting是什么
抱歉,是我没有描述清楚。应该是greeting = 'Hello',用greeting 和'Hello'来取字母e有什么区别,哪个运行效率更快,为什么?能用代码展示解释下吗?
点滴天明如梦 发表于 2020-10-16 18:47
抱歉,是我没有描述清楚。应该是greeting = 'Hello',用greeting 和'Hello'来取字母e有什么区别,哪 ...
这个有什么好解释的?变量,就是值可以变,你用'Hello',那还不如直接写'e'来的简单了
就这个,还什么效率。。。。。又不是大程序 运行效率没质的区别
只是某些巧妙精简的写法会让除了自己之外的人读不懂而已{:10_289:} kogawananari 发表于 2020-10-16 19:05
运行效率没质的区别
只是某些巧妙精简的写法会让除了自己之外的人读不懂而已
应该是有的,我同学提示我从内存上分析,但是我不太明白。 我查询了相关资料以后发现是我同学误答了我的问题,其实应当是"Hello"的取值更高效。
从内存上考虑用greeting去获取要先经过栈再到堆才能取到,而"Hello"直接就堆取得。
代码证明效率如下:
import time
start1 = time.time()
greeting = 'Hello'
fori in range(10000):
print(greeting)
end1 = time.time()
start2 = time.time()
fori in range(10000):
print('Hello')
end2 = time.time()
print('greeting程序的运行时间为:%.30f秒'%(end1-start1))
print('Hello程序的运行时间为:%.30f秒'%(end2-start2))
感谢各位鱼油回复{:10_281:} 疾风怪盗 发表于 2020-10-16 18:49
这个有什么好解释的?变量,就是值可以变,你用'Hello',那还不如直接写'e'来的简单了
就这个,还 ...
感谢鱼油回复 kogawananari 发表于 2020-10-16 19:05
运行效率没质的区别
只是某些巧妙精简的写法会让除了自己之外的人读不懂而已
感谢鱼油回复 搞不明白'hello'这样有什么用处?
再说你测试耗时的时候就不该用print函数,这个对耗时的影响非常大。 点滴天明如梦 发表于 2020-10-19 17:16
感谢鱼油回复
greeting程序的运行时间为:0.045987367630004882812500000000秒
Hello程序的运行时间为:0.049001216888427734375000000000秒
你这个能证明什么。。。。。。。。。。。。。。。。{:10_284:} 是你循环次数太少了加大,试试 疾风怪盗 发表于 2020-10-19 17:20
greeting程序的运行时间为:0.045987367630004882812500000000秒
Hello程序的运行时间为:0.04900121688 ...
是你循环次数太少了加大,试试 hrp 发表于 2020-10-19 17:19
搞不明白'hello'这样有什么用处?
再说你测试耗时的时候就不该用print函数,这个对耗时的影响非常大。
这个是一个思考题题目所以才使用“Hello”【1】,
print我是没想到用其他更好的,这个受教了,你有什么更好的推荐吗?{:10_254:} 本帖最后由 hrp 于 2020-10-19 18:04 编辑
点滴天明如梦 发表于 2020-10-19 17:27
这个是一个思考题题目所以才使用“Hello”【1】,
print我是没想到用其他更好的,这个受教了,你有什么 ...
不用打印,也不用赋值,取值即丢弃。print向控制台输出耗时占比很大,而且又不稳定,耗时是波动的,测试耗时尽量避免这些。
如果不考虑实用性,直接取值确实比从变量取值要快。
import time
start1 = time.perf_counter()
greeting = 'Hello'
fori in range(100000):
greeting
end1 = time.perf_counter()
start2 = time.perf_counter()
fori in range(100000):
'Hello'
end2 = time.perf_counter()
print('greeting程序的运行时间为:%.6f秒'%(end1-start1))
print('Hello程序的运行时间为:%.6f秒'%(end2-start2))
页:
[1]