一、输入输出

1.print()函数也可以接受多个字符串,用逗号“,”隔开 print(‘hello, world’,’jumps over’)
2.input()获取输入
3.print(“f[%d]=%d”%(i,f[i]))
4.格式化字符串 str.format()
“{} {} {}”.format()
eg:
# 通过列表索引设置参数
my_list = [‘网站’, ‘www.123.com’]
print(“网站名:{0[0]}, 地址 {0[1]}”.format(my_list)) # “0” 是必须的

print(“{:+.2f}”.format(3.1415)) 带符号保留小数点后两位
(具体使用:

二、运算符

算数运算符:%取余数 //整除 幂运算**

逻辑运算符:and or not

位运算: ^ 按位异或 ~按位取反

*成员运算符: in / not in (测试某个定值是否为序列中的成员)

三、数据类型

1.bin() 十进制转二进制 、hex()、 oct()
int(‘0x40’,16) 十六进制转十进制

原始字符串中包含单引号,可以使用双引号定义;
原始字符串中包含双引号,可以使用单引号定义;

(浮点数只采用十进制)

2. list 列表
classmates = [‘Michael’, ‘Bob’, ‘Tracy’]
(1)len()函数可以获得list元素的个数 (max() 返回最大值)
(2)list索引是从0开始,用中括号,如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素。
(3)可以把元素插入到指定的位置,比如索引号为1的位置:
classmates.insert(1, ‘Jack’)
(4)也可以往list中追加元素到末尾:
classmates.append(‘Adam’)
(5)要删除某一位置元素,用pop()方法
(6)classmates.extend() : 末尾追加另一个列表
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
list里面的元素的数据类型也可以不同

创建指定长度列表 eg: list = [0 for i in range(n)]
其他操作:清空、复制、反向等


3. tuple元组
一旦初始化就不能修改 用小括号
classmates = (‘Michael’, ‘Bob’, ‘Tracy’)
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
且tuple没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

注意:只有1个元素的tuple定义时必须加一个逗号, 如__t = (1,)
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:
(0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

字符串’xxx’也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串

4.字典
创建一个字典:xxx = dict()/ xxx ={ }
字典的每个键值 key=>value对 用冒号 : 分割,
每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
Eg: xxx = {‘one’ : …. , ‘two’ : … , ,} ‘one’,’two’就是键值
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

访问字典元素: dict[key] 或 dict.get(key)
添加新元素:dict[newkey] = value
key in dict
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
键必须不可变,所以可以用数字,字符串或元组充当,用列表就不行。

5.集合 (无序的不重复元素序列)
用{}或set()创建
thisset = set((‘hello’ , ‘world’))

6.索引和切片 (索引都是中括号)
切片[start : stop :step]
start : 包含该值 、 stop:不包含该值 、 step:步长值(为负时 从右往左取)
image.png image.png
布尔索引:用整数数组进行索引
补充:range(start, stop,step) 与切片类似 (不包含stop)
但是步长始终是从start到stop

四、条件结构/循环结构

if ……:
elif ……: 有三个逻辑运算符:and 、or 和 not
if 和else匹配、循环等语句块均靠缩进来表示
三元运算: c = a+b if a>b else a<b

names = [‘Michael’, ‘Bob’, ‘Tracy’]
for name in names:
print(name)

for x in range xxx 默认从0开始,小于xxx

五、函数与文件操作

函数:定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:
然后,在缩进块中编写函数体,函数的返回值用return语句返回。
传参数时,
关键字参数 标识
可变参数:定义的函数里面能够有任意数量的变量,也就是参数数量是可变的(了解)
( *data 传列表、元组、 data传字典)**

文件读写:(简洁写法)

  1. with open('file', 'r') as file:
  2. print(file.read()) //不需要调用close()
  3. with open('file name','w') as file:
  4. file.write("hello")

六、类与对象

(类名首字母大写,初始化函数两条下划线)

  1. class Student(object):
  2. def __init__(self,name,age):
  3. self.name = name
  4. self.age = age
  5. def print_func(self):
  6. print("name:",self.name,"age:",self.age)

init初始化函数 实例创建的时候执行
del在实例删除的时候执行

类的继承:class 新类名(旧类名)
可以继承多个类
子类可以访问父类的属性和方法
(如果子类有初始化函数,则不再调用父类初始化函数)
可使用super()显式调用父类的初始化函数:super().init()

私有属性实例和子类都不能访问
但是可以本地重名定义,所以避免重名很重要
如何定义私有属性:属性前加下划线

子类可以重写父类的方法 、 多态的意义(对子类具体的改写优化,不影响父类的概念框架)

Python命名规则:
image.png

区分:import numpy 和 from numpy import *
(后者不建议使用,如果下次引用和numpy里的函数一样的情况,就会出现命名冲突)