从Python看C语言(基础语法篇)

Elizabeth ·
更新时间:2024-09-20
· 676 次阅读

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

Part  1.输入与输出

输入任意类型的数据,python用的是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; }

运行结果:

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

 


作者:JOHN-SS



基础语法 C语言 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号