目录
C/C++是一种编译语言,需要编译器(Complier),而Python是一种解释语言,需要解释器(Interpreter),因此这两者注定是有所不同的,但是Python语言是从C语言衍生而来的,而且现在也已经出现了C语言的解释器,所以,差别更小了。因此,从C/C++转型到Python是相当简单的,下面就通过几个简单的例子来演示一下Python的用法。
Tips
本文使用的Python版本是3.x,版本2.x请再自行查看Python2与Python3的区别
本文默认读者拥有C或者C++的语言基础
笔者的C/C++代码有很多垃圾风格,请您海涵
如果本文中有什么错误或者不当之处,恳请您一定指出
这是C语言的hello world程序
#include "stdio.h"
int main(int argc, char* argv[])
{
printf("hello, world");
return 0;
}
这是C++的hello world程序
#include <iostream>
using namespace std;
int main()
{
cout << "hello, world" << endl;
return 0;
}
相比与C/C++,Python语言的hello world程序就非常的简短
# -*- coding:utf-8 -*-
print("hello, world")
是不是很简单呢?
Python的变量与C/C++的变量有很大的区别,C/C++作为编译性语言,所有的数据都是实现分配好内存(或者从heap中malloc/new出来的),所以会有声明变量的过程,一旦声明,类变量类型就被确定了,当然强制类型转换还有auto类型变量那我就不管了。相比之下,Python的变量就灵活很多,只要赋值即可,可能上一秒还是一个int类型,下一秒就变成了string类型。当然对于Python的内存管理我现在还是很迷,和C/C++差别很大,因此感兴趣的你们可以参考更多的文章。
下面就是一些关于变量的代码(以下的代码可以在同一个文件中执行)
# -*- coding:utf-8 -*-
# a是一个int
a = 10
# a是一个int,Python自带大整数
a = 2**10000000
# a是一个list
a = [1,2,0,3,4,5]
由上例可见,Python中的变量是可以随意变换类型的,当然Python中也有强制类型变换,因为有时候我们也会懒得垃圾分类(~ ̄▽ ̄)~
C/C++函数一般情况下有三要素:返回值类型,函数名,参数列表,而Python对于函数的定义只有函数名和参数列表,聪明的你一定会提出疑问:为什么没有返回值类型了呢?让我来演示一下神奇的操作
# -*- coding: utf-8 -*-
def myFunc(arg):
if arg == 0:
return 100
elif arg == 1:
return False
elif arg == 2:
return "hello, world"
else:
return [0]*10
number = int(input("Input your number: "))
print(myFunc(number))
可能C语言用户对于对象的概念不是很清楚,但是C++用户一定很了解什么是对象。class和struct的实体都是对象,class是struct和函数的整合,struct可以使用a.x获得对象的成员变量,class也是,不过class也可以获得成员函数。就这么简答(好吧我觉得这里可能漏洞百出)
Python取消了struct,只有class,因此,我就只能写C++与Python的对比了。例子也很简单,就是一个Point类
#include <iostream>
#include <math>
class myPoint
{
private:
int x;
int y;
public:
myPoint() {x = 0; y = 0;}
myPoint(int x, int y) {this->x = x; this->y = y;}
~myPoint() {}
double Distance() {return sqrt(x*x+y*y);}
void Print() {cout << '(' << x << ", " << y << ')' << endl;}
};
int main()
{
myPoint a(3,4);
cout << a.Distance() << endl;
a.Print();
return 0;
}
下面是Python的实现
from math import sqrt
class myPoint:
def __init__(self, x = 0, y = 0):
self.x = x
self.y = y
# C++用户应该能猜得出,这里的self就是class函数中的&this,只是在这里被显示出来了
def Distance(self):
return sqrt(self.x*self.x+self.y*self.y)
def Print(self):
print('(', self.x, ', ', self.y, ')')
p = myPoint(3,4)
print(p.Distance())
p.Print()
类似与C/C++的include,Python添加package是通过import
类似于C/C++的//(单行)和/**/(多行),Python单行注释为#,多行注释事实上是没有,但是因为有多行字符串,所以可以用’‘’text‘’‘使得多行文字变成字符串从而得到注释的效果
不同于C/C++的大括号,Python使用缩进来完成代码块的区分。此外,非常重要的就是请把tab转换成空格,几个空格不管但一定请转换成空格,这很重要。一般情况是2个或者4个。为什么这样,你可以百度一下。
for,if,while的语法?神奇的符号?package怎么用?更多知识请打开搜索引擎,输入你的问题,然后找到答案吧。
原文:https://www.cnblogs.com/BadCodeBuilder/p/11252900.html