本文参考廖雪峰的博客: https://www.liaoxuefeng.com/
- 输入用 input(),输出用print();
name = input('please input your name') print('hello',name); please enter your name: Michael hello, Michael
- #开头的为注释;
- 缩进一般为4个空格;
- 多行输出用 '''...''' 的格式,如
>>> print('''line1 ... line2 ... line3''') line1 line2 line3
- 布尔值可以用 and、or、not(单目)运算;空值用 None;转义字符等与C语言中一样;
- Python中的变量为动态变量,即同一个变量可以反复赋值,而且可以是不同类型的变量,所以它是一门动态语言;而C语言中定义变量时必须指定变量类型,所以是一门静态语言;
Python: a = 123 # a是整数 print(a) a = 'ABC' # a变为字符串 print(a) C语言: int a = 123; // a是整数类型变量 a = "ABC"; // 错误:不能把字符串赋给整型变量
-
常量实际上是变量,也没有机制去保护它的值不变,所以通常全部用大写的变量名表示常量;如PI=3.1415926;
-
有三种除法:① / 其结果始终是浮点数,即使是两个可整除的整数,如:9/3=3.0; ② // 称为地板除,其结果始终是整数,即只取结果的整数部分,如:10//3=3; ③ % 为取余数,结果永远是整数,如:10%3=1;
-
对于单个字符的编码,Python提供了
ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
- 要计算str包含多少个字符,可以用len()函数;
>>> len('ABC') 3 >>> len('中文') 2
-
%s
表示用字符串替换,%d
表示用整数替换,%f 表示用浮点数替换,%x 表示用十六进制数替换;如果不知道数据类型,%s 永远起作用; - list是一种有序的集合,可以随时添加和删除其中的元素;用len()可以知道list元素的个数;下标从0开始;用下标-1,-2可以得到倒数第一个元素、倒数第二个元素;用 .append() 可以向末尾追加元素;用 .insert(1,‘jack’) 可以向指定位置添加元素; 用 .pop() 可删除末尾的元素;用 .pop(i)可删除指定位置的元素; list 内部的元素的数据类型可以不同;list 内部可以嵌套list,构成二维数组;
-
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] >>> len(classmates) 3 >>> classmates[0] 'Michael' >>> classmates[1] 'Bob' >>> classmates[2] 'Tracy' >>> classmates[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'] >>> classmates.pop() 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy'] >>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy'] >>> classmates[1] = 'Sarah' >>> classmates ['Michael', 'Sarah', 'Tracy'] >>> L = ['Apple', 123, True] >>> s = ['python', 'java', ['asp', 'php'], 'scheme'] >>> len(s) 4
- 另一种有序列表叫 元组 :tuple;和list类似,但一旦初始化就不能修改,即可读取但不可修改;
#一个可修改的tuple,内部的['A','B']为一个list,所以可修改 >>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])
- 区别:list 用 [ ] 表示; tuple 用 ( ) 表示;
- 条件判断:if else elif,具体见代码
if <条件判断1>: # 切记要有冒号 <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
-
str
不能直接和整数比较,必须先把str
转换成整数,Python提供了int()
函数来完成这件事情; - 循环,有两种:① for ... in;② while;具体见代码;
names = ['Michael', 'Bob', 'Tracy'] for name in names: #切记有冒号 print(name) sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: #切记有冒号 sum = sum + x print(sum) #range()函数,可以生成一个整数序列,再通过list()函数可以转换为list sum = 0 for x in range(101): sum = sum + x print(sum) sum = 0 n = 99 while n > 0: #切记有冒号 sum = sum + n n = n - 2 print(sum)
- break用于终止循环,continue用于终止一次循环,Ctrl+C 强制结束进程;
- dict,使用键-值(key-value)存储,用于高速查找,是一种用空间换时间的方法;
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95 >>> d['Jack'] = 90 #后面的值会把前面的值冲掉 >>> d['Jack'] 90 >>> d['Jack'] = 88 >>> d['Jack'] 88 # 通过in判断key是否存在 >>> 'Thomas' in d False #通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value >>> d.get('Thomas') >>> d.get('Thomas', -1) -1 #要删除一个key,用pop(key)方法,对应的value也会从dict中删除 >>> d.pop('Bob') 75 >>> d {'Michael': 95, 'Tracy': 85}
- set,无重复元素(重复元素在set中自动被过滤);
>>> s = set([1, 2, 3]) >>> s {1, 2, 3} #重复元素在set中自动被过滤 >>> s = set([1, 1, 2, 2, 3, 3]) >>> s {1, 2, 3} #通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果 >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4} #通过remove(key)方法可以删除元素 >>> s.remove(4) >>> s {1, 2, 3} #可进行交并操作 >>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
- 不变对象如字符串str,无论怎样更改是无法改变它的值的;而可变对象如list,是可以通过操作更改其内部的值的;
- 可以把函数名赋给一个变量,相当于起了一个“别名”;
>>> a = abs # 变量a指向abs函数 >>> a(-1) # 所以也可以通过a调用abs函数 1
- 定义函数:使用def语句,依次为:函数名、括号、参数、冒号,然后在缩进块里面编写函数体,用return返回;pass语句什么也不做,可以用作占位符;
- 函数可以添加默认参数,其作用是,无论是简单调用还是复杂调用,函数只需要定义一个;
def enroll(name, gender, age=6, city='Beijing'): print('name:', name) print('gender:', gender) print('age:', age) print('city:', city) >>> enroll('Sarah', 'F') name: Sarah gender: F age: 6 city: Beijing
- 函数可以添加可变参数,即外界向内传入的参数的个数是不确定的,可以传入任意个参数(这些参数被调用时,自动组装为一个tuple),方法是在参数前加一个 * 号;
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum >>> calc(1, 2) 5 >>> calc() 0
- 函数可以添加关键字参数,在参数前加一个 ** 号(**kw接收的是一个dict);