C/C++ 2 Python

C/C++ & Python

C/C++是一种编译语言,需要编译器(Complier),而Python是一种解释语言,需要解释器(Interpreter),因此这两者注定是有所不同的,但是Python语言是从C语言衍生而来的,而且现在也已经出现了C语言的解释器,所以,差别更小了。因此,从C/C++转型到Python是相当简单的,下面就通过几个简单的例子来演示一下Python的用法。

Tips

本文使用的Python版本是3.x,版本2.x请再自行查看Python2与Python3的区别
本文默认读者拥有C或者C++的语言基础
笔者的C/C++代码有很多垃圾风格,请您海涵
如果本文中有什么错误或者不当之处,恳请您一定指出

示例

hello world

这是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怎么用?更多知识请打开搜索引擎,输入你的问题,然后找到答案吧。

猜你喜欢

转载自www.cnblogs.com/BadCodeBuilder/p/11252900.html