用户:
嗯哼君 渠源查看:0 回复:6 评论:0 创建时间:2018-10-12T19:35:51
嗯哼,我就系你们滴嗯哼君啦~~~
没错,嗯哼君这是偶尔心血喵,来给你们上一节课
之前的准备工作我就不再说了,直接进入教程!
PS:本教程使用python3.6以及win7系统,编辑器为codemao编辑器
相信你已经编写过print('hello world')过了吧,今天我们来让他复杂点(本教程里的代码颜色均为codemao编辑器语法突出颜色)
小知识点:正常的python都是不带颜色的,但是个别的编辑器会将不同类型的单词(我们姑且先这么叫他)分为不同的颜色让萌新更好认,这种现象叫做“语法突出"
我们来这样改编一下hello_word.py:
ho_wd = "hello world"①
print(ho_wd)②
print(“hello world”)
你会发现,运行之后他会输出两遍“hello world”。我们为了进行对比所以一个用了变量一个用了字符串的形式。
这是为什么呢?让我们来一行一行分析一下。
在①处,我们设定了变量“ho_wd”,设定的方法是变量名加一个等号再加设定内容,若字符串的话还要加引号
(PS:别忘了等号两边的空格偶,虽说不加也不会报错,但是可以让你的代码一目了然)
现在变量ho_wd已经与字符串“hello world”关联起来了,所以变量ho_wd就代表了这句话
现在我们在print中使用这个ho_wd变量,也就是使用了这句话,所以他会输出“hello world”
注意啦,若使用变量的话print里面就不用加引号了,若加上系统会认为你要他打印“ho_wd”这句话
若你还是不好理解,这样字可能可以让你理解一下:
一个变量就是一个箱子,这个箱子无限大,但只能放一个东西(目前来说)。
我们把这个箱子命名为“ho_wd”,然后在里面放了一句话:“hello world”。
现在print就像是告诉你什么什么东西,我们现在要print告诉我们箱子里是啥——箱子里是“hello world”这句话,所以他会告诉我们这句话。
你可能认为这是闲着没事干,实则不然,理解变量的工作方式很重要——这关乎了你以后所有的程序。
接着,我们可以更改变量的值——也就是把箱子里的东西换一下
现在我们新建一个文件:message.py,输入以下代码,你猜猜会发生什么:
message = "hello"①
print(message)
message = 32②
print(message)
python给我们输出了两行话:“hello”和“32”。让我们继续用箱子来理解一下:
我们先创建了箱子“message”,并在它里面放了“hello”这句话(见①)
因此在下一行的询问中print就会回答我们当前箱子“message”里的东西——“hello”
接着,在②处我们把箱子“message”里的东西拿了出来,换成了一个数字32.
注意:有关数据类型我会在下一节将,但是现在你就要注意了:数字两边不用加引号,但是空格也是要有的。若你的程序里有数字且运行时报错,可以检查一下数字的语法突出是否为紫色,若是绿色系统则理解错误,若是其他的颜色你就要仔细看看了。这部分我会自爱下节仔细讲一下,下节也是在你的Python生涯中所将要遇到的第一个难点。
然后我们再询问print,他检查一下箱子“message”里的东西,发现已经不是“hello”而是数字32了,于是将新的东西报告给你
更改你也可以这么理解:将他初始化并重新定义,所以和定义的方法一样。
若你出了错误,不要惊慌,这里有几个解决方法适用于你。
一:拼写错误
这是我们第一次接触错误报告,我们来一行一行分析一下:
第一行是最后一个输出,表明输出是在print(hello)之后断开的。这个是正常运行,跟错误报告无关。
第二行的Traceback是惯用语,表示代码有错误,也是错误报告的开头语
第三行是出错文件的位置,由于codemao编辑器自带临时文件,所以这行前面会因人而异。后面的“line”是出错代码的位置,这在有好几十行的大文件中很实用。这里指出了第7行,我们就可以直接跳到第7行。
第四行就是出错代码了:他指出了这行代码出了错误
第五行就是出错原因了,也是最重要的一行。这里指出的是nameerror,简单翻译就是“名称错误”,这是常见的一种错误。
nameerror的错误原因有两个:拼写错误或未定义。这里是拼写错误,我们把“message”写成“mesage”了。
未定义就是说你要用这个变量(箱子里的东西)了,但是却未对该变量做任何调整(没往箱子里放东西),所以会报错
两者的区别是一个事先定义了,但是用的时候出了错。另一个就是事先没定义,这个未定义错误在函数中很常见。
但是python会将两者混为一谈:因为在他看来“mesage”也是一个独立的变量,他没有被定义。python从来不关注字符串的拼写错误、语法错误或者联系,所以在python里“message”与“mesage”没有任何关系,也不会将其联想。
于是我们把“mesage”改成“message”
其余的错误我们会在下节指出,比如TypeError等,其实是因为版面不够了······
后记:
pep-8是一部古老的条约,内容主要介绍了人们在编写python程序的时候应遵守哪些约定。
https://www.python.org/dev/peps/pep/pep-0008
内容有很多,但是我们现在用到的基本都是命名的条约。你可以不遵守,但是别人将不能理解你的意图。
注意:变量名不能和Python内置函数重名,否则将引发错误。函数现在你们可以理解为一个单词,比如“print”、“and”等,等学到函数的时候你就理解了(注意,这个函数不是你苦思冥想也解不开的二次函数那个函数)。
变量的命名还应该注意不能用数字和_打头,最好也不要用l或O(可能会被误解为1、0)
除此之外,我们建议用_来代替空格,以及变量名应具备代表性、简洁性。还有要用小写(这个我会在类那里解释)。
例如:ho_wd比hello_world好(简洁)
l_E比l_e好(禁止大写)
i_handsome比i_h好(应具有代表性)
and_1_3比1_and_3好(禁止数字打头)
and,由于切换中英语很麻烦,所以建议变量的命名都用英语。
不要因此而迷糊了,命名的这种语感是慢慢培养的,所以不必头大,以后你慢慢地就会无师自通了
下一节预告:2、其他的数据形式——字符串、整数与浮点数
2333
我来捣下乱(滑稽)
字符串是一串字符,比如"你好",'nihao',‘123’,只要加了双引号或者单引号,都叫字符串
print(3)和print('3')是不一样的,虽然输出的数据相同,但数据类型不同
怎么个不同呢?你可以试试print(3+3)和print('3'+'3')
答案显而易见,第一个是6,第二个则是33,字符串类型的加法只是单纯的数据叠加,和整数与浮点数类型是不一样的
想让其他类型转换成字符串类型可以用这个函数:str()
如str(1)
这时,就可以让原来的整数类型的1变成字符串类型的'1'了
(懒得打字了)
点赞1
评论