从C艹到Python


为了防止像当初学爪哇一样,几种语言在脑中疯狂打架,我觉得从语言差异出发整理一篇笔记,对我这种没有深入学习python的想法、脑中还全是c的语法的人是有用的。

本笔记主要整理自《写给程序员的Python教程》,并根据我的语言习惯摘要、重述。

第一章 入门

注释

注意两种语言注释符号的不同。

//c注释
#python注释

include到import

#include "..."
#include "..."
//c风格
import ...
#python风格

/(/rm Python/)使用import导入标准库模块。这些标准库通常被称为 battery included(内置电池)。标准库被构建为 module(模块)。

  • 调用math包中的开方函数计算/(/sqrt {81}/)并打印的程序示例:
import math

if __name__ == '__main__':  #即c中的main()
    print(math.sqrt(16))    #即c中的printf()

  • 调用math包中的阶乘函数计算/(5!/)并打印的程序示例:
import math

if __name__ == '__main__':
    print(math.factorial(5))

然而,函数名过长往往使代码冗长。为此,/(/rm Python/)提供了from...import...as...语法,如以下这个冗长的句子

import math

if __name__ == '__main__':
    print(math.factorial(5)*math.factorial(6)*math.factorial(7))

from...import...可以写成:

from math import factorial
#将特定函数导入当前命名空间
if __name__ == '__main__':
    print(factorial(5)*factorial(6)*factorial(7))

from...import...as...可以写成:

from math import factorial as fac
#将特定函数导入当前命名空间,并重命名(一般是缩短名字)
if __name__ == '__main__':
    print(fac(5)*fac(6)*fac(7))

标量数据类型

基本是互通的,如intfloatbool

不过/(/rm Python/)提供了一些方便的转换,如字符串转换成整数:int("123")可以将字符串”123“转换为整数123。

另外,在/(/rm Python/)中,某些字符串传递给负点构造函数,可以创建特殊浮点值:float("nan"):创建NAN,float("inf"):创建正无穷,float("-inf"):创建负无穷。

/(/rm Python/)有一个名为None的特殊空值,用于表示缺少,可以理解为更泛用的/(/rm NULL/)

条件控制

直接上代码,比较容易理解。

  • if
//C
if(true){
    printf("一定执行");
}
if(false){
    printf("不会执行");
}
#Python
if True:
    print("一定执行")
if False:
    print("不会执行")
  • if…else
//C
int a=1;
if(a==1){
	printf("Yes!");
}
else{
    printf("No!");
}
#Python
a=1
if a==1:
	print("Yes!")
else:
	print("No!")
  • 特别地,/(/rm Python/)在多条件if时,使用if…elif…else
#Python
a=100
if a<10:
    print("a<10")
elif a<50:
    print("10<=a<50")
else:
    print("a>=50")
#输出:a>=50

循环控制

/(/rm Python/) 与 /(C/) 的whilebreak的使用基本一致。只需要注意用合理的缩进代替大括号即可。

第二章 字符串与集合类型

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/275504.html

(0)
上一篇 2022年7月19日
下一篇 2022年7月20日

相关推荐

发表回复

登录后才能评论