您的位置:首页 > 编程语言 > Python开发

编程学习第二天,初识Python

2016-03-05 17:45 513 查看
今天来到了学习的第二天。。其实是第三天,昨天偷懒了

那么就直接开始吧

习题1:第一个程序

这次的习题是很简单的print练习,也就是传说中的helloworld,说句题外话,大学时第一次学编程时我并没有觉得helloworld有多牛逼,可能我眼界太高了,野心太大了,也可能是过去自学过一点点basic,所以没有第一次编程的那种成就感吧。

那么就打开上一个习题创建的文本,打几句print吧

print "Hello World!"

print "Hello Again"

print "我喜欢输入这些"

print "这很有趣"

print "耶!输出了!"

print "我宁愿你不做"

print "我说过别碰这个!"

这里我把后面几句改成了中文。。是瞎翻译的

然后要把文本后缀改成.py,重点强调一下Python文件最好以.py作为后缀,后面我试一下.py后缀是不是强制的,还是说类似方法名开头不大写这样公认却非强制的守则。

那么用PowerShell Rename-Item命令改名(这步不是教程提到的)把后缀改成.py的文件。然后用python ex1.py运行。

到这里我报了个错误:

File ".\ex1.py", line 3

SyntaxError: Non-ASCII character '\xce' in file .\ex1.py on line 3, but no encoding declared; see http://python.org/dev/
peps/pep-0263/ for details

看来是第三行出错,检查了一下,正好是中文那行,然后我把带中文的行全删掉再运行,就输出了,分析可能python默认只支持ASCII码,对于中文编码并不能直接使用,随便搜了一下,有encoding:UTF-8的命令,再查了查,找到了python声明编码格式的方法:

1.第一行或者第二行声明

2.要符合正则表达式 "coding[:=]\s*([-\w.]+)"

另外声明前面要有#号

于是给程序头加上#coding:UTF-8再运行,这次没有报错,中文也正常输出了。

另外把coding写成encoding或者xxxxcoding,和coding输出是一样的,原来还以为encoding是相同命令,后来发现只要包含coding即可,不管怎么添油加醋都能正确识别,应该是正则表达式的功劳。

再把书往下翻翻发现作者也提到了UTF-8的问题。。囧

然后习题1就结束了。

下面是加分习题:

1. 让你的脚本再多打印一行。

2. 让你的脚本只打印一行。

3. 在一行的起始位置放一个 ‘#’ (octothorpe) 符号。它的作用是什么?自己研究一下。

1、2我并不太明白,1我再多打一行print就行了嘛,2我把代码删到只剩一行print不就行了吗?3的话实践了一下,在两行前面加了#号,这两行就不会运行了,目测#号是注释,但是编码申明也是#开头,所以#并非只是注释用,或者说#在1、2行里是申明,在后面就是注释作用了,但是我已经看到习题2是关于#号的内容了,所以留给下面研究吧。

另外还有个note:

井号有很多的英文名字,例如:’octothorpe(八角帽)’,’pound(英镑符)’, ‘hash(电话的#键)’, ‘mesh(网)’ 等。

习题总结:本习题只是简单的print练习,基本是所有编程教科书教你写的第一行代码,应该说是基本中的基本把。

另外作者在这里强调了一下对于错误代码的处理,当编译器报错时,阅读并理解好报错内容,查看报错行,运用搜索网站搜索错误代码,都是自行处理错误的简单快速的办法。

习题2:注释和井号

本次的习题也是简单的井号注释练习,能写的东西不多。

我这里用中文输入了代码:

#coding:UTF-8

#一个注释,以便以后你能阅读你的程序

#井号后面的所有东西都会被python忽略

print "我可以这么写代码." #后面的注释就会被忽略掉不会被输出

#你还能用注释去使一段代码失效

#print "这不会运行"

print "这会运行"

初学的时候中文的代码内容可能会使记忆加深,但是后面还是用英文为妙。

在加分习题里,作者提到了从最后一行开始倒着逐个单词检查回去,作者的解释是:这样可以避免大脑跟着代码内容的意思走,可以让我们精确处理每个片段,从而更好地发现代码的错误,这是一个很好使的查错技巧。

这段应该属于作者个人心得的技巧我觉得不错,倒着查代码就可以避免大脑的惯性思维,对于查错确实有帮助。

问答里提到了前面所说的#号的事,关于#coding的问题,作者的解释是Python其实还是没有把这行当作代码处理,这种办法只是让字符格式被识别的一个取巧的方案,或者说是一个没有办法的办法。。。自己读这段并不是很明白,但是深究下去可能是没什么意义的,只要记得定义编码格式是#开头,同时位置(程序第一二行)、命令(coding[:=][编码])都有特别要求,而注释代码也是#开头,就没有别的要求,值得一提的是,如果你写的注释是“#这段代码是coding:UTF-8”,同时在一二行,也会把编码定义为UTF-8,还是正则的功劳吧。

另外关于一二行的事,我还试了这种:

#1

#2

#coding:UTF-8

这样是会报编码错的

#1

#2#coding:UTF-8

这样是不会报错的,看来就是直观的一二行,而非每个#号自己开始一行,也并不是需要特别注意的事吧,只是吹毛求疵的试试而已。

习题3

本节习题主要介绍各种运算符,主要有:

+ - * / % > < >= <=

前五个:加 减 乘 除 求余 最后输出的是数字

后四个:大于 小于 大于等于 小于等于 最后输出的是True和False

需要注意的是运算的优先级,作者提到PEMDAS的简称,也就是:“括号、指数、乘、除、加、减”——Parentheses Exponents Multiplication Division Addition Subtraction ——这也是 Python 里的运算优先级。

优先级跟我们数学是一样的,加减同级,乘除求余(%)同级,后者级别高于前者,同级情况下从左到右顺序计算。

然后作者提了一下浮点数,因为没有引入浮点数,所以除法的结果显得更小了(7/4=1),实际上是小数部分被忽略了,其实很简单,比如7/4,改成7.0/4或者7.0/4.0或者7/4.0就可以输出小数部位了(结果为1.75)。

另外在PowerShell里直接进入python,可以用运算符进行运算,就把Python变成计算器了。

习题4变量

本节就是简单的变量练习,值得注意的是在本节中并没有申明变量类型,变量直接这样用:cars = 100,不清楚是不是像JS里的var类型,Python里的变量不需要申明类型,直接赋值就行,貌似下一节习题讲继续讲变量,再学习吧。

另外书里提到=的作用是为东西取名,并不太明白,=的作用不就是赋值嘛?

还提到了_下划线,我还记得下划线不要放在自己变量的第一个字符,查了一下主要原因是学C的时候标准库的函数基本都是下划线开头,为了避免重名会出现的问题,我们就坚决不要把_放在自己变量名称开头吧!

在问题回答部分还提到了浮点数,也就是cars = 100和cars = 100.0,前面就是整数型,后面就是浮点型,感觉来说Python变量类型还是根据变量赋值来决定的吧,这个再观察看看。

今天基本就到这吧,大部分时间都放在写博文上了,其实今天的四个习题是比入门还入门的东西,包含了标准输出、注释方法、运算符号、变量的初步运用,这是所有编程的基础,没有输出就没有交互,注释则方便我们几百年以后还可以明白代码到底是干什么的,失去了运算符号,我们就再也不能用高级语言控制cpu运算任何东西了,而变量,则是万丈高楼的地基,在这之中也有很多小细节,基本都很容易的就理解了,所以今天学的也就这么点东西~

还是花了大量时间在码字,再往后太基础的东西我也只是总结一下吧,学过好几次的东西就不再特别强调了,弄的好像自己真的啥都不懂一样,既浪费时间失去效率,也没有收获太多东西,但是需要注意的还是千万不可小视这些基础,虽然会了,但是也不能说连复习的机会都浪费掉,简单的回顾一下也是好的!

那么今天到这就结束了吧。。

啊另外,开头提到了后缀的事,我把ex1.py copy成ex1,也就是去掉了后缀,试了一下python ex1,正常输出,改后缀为.txt,python ex1.txt,一样正常输出,得出结论,.py后缀只是为了表明本文件是标准的py脚本文件,并非必须要做,但个人觉得最好去做。就这样,今天结束啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: