Python学习——Python 与 C 语法对比1(输出、注释、运算符、数字型)

如果你已经略懂C语言的语法,那么学习Python对你来说将是一件轻松愉快的事情。

虽然C语言以其接近硬件的特性和高效的执行速度被广泛应用于系统编程,但Python凭借其简洁明了的语法和丰富的库支持,在多个领域展现了极高的开发效率。

接下来,将通过与C语言的对比方式,快速了解Python的基本语法,顺利过渡到Python编程。

1,输出

PythonC说明
print("Hello, World!")`printf("Hello, World!\n");`Python使用内置的print()函数进行输出,而C语言使用printf()函数。两者都可以输出字符串,但C语言需要在字符串末尾添加换行符`\n`来换行。
print(f"The value of x is {x}")`printf("The value of x is %d\n", x);`Python支持格式化字符串(f-string),可以直接在字符串中插入变量。而在C语言中,需要使用%d作为占位符,并在后面的参数中提供相应的值。
print("The value of pi is approximately %.2f" % 3.14159)`printf("The value of pi is approximately %.2f\n", 3.14159);`Python可以使用%操作符来格式化浮点数,指定小数位数。而在C语言中,同样使用%.2f作为占位符,并在后面的参数中提供相应的浮点数值。
print("The sum of {} and {} is {}".format(a, b, a+b))`printf("The sum of %d and %d is %d\n", a, b, a+b);`Python可以使用str.format()方法来格式化字符串,将变量插入到占位符的位置。而在C语言中,同样使用%d作为占位符,并在后面的参数中提供相应的整数值。

需要注意的是,Python中的格式化字符串和C语言中的printf()函数都是用于输出格式化文本的工具,它们的具体语法和使用方式有所不同。在实际编程中,可以根据具体需求选择适合的语言特性来进行输出格式化。

2,注释

PythonC说明
# This is a single line comment in Python/* This is a multi-line comment in C */Python使用井号(#)来表示单行注释,而C使用斜杠加星号(/)和星号加斜杠(/)来表示多行注释。
"""This is a docstring in Python"""/* This is a multi-line comment that can be used as a docstring in C */Python中的三引号字符串可以用作多行注释或文档字符串(docstring),而在C中,多行注释通常用于文档目的,而不是作为代码的一部分。
# This is a comment with a hashtag in Python// This is a single line comment in CC语言也支持单行注释,使用双斜杠(//)。

需要注意的是,Python的注释不会对代码执行产生影响,而C语言的注释也不会影响代码的执行,但它们会被编译器忽略。此外,Python的注释还可以用于文档生成工具(如Sphinx)来生成API文档,而C语言的注释则主要用于程序员之间的交流和代码维护。

3,算数运算符

PythonC说明
++加法运算符
--减法运算符
**乘法运算符
//除法运算符(浮点数除法)
///整除运算符(整数除法)
%%取余运算符
**pow()幂运算符(Python使用双星号,C使用pow函数)

需要注意的是,Python中的除法运算符/默认执行浮点数除法,而C语言中的除法运算符/默认执行整数除法。如果要执行浮点数除法,需要在C语言中使用强制类型转换或者使用浮点数常量。

此外,Python中的幂运算符**可以直接用于两个数字之间的幂运算,而在C语言中,需要使用pow()函数来进行幂运算。

以下是一些示例代码来说明这些运算符的使用:

python代码

# Python代码示例
a = 10
b = 3
print(a + b)   # 输出: 13
print(a - b)   # 输出: 7
print(a * b)   # 输出: 30
print(a / b)   # 输出: 3.3333333333333335
print(a // b)  # 输出: 3
print(a % b)   # 输出: 1
print(a ** b)  # 输出: 1000

c代码

# C代码示例
#include <stdio.h>
#include <math.h>

int main() {
    int a = 10;
    int b = 3;
    printf("%d\n", a + b);   // 输出: 13
    printf("%d\n", a - b);   // 输出: 7
    printf("%d\n", a * b);   // 输出: 30
    printf("%f\n", (float)a / b);   // 输出: 3.333333
    printf("%d\n", a / b);   // 输出: 3
    printf("%d\n", a % b);   // 输出: 1
    printf("%d\n", pow(a, b));  // 输出: 1000
    return 0;
}

4,整形

PythonC说明
a = 5int a = 5;声明整型变量并赋值
b = -3int b = -3;声明整型变量并赋值为负数
c = 1000000000000long long c = 1000000000000LL;声明长整型变量并赋值
d = 3.14double d = 3.14;声明浮点型变量并赋值
e = "hello"char *e = "hello";声明字符指针变量并赋值字符串
f = Trueint f = 1;声明整型变量并赋值布尔值True(1)
g = Falseint g = 0;声明整型变量并赋值布尔值False(0)
h = [1, 2, 3]int h[] = {1, 2, 3};声明整型数组并初始化
i = {'a': 1, 'b': 2}struct i { int a; int b; };声明结构体并定义成员变量
j = (1, 2)struct j { int x; int y; };声明结构体并定义成员变量,然后创建结构体实例并初始化
k = Nonevoid *k = NULL;声明指针变量并赋值为NULL

需要注意的是,Python中的整数类型可以自动处理大整数,而C语言需要使用特定的数据类型(如long long)来存储大整数。此外,Python中的布尔值可以直接用True和False表示,而在C语言中,布尔值需要用整型表示,通常用1表示True,0表示False。

5,浮点数

PythonC说明
3.143.14fPython中的浮点数默认为双精度浮点数(double),而C语言中的浮点数可以是单精度浮点数(float)或双精度浮点数(double)。在C中,需要在数字后面加上后缀f来表示单精度浮点数。
1e-61e-6fPython中的科学计数法可以直接用于浮点数,而在C中,需要使用后缀f来表示单精度浮点数的科学计数法。
3.14j3.14f + 0.0fiPython中的复数使用虚部后缀j表示,而C语言中的复数需要分别指定实部和虚部。例如,3.14f + 0.0fi表示一个复数,其中实部为3.14,虚部为0.0。

需要注意的是,Python中的浮点数运算可能会受到浮点数精度的限制,而C语言中的浮点数运算通常具有更高的精度。此外,Python中的浮点数类型是动态类型的,可以根据需要进行自动转换,而C语言中的浮点数类型是静态类型的,需要在声明时指定具体的类型。

6,布尔型

PythonC说明
TruetruePython中的布尔值是首字母大写的,而C语言中的布尔值是小写的。
FalsefalsePython中的布尔值是首字母大写的,而C语言中的布尔值是小写的。
andornot&&, `
if x:if (x):Python中可以直接使用变量作为条件表达式,而C语言需要将变量放在括号内。
if not x:if (!x):Python中使用not来取反布尔值,而C语言使用!来取反。

需要注意的是,Python中的布尔类型实际上是整数类型的子类,其中True等价于整数1,False等价于整数0。而在C语言中,布尔类型是基本数据类型之一,具有独立的类型标识符。此外,Python中的布尔运算符优先级较低,可能需要使用括号来明确运算顺序。

注意:

C语言从C99标准开始引入了布尔型(_Bool)

在C99标准之前,C语言中并没有专门的布尔类型,而是使用整型int来表示真假,非零值表示真,零值表示假。为了解决这一问题,C99标准引入了_Bool类型,专门用于表示布尔值。_Bool变量只能赋值为0或1,非零的值都会被存储为1。并且,C99还提供了一个头文件stdbool.h,其中定义了bool、true和false,使得程序员能够像在C++中一样方便地操作布尔类型。

7,复数型

PythonC说明
3 + 4j(3 + 4i)Python中的复数使用实部和虚部表示,虚部用j表示。而C语言中的复数使用实部和虚部表示,虚部用i表示。
z = 3 + 4jdouble complex z = (3.0 + 4.0*I);Python中可以直接使用复数类型进行赋值操作。而在C语言中,需要使用特定的复数类型(如double complex)进行声明和赋值。
z.realcreal(z)Python中可以通过.real属性获取复数的实部。而在C语言中,需要使用函数creal()来获取复数的实部。
z.imagcimag(z)Python中可以通过.imag属性获取复数的虚部。而在C语言中,需要使用函数cimag()来获取复数的虚部。
abs(z)cabs(z)Python中可以使用内置函数abs()来计算复数的模长。而在C语言中,需要使用函数cabs()来计算复数的模长。
conjugate(z)conj(z)Python中可以使用内置函数conjugate()来计算复数的共轭。而在C语言中,需要使用函数conj()来计算复数的共轭。
z1 == z2creal(z1) == creal(z2) && cimag(z1) == cimag(z2)Python中可以直接比较两个复数是否相等。而在C语言中,需要分别比较实部和虚部是否相等。

需要注意的是,Python中的复数类型是内置的,可以直接使用。

而在C语言中,需要引入头文件<complex.h>才能使用复数类型。

此外,C语言中的复数运算通常比Python中的更复杂,因为C语言没有内置的复数运算符,需要使用库函数来进行计算。

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值