新人请教Python中方法这个用法返回结果不同的原因?

D.Silver 2019-05-17 10:09:54
cars=['bmw','audi','toyota','subaru'] cars.sort() print(cars) #['audi', 'bmw', 'subaru', 'toyota'] cars=['bmw','audi','toyota','subaru'] print(cars.sort()) #None name='Ada lovelace' print(name.upper()) #ADA LOVELACE name='Ada lovelace' name.upper() print(name) #Ada lovelace 以上的写法不知道有没有错,有问题请一定要指出来啊,感谢
...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一笑程序猴 2019-05-17
  • 打赏
  • 举报
回复
还有个sorted函数,实现方式跟upper类似
print(sorted(cars))#有返回值
print(cars)#顺序保持不变
一笑程序猴 2019-05-17
  • 打赏
  • 举报
回复
写法并没有错,这是由于每个函数的实现方式不同而已,有的函数有返回值,有的函数没有返回值,所以打印的的结果也会不同
1. 列表的sort函数,实际上是没有返回值的,它会直接对列表进行排序操作,改变的是列表本身,所以你执行完sort函数在打印cars时顺序已经发生了变化
2. 如上所述,sort函数是没有返回值的,它是直接对列表进行操作的,所以当你打印cars.sort()时,实际上打印的是sort()的返回值,而sort并没有返回值所以打印结果为None
3、4. 同理upper函数的实现是,将传入的值转换成大写,并将转换后的新值作为函数的返回值进行返回,这里是有返回值的,而并不会改变本身传入的值,所以在打印upper时实际上打印的是upper函数转换后的返回值,而name本身并没有变,所以打印结果不同
D.Silver 2019-05-17
  • 打赏
  • 举报
回复
引用 6 楼 一笑程序猴的回复:
[quote=引用 5 楼 D.Silver 的回复:]
[quote=引用 2 楼 一笑程序猴的回复:]还有个sorted函数,实现方式跟upper类似
print(sorted(cars))#有返回值
print(cars)#顺序保持不变

现在再看《Python编程:从入门到实践》,还有哪些书可以做些补充阅读的?[/quote]

python 疯狂讲义也还不错的[/quote] 好的,已经放入备忘录,谢谢~
一笑程序猴 2019-05-17
  • 打赏
  • 举报
回复
引用 5 楼 D.Silver 的回复:
[quote=引用 2 楼 一笑程序猴的回复:]还有个sorted函数,实现方式跟upper类似
print(sorted(cars))#有返回值
print(cars)#顺序保持不变

现在再看《Python编程:从入门到实践》,还有哪些书可以做些补充阅读的?[/quote]

python 疯狂讲义也还不错的
D.Silver 2019-05-17
  • 打赏
  • 举报
回复
引用 2 楼 一笑程序猴的回复:
还有个sorted函数,实现方式跟upper类似
print(sorted(cars))#有返回值
print(cars)#顺序保持不变
现在再看《Python编程:从入门到实践》,还有哪些书可以做些补充阅读的?
D.Silver 2019-05-17
  • 打赏
  • 举报
回复
引用 2 楼 一笑程序猴的回复:
还有个sorted函数,实现方式跟upper类似
print(sorted(cars))#有返回值
print(cars)#顺序保持不变
非常感谢!我就是在看到sorted()函数与sort()的区别后,才想起这个有点区别,总之很感谢!
D.Silver 2019-05-17
  • 打赏
  • 举报
回复
非常感谢!我就是在看到sorted()函数与sort()的区别后,才想起这个有点区别,总之很感谢!

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧