2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言与python的语法区别_来自python的C语言(基本语法) 从 Python 看 基础 篇

c语言与python的语法区别_来自python的C语言(基本语法) 从 Python 看 基础 篇

时间:2019-12-17 06:57:57

相关推荐

c语言与python的语法区别_来自python的C语言(基本语法) 从 Python 看 基础 篇

一个学过C/C++的咸鱼,最近学起了Python,不得不说,知识还是老知识,语法也简单多了,但就是容易搞混。大致总结一下Python与C的区别,以后别张冠李戴啦,嘻嘻。

Part 1.输入与输出

输入任意类型的数据,python用的是input(),input()中无论输入什么,都会默认为字符串的形式,如果要输入数字,可以写为x=eval(input()),而对于确定类型的数字,比如要输入整型数字,可以写为x=int(input());而C语言对于整型、实型、字符(串)型数据,都可以用scanf。整型/实型scanf(“%d/f”,&x),要加引用符号“&”,而字符串不必加引用符号:scanf("%s",x)。对于(单一)字符型数据,用getchar()输入;对于字符串,除了scanf输入,还可以用gets()输入。

输出最常用的非print莫属啦(C语言为printf),但首先值得注意的是print自带换行功能,即print('xxx')等效于C语言中的printf("xxx\n"),当然,print中的单引号换成双引号也可以,但两种引号不能混搭(一边单引号,一边双引号)。Python中,不想换行怎么办?那就加上end=''关键字参数,即print('xxx',end='')等效于C语言中的printf("xxx")。对于具体的输出,与输入一样,C语言需要关键字%d、%s等等,而Python不必写这些形态符号,不同形态的输出也就更方便啦。C语言:printf("output:%d\n",x);Python:print('output:'+str(x));对于整型、实型数据的输出,如果伴随字符串,则要使用str()以字符形态输出,毕竟,字符型数据太傲娇,不愿与整型、实型数据为伍,后者不得不装扮成字符型数据呀。

Part 2.逻辑值

C++特有的bool型数据在Python当中会是怎样的呢?在绝大多数IDE中,C++的bool值是true和false,不能大写;而在Python中,True与False首字母要大写,其他逻辑含义不变,True仍代表1或非0整数,False仍为0。

在交互式环境中,“in”与“not in"语句可以判断某元素是否属于某一数组(列表),比如:列表spam=[1,2,3],我们判断3在不在里面,输入3 in spam,会返回结果:True;若是3 not in spam,则返回的判断结果为False,列表的具体内容我们会在之后讲解。

None值表示没有值,像print()这样的函数不会返回任何值,那么None就是它的返回值。

在Python中,and、or、not更加直白的表示了与、或、非,在C/C++中,它们分别是&&、||、!。如判断句:

Python版本:(2<3) and (4<5) or not (5==6)

C/C++版本:(2<3) && (4<5) || !(5==6)

其实,在基础语法中,C与Python最明显的区别还是——";"。Python的语句不用分号结尾!!!

Part 3.条件&循环语句

条件语句:

//C语言:

if(条件1){

语句内容;

}

else if(条件2){

语句内容;

}

else{

语句内容;

}

#Python语言:

if 条件1:

语句内容#要缩进

elif 条件2:

语句内容#要缩进

else:

语句内容#要缩进

while语句:

//C语言:

while(循环条件){

语句内容;

};

#Python语言:

while 循环条件:

语句内容#要缩进

for语句:

//C语言:

for(i=0;i<10;i=i+2){

语句内容;

}

#Python语言:

for i in range(0,10,2):

语句内容//要缩进

对于终止循环的continue与break,在两种语言中功能相同,不过Python中不必加上分号。

Part 4.导入与终止

导入某种功能(数学公式、排序函数等)时,C语言直接在头文件引用对应功能:#include,如果是导入自己写的头文件,

则为#include"xxx.h";Python则使用import关键字导入,如import random,也可以写为from random import*,后者在调用random模块时就不需要random.前缀了,不过为了使名称完整,最好使用前者的写法。

Python可以导入sys模块,使用sys.exit()函数终止程序运行;也可以按Ctrl+C强行终止程序。

C++中可以通过引入stdlib.h头文件,使用system("pause")实现程序的暂停;Python可以是使用input()语句实现程序的暂停。

Part 5.全局变量

在C/C++中,我们会用define或const语句进行全局定义,而在Python中,使用global语句定义。

Part 6.函数

C语言要写明函数类型int/char/void等,而形参也要标明类型。对于Python,函数定义为"def xxx():",形参也无需标明类型。

Part 7.代码实战

最后,举个栗子对上述内容做个总结吧:

Python版本:

def collatz(number):

if not(number%2):

number=number//2

return number

else:

number=number*3+1

return number

print("请输入一个整数:",end='')

num=int(input())#input默认输入字符型数据,输整数,则需用int()包含

while num !=1:

num=collatz(num)

print(num)

运行结果:

C版本:

#include

int collatz(int number){//要指明函数本身形态int以及形参的形态int

if(!(number%2)){

number/=2;//number为int型,得到结果均会转为整型,相当于整除

return number;

}

else{number=3*number+1;

return number;

}

}

int main(){

int num;

printf("请输入一个整数:");//python的print自带换行功能,如果不想换行,则要加上end=''关键字

scanf("%d",&num);//整型、实型数据用scanf输入,分别对应%d和%f/%lf

while(num!=1){

num=collatz(num);

printf("%d\n",num);//输出也要指明输出数据的形态

}

return 0;

}

运行结果:

感谢耐心观看,如有错误,欢迎指正。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。