Python学习一

前言

这次是我自己在天池学习python 时候,对比了下与C的区别,方便自己理解。
python学习链接:天池Python训练营前三天
C的结合自己学习的体会进行比较,参考资料为C语言教科书。

变量、运算符、数据类型

1.注释

Python
在 Python 中,# 表示注释,作用于整行。

# 这是一个注释
print("Hello world")
# Hello world

‘’’ ‘’’ 或者 “”" “”" 表示区间注释,在三引号之间的所有内容被注释

'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello china") 
# Hello china

"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号 
这是多行注释,用三个双引号
"""
print("hello china") 
# hello china

C语言

在C语言中,// 表示注释,注释整行。

//这是一行注释
printf("hello china");

/**/或者 #if 0与#endif来进行区间注释,一般使用/* */ 多,#if 0与#endif一般用来作为代码宏定义开光。

/*
这是多行注释;
这是多行注释;
*/
printf("hello china");

#if 0
printf("这句已经被注释");
#endif

#if 1
printf("这句会执行");

注释属于代码里面特别重要的存在,一般代码里面写注释为代码说明,提升代码的可读性。

2.算术运算符

Python

操作符名称实例
+1 + 1
-2 - 1
*3 * 4
/3 / 4
//整除(向下取整)3 // 4
%取余6 % 4
**2**3
print(1 + 1)  # 2
print(2 - 1)  # 1
print(3 * 4)  # 12
print(3 / 4)  # 0.75
print(3 // 4)  # 0
print(6 % 4)  # 2
print(2 ** 3)  # 8

C语言

操作符名称实例
+1 + 1
-2 - 1
*3 * 4
/3 / 4
%整除(向下取整)3 % 4
++自加 1i=4;i++;
自减 1j=4;j–;
printf("%d",1+1); // 2
printf("%d",2-1); // 1
printf("%d",3*4); // 1
printf("%f",3.0/4.0); // 0.75
printf("%d",6%4); // 2
int i=4;
i++;
printf("%d",i); // 5
int j=4;
j--;
printf("%d",j); // 3

这里出现了区别,C语言中基础算术运算符并没有幂运算符,求幂得使用pow函数进行求幂运算。python则不需要,还有的就是python并没有++与–操作,由于python基本没有底层操作,对于++与–也就没有,详细可以看关于++与–的说明:你真的理解了C语言++和–运算符么?还有++与–运算符的位置对程序的作用也有区别:C语言++i 与i++ 详解
额外关于整除,C语言不需要额外运算符,只要输出为整型结果即为整除。默认向下取整。

3.逻辑运算符

Python

操作符名称实例
and(3 > 2) and (3 < 5)
or(1 > 3) or (9 < 2)
notnot (2 > 1)
print((3 > 2) and (3 < 5))  # True
print((1 > 3) or (9 < 2))  # False
print(not (2 > 1))  # False

C语言

操作符名称实例
&&(3 > 2) && (3 < 5)
II(1 > 3) II (9 < 2)
!!(2 > 1)
printf("%d",(3>2)&&(3<5));  //1
printf("%d",(1>3)||(9<2));  //0
printf("%d", !(2>1));  //0

4.位运算符

为运算符运算规则

aba & ba I ba ^ b~ a
000001
010111
100110
111100

Python

操作符名称实例
~按位取反~4
&按位与4 & 5
I按位或4 I 5
^按位异或4 ^ 5
a<<xa左移x位4 << 2
a>>xa右移x位4 >> 2

有关二进制的运算,参见“位运算”部分的讲解。

print(bin(4))  # 0b100
print(bin(5))  # 0b101
print(bin(~4), ~4)  # -0b101 -5
print(bin(4 & 5), 4 & 5)  # 0b100 4
print(bin(4 | 5), 4 | 5)  # 0b101 5
print(bin(4 ^ 5), 4 ^ 5)  # 0b1 1
print(bin(4 << 2), 4 << 2)  # 0b10000 16
print(bin(4 >> 2), 4 >> 2)  # 0b1 1

C语言

操作符名称实例
~按位取反~4
&按位与4 & 5
I按位或4 I 5
^按位异或4 ^ 5
a<<xa左移x位4 << 2
a>>xa右移x位4 >> 2
printf("%#x\n", ~4); //	0xfffffffb   -5
printf("%#x\n", (4&5)); //  0x4		 4
printf("%#x\n", 4|5); //  0x5		 5
printf("%#x\n", 4^5); //  0x1		 1
printf("%#x\n", (4>>2)); // 0x1	 	 1
printf("%#x\n", (4<<2)); // 0x10	 16

位操作符python与C语言无明显区别,使用起来效果一样。

5.其他运算符

Python

操作符名称实例
三元运算符
in存在‘A’ in [‘A’, ‘B’, ‘C’]
not in不存在‘h’ not in [‘A’, ‘B’, ‘C’]
is“hello” is “hello”
not is不是“hello” is not “hello”
#三元运算符
x, y = 4, 5
small = x if x < y else y
print(small)  # 4
#############################################
letters = ['A', 'B', 'C']
if 'A' in letters:
    print('A' + ' exists')
if 'h' not in letters:
    print('h' + ' not exists')
# A exists
# h not exists

#比较的两个变量均指向不可变类型。
a = "hello"
b = "hello"
print(a is b, a == b)  # True True
print(a is not b, a != b)  # False False

#比较的两个变量均指向可变类型。
a = ["hello"]
b = ["hello"]
print(a is b, a == b)  # False True
print(a is not b, a != b)  # True False

C语言

操作符名称实例
? :条件运算符(三元运算符)~4
,逗号运算符4 & 5
* 和 &指针运算符4 I 5
//三元运算符
max = (a>b) ? a: b
//逗号运算符
x=(a-3,b+3);
/*
取地址运算符:&
     &a 是变量a的地址
指针运算符(或称“间接运算符”):*
     *p代表指针变量p指向的对象
*/
    int a = 666, *p;
    p = &a;   //使指针变量p 指向 变量a
      
    printf("%d\n",&a);   //输出变量a的 地址 
    printf("%d\n",p);   //输出指针变量p指向的 变量a的地址 
    printf("%d\n",*p);   //输出指针变量p指向的 变量a的值 

6.运算符优先级

Python

操作符名称
**指数(最高优先级)
按位翻转,一元加号和减号
* / % //乘,除,取模和取整除)
+ -加法减法
>> <<右移,左移运算符
&位‘AND’
^位运算符
<=<>>=比较运算符
<>==!=等于运算符
=%=/=//=-=+==*=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符
print(-3 ** 2)  # -9
print(3 ** -2)  # 0.1111111111111111
print(1 << 3 + 2 & 7)  # 0
print(-3 * 2 + 5 / -2 - 4)  # -12.5
print(3 < 4 and 4 < 5)  # True

C语言

优先级运算符含义结合方向对象个数
1( )圆括号自左至右
1[ ]下标运算符自左至右
1->指向结构体成员运算符自左至右
1.结构体成员运算符自左至右
2!逻辑非运算符自右至左1(单目运算符)
2~按位取反运算符自右至左1(单目运算符)
2++自增运算符自右至左1(单目运算符)
2- -自减运算符自右至左1(单目运算符)
2-负号运算符自右至左1(单目运算符)
2(类型)类型转换运算符自右至左1(单目运算符)
2*指针运算符自右至左1(单目运算符)
2&取地址运算符自右至左1(单目运算符)
2sizeof长度运算符自右至左1(单目运算符)
3*乘法运算符自左至右2(双目运算符)
3/除法运算符自左至右2(双目运算符)
3%求余运算符自左至右2(双目运算符)
4+加法运算符自左至右2(双目运算符)
4-减法运算符自左至右2(双目运算符)
5<<左移运算符自左至右2(双目运算符)
5>>右移运算符自左至右2(双目运算符)
6>大于运算符自左至右2(双目运算符)
6>=大于等于运算符自左至右2(双目运算符)
6<小于运算符自左至右2(双目运算符)
6<=小于等于运算符自左至右2(双目运算符)
7==等于运算符自左至右2(双目运算符)
7!=不等于运算符自左至右2(双目运算符)
8&按位异或运算符自左至右2(双目运算符)
9^按位与运算符自左至右2(双目运算符)
10I按位或运算符自左至右2(双目运算符)
11&&逻辑与运算符自左至右2(双目运算符)
12II逻辑或运算符自左至右2(双目运算符)
13? :条件运算符自右至左3(三目运算符)
14=赋值运算符自右至左2(双目运算符)
14+=加后赋值自右至左2(双目运算符)
14-=减后赋值自右至左2(双目运算符)
14*=乘后赋值自右至左2(双目运算符)
14/=除后赋值自右至左2(双目运算符)
14%=去取后赋值自右至左2(双目运算符)
14>>=左移后赋值自右至左2(双目运算符)
14<<=右移后赋值自右至左2(双目运算符)
14&=按位与后赋值自右至左2(双目运算符)
14^=按位异或后赋值自右至左2(双目运算符)
14I=按位或后赋值自右至左2(双目运算符)
15,逗号运算符自左至右

详细可查看C语言运算符(详解)

7.变量和赋值

Python

  • 在使用变量之前,需要对其先赋值。
  • 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
  • Python 变量名是大小写敏感的,foo != Foo。
teacher = "老马的程序人生"
print(teacher)  # 老马的程序人生
first = 2
second = 3
third = first + second
print(third)  # 5
myTeacher = "老马的程序人生"
yourTeacher = "小马的程序人生"
ourTeacher = myTeacher + ',' + yourTeacher
print(ourTeacher)  # 老马的程序人生,小马的程序人生

C语言
先发布,后面接着写

5.数据类型与转换

6.输出函数

位运算

条件语句

循环语句

异常处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值