一针见血放在前面,题主的问题在于:
没搞懂字符串和变量的区别
这是浅层的,更深层的其实是
题主看不出一行代码的结构
何以见得呢?
题主前后两天连续提了两个同类的问题,都是变量输出、字符串输出相关的问题。
前一天的问题是字符串拼接,但疑问点在于变量和字符串的输出。现在的这个问题,是列表操作相关的问题,但题主的疑问点仍然在于变量和字符串的输出。
虽然第一天提问的时候有大牛积极解答了,不过既然第二天又来问了相似的问题,说明题主还是没懂这两个东西的本质区别。
按理来说变量和字符串的明显区别就在于一个引号呀,为什么题主仍然不太理解呢。
为了更好地了解题主究竟疑惑在哪,所以我翻了翻题主回复的评论。
对于第一道题,题主的疑惑在于:“不明白引号这些的含义”、“为什么第二段的代码只用了一组引号?”、“变量也分好几种,引号也有不同的?”
看到这几句话,我才能肯定题主问题在于没能理解代码的结构。
脱新很久的程序猿们或许早已忘记了自己初学编程时的感受,但咱!极客战记背后的老师们!因为接触了太多学编程的萌新,也接触了很多学编程的萌新小孩子,所以非常清楚萌新们初次接触编程时的感觉。
full_name = first_name +" "+last_name
这一行看似无比简单结构清晰的代码,在大佬们的眼里是介样的:
但是在小朋友或是纯萌新的眼里:
get不到这个点的老程序员们,请回想一下从没学过kotlin第一次看到kotlin代码,从没用过Vue框架第一次用Vue开发等情况时的感觉。
这就是不能理解代码结构的意思,因为对代码非常不熟悉,所以就会出现不知道什么部分有作用,什么部分没作用,什么部分有什么用等问题。
那问题就很好解决了嘛,帮题主好好熟悉熟悉ta不熟悉的知识就好了。
“不明白引号这些的含义”、“为什么第二段的代码只用了一组引号?”——字符串和拼接符
”变量也分好几种,引号也有不同的?“,以及本题里面的“不太懂print语句中一个加引号,一个不加?”——变量和引号
变量
简单一点来说,变量它就是个瓶子!
变量有好几种,字符变量字符串变量列表数字变量等等,但这些类型完全不用管,因为无论它是什么类型,它都是个变量,不会改变它是个瓶子的作用。
变量它就是个瓶子,用来装数据,你要用这个数据的时候,就拿起这个瓶子。
就像print(motorcycles),这就是直接调用变量拿起了瓶子去输出。
就像在厨房炒菜,当你要放盐的时候,你可以直接用手从一袋盐里抓一把撒下去
也可以儒雅随和地用小勺子从装盐的瓶子里装一点倒进锅里。
这个例子似乎不太能看出变量——哪用调哪简单方便的优点,评论区 @半盏浮生 提供了更好的例子 :
假设做一道“红烧卤肉”。
原始做法是:每次都放一颗八角,一片香叶,八颗胡椒,一段葱,半块姜——直接用字符串输出。
现在发现超市有一个“红烧卤肉”调料盒,这样每次做菜只需要放一个“红烧卤肉”调料盒就可以了,不需要在一步一步的放调料啦——这就是把数据装进变量里,每次输出简单地调用变量来输出,而不用再麻麻烦烦地找一颗八角,一片香叶,八颗胡椒,一段葱,半块姜来放了。
所以,什么别的概念都先不要记,只要记住这一点,变量最根本的一点——变量即瓶子,用数据的时候就抓起瓶子。
字符串,引号?
简单一点来说!字符串就是个用引号括起来的东西,只要有引号,那就是字符串!
再往里了说,字符串——字符连起的一个串,所以字符串是啥,它就是一串字母,一串字,是计算机可以直接输出的东西。
就像print(“motorcycles”),它就是直接输出了m,o,t,o,r,c,y,c,l,e,s这11个字母在一行里面,这么跟上面的变量一对比,题主应该明白了吧?
来看一看,老师写的这三行分别都是啥东西?
第一行,没有引号,就一串光溜溜的字母,不知道是啥,姑且当它是个变量。
第二行,有引号!听老师的,这就是个字符串!
第三行,还有引号!这也是个字符串。
那么就到了另一个问题了:
“引号也有不同的"
确实,第二行和第三行用的引号不同,一个是单引号,一个是双引号。
那它们究竟有什么惊天大区别呢?
答案是
根本没有。
无论它用的是啥引号,只要这行字被引号包着,那它就是个字符串,输出的时候就是乖乖巧巧的把m,o,t,o,r,c,y,c,l,e,s这11个字母输出出去。
“print语句中一个加引号,一个不加”会怎么样
好,讲完了变量和字符串还有引号,其实本题问题已经解决了,但要帮助萌新,就必须彻彻底底地把问题正面粉碎!一点点都不留,这样才能保证不会有新的问题产生。
”print语句中一个加引号,一个不加“会怎么样?
还记得刚刚说撒盐的事情吗。
如果有这么一道题,是要你在不同的地方输出10次这个数据,要完全正确,不能复制。
数据:asdauioxzcckl'1'2,31^&*@#HDsjkanlxczl;danskaouioczx
那么,你可以选择直接用字符串输出,也可以选择把字符串放进瓶子(变量)里输出。
那么直接用字符串输出的做法就是:
print("asdauioxzcckl'1'2,31^&*@#HDsjkanlxczl;danskaouioczx")
这么写,并且在不同的地方写10次这个又臭又长的东西,不能错还不能复制。
这么做的感受吧,就像在厨房里做一道用量要求严格的菜,每次撒盐都得用手掏一大把盐数清楚然后再洒下去,洒完以后,手上的感觉和心理的感觉简直棒极了。
那么用变量直接输出的方法就是:
motorcycles = "asdauioxzcckl'1'2,31^&*@#HDsjkanlxczl;danskaouioczx"
print(motorcycles)
print(motorcycles)
print(motorcycles)
这就是用小勺子精确控制用量撒盐的方法,这么写不是简单很多?
除了这两种撒盐法,在萌新里还有一种撒法颇为常见,大家一定要注意这一种撒法。
譬如还是那个变量,还是那个数据:
motorcycles = "asdauioxzcckl'1'2,31^&*@#HDsjkanlxczl;danskaouioczx"
但你的输出语句写的是
print("motorcycles")
……
认真看完老师上面写的全部内容,看到这,你应该就知道现在会发生什么了吧?
你想要的是"asdauioxzcckl'1'2,31^&*@#HDsjkanlxczl;danskaouioczx",但你这么写,最后输出的是"motorcycles"
这种行为就好比炒菜撒盐,把调味瓶上的标签撕下来撒下去一样……
所以千万不要犯这个错误哦,不然那也太可爱了。
那么回归该栏的题目,答案就是:一个加引号,就是在输出这一串字母,输出这个字符串,一个不加引号,就是在调用变量输出变量的内容。
“为什么第二段的代码只用了一组引号?”
你以为完了?
我太敬业了,哪怕这个问题只有4个关注103个浏览量,我也要把这个问题里隐藏的所有问题都解答出来,让题主彻底弄懂所有知识!
题主在另一个问题里评论留下了这个疑问
“为什么第二段的代码只用了一组引号?”
就是指,为什么 full_name = first_name+" "+last_name这里只用了一个引号。
那问题来了,这里如果要不只用一个引号,题主觉得还有哪里需要引号呢?
看完上面的内容,现在应该能理清这里的结构了吧。
full_name 是个变量,所以不需要引号
first_name 是个变量,内容是“Liu”,所以也不用引号。
+" "+ 这个看起来像卖萌表情的东西,其实是「拼接符 字符串 拼接符」
加号是用来连接两个字符串的,加号前,first_name是个变量,它装的是个字符串,加号后,也是个字符串,两个引号内包含的是一个空格,所以这个字符串的内容就是个空格,那么这一前一后,就是两个字符串了,所以要用加号连起来,而也只有这里有字符串,所以只有这里这个空格需要字符串。
那么剩下一个加号也是,把前面这个空格,和后面的last_name变量连起来。
那么这样就能输出“Liu jinzhu”这一行字了,看到Liu后面的空格了吗,这就是那个“卖萌表情”空格字符串的输出。
到这,题主的问题应该就全都解决了吧?
这个问题底下有几位无法理解题主,要劝退的大佬们,但像这样的问题,小萌新们真的是非常常见的,同样的问题我在知乎里搜一搜就能搜到好几个。
所以还是多一点宽容多一点善意吧。
不过题主的学习方法或许要想着去改变改进一下咯,这个确实是很简单的问题,搜一搜应该就能找到啦,问题尽量多靠自己解决,而不是靠直接询问他人。
题主两个问题里的代码,老师也是很熟悉的,出自《Python编程:从入门到实践》,算是比较优秀的入门教材了,但最好不要只看一本书。
有时候你疑惑的一个点,或许只是书的表达方式不好理解,这个时候,再去看看别的教程别的课程里的同一知识,比如菜鸟教程,廖雪峰的教程等,看看另一种说法是怎么描述的,或许就能轻松解决啦。极客战记网易官网-玩游戏学编程零基础Python入门-CodeCombat官方个人版codecombat.163
嚯嚯,当然我们极客战记也是非常优秀的编程教学网站,也是非常适合入门的,各位亲们不喜欢看书也可以试一试嗷。
如果看官您觉得我说的还不错,那能不能给我在下方点个赞点个喜欢呢?
球球您们辣,这个对我真的很重要!
这是一个想让你学编程开心点的“营销号"哦,如果想看一些编程类的干货,或者想听听编程学习相关的良心真话,那不妨给我点个关注吧~
更多推荐
python中数字加引号和不加引号的区别_高考完小白自学Python,不太懂print语句中一个加引号,一个不加?...
发布评论