http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2019-3-22 10:44:00
博文:聊聊python与JavaScript(二)

  继续小结python基本语法。

 

  运算符和表达式小结:程序中的运算大致有算术运算、比较运算、逻辑运算、赋值运算。

 

  py算术运算包括加、减、乘、除、取整、求余和幂运算,比js多两个,js没有取整和幂,js要取整有两种方法,一种是调用parseInt()parseFloat()函数,还有一种是调用Math对象的方法,Math.floor()下取整和Math.ceil()上取整,至于四舍五入和取小数位的还有Math.round(),数字对象方法num.toFixed()等。至于幂运算,jsMath对象也提供了方法,这个用的不多,这里不列举了。Py只允许数字类型的数据进行算术运算,bool值参与算术时,true1false0

 

  算术运算符特殊用法,运算符+py中同样可以拼接字符串,但两个都必须是字符串,py的列表、元组也可以用+拼接,字典不能,估计与key不能重复有关。还有一个特殊用法,即*,字符串*int,即重复int次字符串!如”-”*50,画50-,列表和元组也可以使用*的这种用法。

 

  Js在算术运算和比较运算时有较大的不同,js允许在不同的运算中隐式转换数据类型,如算术运算时参与的变量自动转数字(+特别),比较运算时自动转数字(两个字符串比较时特别)。但py好像没看到有这种隐式转换的说法,除了上段这些运算,其他方式都不允许,否则立马报错,这可能与py的设计理念有关,py推崇:一件事只能有一种方法做!(也许没有选择是最好的选择)

 

  Py比较运算,即大于等于小于运算,比较运算符中,py没有全等于和不全等于,应该也是与其不能进行隐式转换有关。关于数字外的比较运算,所看的资料没有提及,但测试过,发现与js一样,即从第一个开始比较,有结果就返回结果,如“100000<5,返回true

 

  逻辑运算,与或非,没什么特殊,js的短路逻辑和三元运算,这种写法不知道py支不支持?下次找时间试试。

 

  最后看看赋值运算,即+=-+*=等,py特殊的是,列表做+=时,相当list.extend(list),不再是赋值运算。不过在js中,从没有想过对数组用赋值运算,在js中特意测试了下,如a=1,2,3】,如果进行a+=a,发现变量a会变成字符串“1,2,31,2,3”,好像没什么意思,不知道资料里面讲对列表进行这种运算的意义所在?

 

  奇怪的是看完py基本语法后,居然没有发现++--用法,还有短路逻辑和三目运算也没有提及,不知何故?

 

  接下来小结下程序流程控制的语法,这部分除格式写法不同,逻辑是一样的,对初学程序的人也许要化不少时间和精力,内行的,只需要注意下格式写法不同而已。

 

  程序流程三种,顺序结构、分支结构和循环结构,顺序没什么好说,程序本来就是从上到下顺序执行。

 

  分支语句:在py中也就是if语句了,格式:if 条件:分行缩进后写代码,注意这里条件不用小括号,条件后用“:”不用{},还有else:(与if同级别),还有elif 条件:,无论pyjs逻辑是一样的,jsif(条件){ 代码 }else if(条件){}else{}。在py资料没看到有switch case分支语句用法。

 

  循环语句:py中一般的循环用while语句,遍历元组、列表、字符串、字典用for in,没有jsdo whilefor(){ }语句。while格式:  while 条件:分行写循环体代码,for循环格式:for xx in obj:分行写循环体代码,完整的for还包括else:。感觉比js少了不少变化。

 

  分支和循环语句都可以嵌套使用,只要注意程序的逻辑实现。

 

  说完程序流程,再小结下程序结构(这里要提到的函数,后面小结),主要是关于变量的问题需要小补充。py可以用import方式导入其他py文件,作为模块,可以把其他py文件内定义的函数和全局变量拿过来直接使用!这里有个问题,变量和函数定义在什么位置才是有效的,变量名要怎样规范(上个小结忽略了这个重要问题)!

 

  不同于jsjs在程序运行时,会提前处理代码中声明的变量和用function声明的函数块,而py不会,所以import、全局变量和要使用的函数,都必须放前面,这点很重要,否则报错。

 

  变量名、文件名(如果要被import)要按py的要求来命名,命名与js一样,只能用字母数字和下划线,而且不能用数字开始。

 

  今天暂时小结到此。

 

  修改补充一点:py和js一样,代码区分大小写!!

 

mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.