从C过渡到Python! - 适合有一定编程基础的同学

1 Python 标准数据类型

Python中所有的变量都是对象

python一切皆对象,这与以往的语言区别较大,由于所有的变量都是对象,
所有的赋值操作也都是指针赋值,所以必须区分可变和不可变类型。

数据类型一律使用小写

a = 3
b = a
print(id(a))
print(id(b))
'''
地址相同
140704520279776
140704520279776
'''

可变和不可变

  1. 可变类型:本身可以被修改,修改前后是同一个对象
    List
    Set
    Dictionary
  2. 不可变类型:本身不允许被修改,而是让变量指向新的对象
    Number
    String
    Tuple

Number

包括int、float、bool、complex(复数)
检验方式

type(1) == int

isinstance(1, int)

类型转换

int()、float()、complex()

需要注意的运算符

  1. 赋值
    多个变量同时赋值
a,b,c = 1,2,3
a = b = 3
  1. 除法
5/2 # 2.5
5//2 # 2,运算结果向下取整
  1. 混合运算时,Python将整型转为浮点数,

  2. bool 可以参与运算

甚至,bool可以不看做一种类型
True == 1
False == 0

string

单引号和双引号

Python没有字符类型,字符串使用单引号和双引号都可以,但是要注意单引号和双引号必须“交替嵌套”

字符串不可变

str[0] = 'a' 这样的操作是不合法的,要更新字符串,请进行字符串拼接

不转义 r

# 反斜杠不转义r的用法
print(r'this is \n') # this is \n

不换行输出的方法

print默认换行输出

print('hello', end='')

运算符

* 重复输出
in / not in 成员运算符

格式化(非首选)

注意字符串后面的百分号 %

age = 16
name = "Tim"
newstr = "age is %d, name is %s" % (age, name) #多个变量用括号括起来

f-string 格式化 (推荐)

使用:
字符串前加f,字符串中{}内可填入变量名或表达式

p1 = {
    'name': 'Tim',
    'age': 13
}
print(f'Name is {p1["name"]}, age is {p1["age"]}')
# print(f'Name is {p1['name']}, age is {p1['age']}') syntax error 注意引号

三引号(多行字符串)

三引号'''或"""可以包含多行字符串,其中可以使用换行符和Tab制表符
当字符串是一串SQL代码时,这会非常有用。

sequence 序列

序列就是 list 或 tuple

Python中的序列有两种:list 和 tuple
简单介绍这个概念,是因为下面有些内建函数的参数是序列。

list 列表

追加元素

+[]
表尾附加元素,并返回新的列表

list.append()
原地追加元素,一次仅能追加一个对象元素

list.extend()
将传入序列的元素追加到表尾

以下是两种list拷贝方法:

a = [1,2,3]
b = a[:]
b = a + []

切片(适用于字符串和序列)

即在切片操作中传入第三个参数

  1. 用于间隔索引
  2. 用于逆向读取,即当其为负数时,表示此时逆向读取
a = ['I','L','Y']
print(a[-1::-1]) # 等价于 a.reverse()

对支持切片的对象均适用,比如字符串

流程控制

与C、Java、Js等语言类似,只简述一些区别

  1. 没有大括号 {}
    注意冒号和缩进
  2. if-elif-else
    也即 else if -> elif
  3. while-else
    处理不满足循环条件时的情况

for循环

Python中的for循环是针对序列的,
语法为: for element_name in sequence: ... else:

else

for循环的else处理序列为空的情况。

range()

range()可以配合for循环遍历数字序列
range(n): 产生0~n-1的range序列
range(n,m): 产生n~m-1的序列
用法:

a = ['C','C#','C++','Python']
for i in range(len(a)):
    print(i, a[i])
'''
0 C
1 C#
2 C++
3 Python
'''

运算符

只给出一些与其他语言不同的运算符

逻辑运算符

and : &&
or : ||
not : !

成员运算符

用于字符串及序列
A in B
A not in B

身份运算符

用于判断两个对象是否引用同一个存储单元
A is B
等同于 id(A) == id(B)
A is not B
id(A) != id(B)

posted @ 2021-01-23 17:09  紫苏薄荷  阅读(137)  评论(0编辑  收藏  举报

> To be continued