C语言与Python3

最近准备学习了一下python语言,对比自己的主要语言C语言,我只讲不相同的地方,并且侧重讲python,因为c我用了十年,python还没怎么用过
在这里插入图片描述
本篇主要参考的python教程为菜鸟教程

变量

C语言,有严格的变量定义要求,可以先声明,再赋值,类型由创建时候选择;
Python,变量就是变量,没有类型,内容决定类型,赋值即创建。

注释

行数C语言Python
单行//#
多行/* */‘’'或者"""

运算

相同符号,不同功能

符号C语言Python
//注释取整除 - 向下取接近商的整数
**幂 - 返回x的y次幂
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False
is is是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)

相同功能,不同写法

功能C语言Python
&and
or
not

类似数组的东西

Python提供了四种类似数组的定义

  • 列表 :逗号分隔的不同的数据项使用方括号括起来
  • 元组 :与列表类似,不同之处在于元组的元素不能修改,用小括号括起来
  • 字典 :字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,键必须是唯一的,但值则不必;值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
  • 集合:无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

简单来说
列表 [a,b,c],比较接近数组
元组 (a,b,c),内容不可以变,类似const,常量
字典 {key1 : value1, key2 : value2, key3 : value3},key不能变,value可变
集合 {a,b,c}

条件判断

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

python格式

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

condition如果是单一表达式,就直接写,不需要括号之类,例如

if i > 2:

如果多个条件,可用and or等并列,并且多重组合的条件,要用小括号按照优先级括起来。
例如C语言的

if(((a==1)&&(b==1))||((a==0)&&(b==0)))

转化为python

if ((a ==1) and (b == 1)) or ((a ==0) and (b == 0)):

循环

while注意事项跟if类似

while 判断条件(condition):
    执行语句(statements)……

for循环,一般用来遍历列表用,和c语言中常用来控制循环次数不太一样

for <variable> in <sequence>:
    <statements>
else:
    <statements>

for和迭代器类似,都是遍历列表,区别可参考
来自php中文网的文章

函数

C语言函数就不介绍了,格式严格明确,入参出参,函数主体

python

def 函数名(参数列表):
    函数体

由于没有变量格式的概念,所以返回值,入参都不需要明确类型,有啥是啥

#!/usr/bin/python3
 
def max(a, b):
    if a > b:
        return a
    else:
        return b
 
a = 4
b = 5
print(max(a, b))

输入输出

C语言常用scanf和printf,这是C语言中上学用的重要考点,也是工作之后处理调试的重要函数,尤其是scanf的格式化输入,秀的很
在这里插入图片描述

Python用input和printf函数,这两个属于内置函数
主要介绍下这两个函数,
在这里插入图片描述
简答来说,就是带输出的输入,这个输出是前面的提示信息,例如,请输入xxxx的值:,这种在C语言中是要单独输出的。
input的返回值是字符串,可以分割之后存成列表。

在这里插入图片描述
有点像echo的感觉。

逗号

这个标点在C语言中,用到的并不多,一般就是定义变量的时候,可以同时定义多个,例如

int x,y,z=0;

Python中用法目前还了解不深,但是发现了样例中的一个独特用法
这是计算斐波那契数列的代码

#!/usr/bin/python3
 
# Fibonacci series: 斐波纳契数列
# 两个元素的总和确定了下一个数
a, b = 0, 1
while b < 10:
    print(b)
    a, b = b, a+b

其中这两行

a, b = 0, 1
a, b = b, a+b

比较独特的用法,第一行还简单一些,看着就是定义了两个变量,分别赋初值,但是看惯了c总感觉有些别扭,如果要定义10个,这么写,很容看错位吧……
在这里插入图片描述
第二行作用就是,a=b,b=a+b,并且还需要暂时保持a和b的值为原来的值,相当于

n=b
m=a+b
a=n
b=m

我也尝试过写成,像一个

(a, b) = (b, a+b)

倒是也运行没错,但是总感觉和元组扯上了关系,虽然看着清楚了,但是心里感觉,不纯粹了。
在这里插入图片描述

自定义函数使用

C语言中,自定义函数的使用,可以通过定义在其他c文件,然后利用include方式包含该文件,就可以直接引用该文件中的函数,和在本文件定义无二差别;

Python中引用自定义的模块,关键字就是import,引用之后,调用的时候,要带模块名称
例如

# 导入模块
import support

# 现在可以调用模块里包含的函数了
support.print_func("Runoob")

未完持续……

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖哥王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值