学习python技能树有感

本文讲述了作者在学习Python技能树时遇到的一个问题,即如何将字符串转换为变量。通过探索,作者发现了eval函数的作用,它可以将字符串当作表达式来执行。文章强调了基础知识的重要性,特别是理解字符串和变量的区别,并提醒读者不应忽视基础学习,而过于依赖框架。
摘要由CSDN通过智能技术生成

python技能树

现在csdn有了学习的功能,这个功能非常的好。我比较对python感兴趣,于是学习了python的技能树

首先遇到的第一道题就给我造成了很大的困难,题目要求找出Hello, Wolrd的哪个选项是错误的,这四个选项很难啊,都差不多,完全看不出什么地方有问题

比如说"".join([])这个形式,平时我很少见过,也没有使用过,这个对我来说,不熟悉,我甚至要专门到python的解释器里运行一下,才能看出,这个是对的

发现问题

最后,我发现,原来,错误的内容是

if __name__ == "__main":
    str1 = "Hello,"
    str2 = "World!"
    print("str1" + "str2")

这个为什么错误了呢,因为

str1和str2都是变量,可是在print()的时候,str1和str2却写成了字符串

很明显,字符串不能代表变量,因此,这个是不对的

我为什么没有发现呢,还是主要由于不够细心和仔细。如果多看看就能发现问题所在了

改进问题

当然,仅仅是学会了这一个题目是不够的,

我们要学习更多的思考,才能够彻底的理解这个题目

那么,字符串能不能被当成变量呢?如果我只有字符串,应该如何才能变成变量呢?

这个问题使我陷入了困惑之中。是啊,如果别人只给了我一个字符串,我如何才能够获得对应的变量呢?

我思考了良久,没有什么结果

查阅资料

通过查阅资料,我发现,在python中,有一个函数叫做eval,这个函数似乎能够起到作用,

这个是python中eval的描述

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

eval(expression[, globals[, locals]])
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象

通过反复阅读以后,我明白了,这个eval函数可以把一个字符串变成一个变量

再次改进

# 这是原本的代码
if __name__ == "__main":
    str1 = "Hello,"
    str2 = "World!"
    print("str1" + "str2")


# 这是改进后的代码
if __name__ == "__main":
    str1 = "Hello,"
    str2 = "World!"
    print(eval("str1") + eval("str2"))

神奇的事情发生了,仅仅是进行了一个eval函数的修改以后,

程序运行的结果居然完全不一样了

这里的字符串不再是一个字符串了,而是变成了一个变量

这个太让人震惊了,以前我从来都没想过字符串也可以当成变量运行

更多思考

python中的eval函数还可以像这样使用

x = 7
eval( '3 * x' )
21

eval('pow(2,2)')
4
eval('2 + 2')
4

n=81
eval("n + 4")
85

 或者是也可以像这样使用

x = 8
eval( '3 * x' )
24

eval('pow(3,3)')
9

eval('3 + 3')
6

n=96
eval("n + 4")
100

可以看出,如果对于python中的内容有所掌握了以后

这个eval函数可以想怎么使用,就怎么使用,得心应手,非常的适宜

由此我明白了,一定要多学习多总结

总结

今天,我只在python的技能树上学习到了一道题,但是这不要紧,虽然一道题不多,但是如果能够坚持每天都能学习一道题的话,那么一年就能学习365道题,10年就能学习3650道题,100年就能学习到36500道题

俗话说,优秀的人不是比你强很多,只是因为他更加刻苦努力的学习了。况且,虽然今天我只学到了最简单的一道python技能树的题,只是一个hello world,但是仍然让我受益匪浅,我学会了字符串和变量之间的区别,以及eval的使用,这是我此前很多年都没有掌握的问题,主要原因在于,我忽视掉了,不够细心

就像我们平日里,总是在想着学一些不可靠的框架,什么spring,什么bootrap,尤其是java中的各种各样的框架,这有用吗?虽然这些java框架,只要简单的学习和使用,就能够完成很厉害的功能,就能够一下子做出很厉害的事情,但是不要忘了,基础才是最重要的,根本是不能够丢弃的

学了java的框架,这些框架有过时的时候,有淘汰的时候,但是关于程序的基础知识,是不会淘汰的,他真的可以使用10年,20年,甚至100年,比如说,10年后,可能根本就不可能再有人使用什么spring了,但是就算是100年以后,字符串和变量之间的区别也是非常明显,不可改变的

因此,一定要重视基础,学习基础。我觉得csdn的技能树非常的好。他让我受益匪浅,学到了平时忽略的知识,如果每一个人都能够学习学习技能树,那么他们的程序水平,一定会有非常大的提高

那么,csdn的技能树在哪里可以找到呢?很简单,只要在首页点击学习就行了,或者直接进入技能树的页面,csdn技能树,快来和我一起学习吧!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值