python学习提纲


Python 学习提纲

1. 关于注释

用#创建注释

2. 数据类型

  1. 字符串用单引号或双引号
  2. 字符
  3. 整型数据
  4. 浮点数据

3. 常量和变量

增加与减少,x += 1或者 x -= 1

变量名命名规则有四个要求:

  • 不能有空格,可能和连接下划线
  • 只能使用数字、字母、下划线
  • 不能以数字开头,尽量不用下划线,因为下划线开头的变量有特殊的用途
  • 不能使用python的关键字。这里可以查关键字

4.语法错误与异常

python有两种错误,一是语法错误,二如果不是语法错误的错误称为异常。

当碰到语法错误时,先找到出问题的那行代码,然后仔细查找并找到解决办法。如果没有头绪,可以上网查。

5. 算术操作符

指数运算:**

取模运算: %

整除运算://

除法:/

乘法:*

加法: +

减法: -

操作符两边的值称为操作数,两个操作数和一个操作符共同构成一个表达式

运算顺序PEMDAS 。括号parentheses、指数exponents、乘法multiplication、除法division、加法addition、减法substraction

6. 比较操作符

< > >= <= == !=

7. 逻辑操作符

and、or、not

8. 语句

语句可以有简单语句复合语句。复合句由一个或多个从句构成,从句包括两行或多行代码:代码头 (header)及其随后的配套代码(suite)。代码头指从句中包括关键字 的那行代码,之后是一个冒号:,然后是一行或多行带缩进的代码。

  • 条件语句。

    if somethign == "something":
    	print("something")
    else:
    	print("something")
    	
    	
    if something == "something"	:
    	print("something")
    elif something == "something":
    	print("something")
    elif something == "something":
    	print("something")
    else:
    	print("something")
    	
    

    语句之间是可以有空行的,不会影响代码的执行,但有时候可以提高代码的可读性。

9. 函数

定义函数:

def [函数名]([逗号分隔开的参数])
def function1(p1,p2,p3):
    print("somethign")
    return something

内置函数:(builtin function)

复用函数:

函数的必选及可选参数(optional parameter):

def function1(p1,p2=something):
    return something

10. 作用域

全局变量(blobal variable) 全局作用域(global scope) 和 局部变量 局部作用域(local scope)

11. 异常处理

python中的每一个异常都是一个对象,查看所有内置异常,如果你认为代码可能会报错,可以用try和except来捕获

a = input("please input a number")
b = input("please input another number")
a = int(a)
b = int(b)
try:
    print(a/b)
except ZeroDivisionError:
    print("b can not be zero")    
try:
a = input("please input a number")
b = input("please input another number")
a = int(a) #如果输入的a不是数字而是字符串,如"hangbu",int(a)会出错。所以把整个语句都放到了tyr中
b = int(b)
print(a/b)
except (ZeroDivisionError,ValueError):
    print("invalid input")    

不要在except语句中使用在try中定义的变量,因为可能在你定义这个变量之前,异常就发生了。

try:
    a = 10/0
    b = "我还没有被定义"
except ZeroDivisionError:
    print(b)
#这个print(b)执行不了,因为在b变量定义前ZeroDivisionError异常就已经发生了,还没来得及执行b的定义语句。

12. 文档字符串(docstring)

文档字符串用于注释函数的功能。注释每个参数应该使用哪一种数据类型。通常放在函数的顶部。

def function1(x,y):
    """
    本函数的功能是什么什么什么东西
    :parameter x:int.
    :parameter y:int.
    :return: int , 值为x和y之和
    """
    return x+y

我们在编码时,尽可能都要加上文档字符串,有助于开发者快速编程,也供其它开发者以后阅读。

13. 有需要才使用变量

后面的程序中确需要用到的数据,才有必要将其保存至变量。不要仅仅为了打印数据值就将其保存到变量中。

14. 容器

”愚者困惑,智者提问“

学习三个容器:列表元组字典

学习三个容器之前,了解一个概念,即对象的方法。万物皆对象。

列表:

第一种方法使用list()创建。

fruit = list()

第二种方法,将希望放到列表中的所有对象填入到方括号中,用逗号分开,列表中元素可以是任何数据类型。

fruit = ["apple","orange","pear"]

列表中元素是有序的,可以使用append方法向列表中添加一个新元素,添加的元素在列表的末尾。

fruit = ["apple","pear","orange"]
fruit.append("banana")
fruit.append("Peach")

可以用Pop方法移去列表中最后一个元素。

colors = ["black","red","yellow"]
colors1 = colors.pop()

可以使用+号来合并两个列表

color1 = ["red"]
color2 = ["black"]
color3 = color1 + color2

用in检查某个元素是不是在列表中,not in检查是不是不在列表中

colors = ["red","yellow","black"]
"white" not in colors  #结果为True
"red" in colors #结果为True

使用len可获得列表的大小(元素的个数)

len(colors)

注意 : 字符串、列表、元组都是可迭代的 (iterable)。如果一个对象中的每一个元素可以使用循环访问的话,那么这个对象就是可迭代的,这样的对象称为可迭代对象,可迭代对象中每个元素都有一个索引(index),即表示元素在可迭代对象中的位置的数字。第一个元素的索引值为0,而不是1。

可以使用 【列表名】【【索引】】获取一个元素。(用英文的方括号,会显示为链接,所以此处用中文的方括号,是不对的)

可以使用[列表名][[索引]]获取一个元素。(加一个\转义符就可以了,自己瞎摸的)

fruit = ["apple","peach","orange"]
fruit[0]
fruit[1]

列表是可变的(mutable),如果一个容器是可变的,那么可以向容器中增、删、修改对象。

colors = ["red","green","yellow"]
colors[1]="black"  #修改第二个元素值

元组:(tuple)

元组是不可变的,这一点与列表是不同的。用园括号表示元组,元素用逗号分开。有两种方式可以创建元组。

tuple1 = tuple()
tuple2 = ()
tuple3 = ("hellow",23,True)

注意:如果元组中只有一个元素,后面也需要加上逗号的。不然计算机认不出来是不是元组。

("self_taughte",)  # 这是一个元组
(9)+1  #这不是元组
type(("9")) # str
type(("9",)) # tuple

索引、in 、not in等在元组中一样使用。

字典

字典是存储对象的容器,是内置容器。用来连接两个对象。一个对象叫(key),一个对象叫(value)。这个连接叫映射,映射的结果就产生了一个健值对。可以通过键来查值,但不能通过值来键。

字典中存储的对象元素是无序的。字典的值可以是任意对象,键是不可变的。字符串或元组可以作为键,但列表或字典不可以

字典的价值在于健与值之间的关联。

用{}来创建字典。有两种方式创建。

dict1 = dict()
dict1 = dict({"bill Gates":"charitable"})
dict2 = {}
dict3 ={"apple":"red","banana":"yellow"}
dict3["dog"] = "black"  # 添加 键-值对
dict3["age"] = 51

可以使用in查看某个健是不是在字典中,但不能用于检查某个值是不是在字典中。not in也可以用的

可以使用del删除字典中的键值对

books = {"a":"b","d":"e","f":"g"}
del books["d"]

容器的嵌套

list1 = []
list2 =["a","b"]
list3 = ["c","d"]
list1.append(list2)
list1.append(list3) 
# 结果 list 1 = [["a","b"],["c","d"]]
#list1[0] 就是 ["a","b"]

慢慢学吧,有点绕头。

15. 字符串操作

”理论上来说,理论和实践没有区别。但实践上来说,是有区别的“

三引号字符串

字符串跨越一行以上的可以用三引号

""" 第一行
	第二行
	第三行
"""

索引、负索引

str1 = "abcdefg"
str1[0]
str[-1]

字符串的拼接

"cat"+"dog"

字符串的乘法

"cat"*3

字符串改变大小写

"dog".upper()
"DOG".lower()

字符串的格式化

"{}strs{}strs{}".format("x","y","z") # 结果为"xstrsystrsz"

分割

分割的结果是列表。

>>> "my name is zkx,what is your name?".split(",")
['my name is zkx', 'what is your name?']
>>> "my name is zkx,your name is liwang,his name is wange".split(",")
['my name is zkx', 'your name is liwang', 'his name is wange']

连接

>>> "**".join("abc")
'a**b**c'
>>> "好人".join("你我他")
'你好人我好人他'
>>> "+".join("abc")
'a+b+c'
>>> str1="abc"
>>> "=".join(str1)
'a=b=c'

"".join(字符串列表) 空字符串“”。或者" ".join(字符串列表)

>>> list1 = ["a","b","c","d"]
>>> "".join(list1)
'abcd'
>>> "".join(["zkx","is","a","good","man"])
'zkxisagoodman'
>>> "   ".join(["zkx","is","a","good","man"])
'zkx   is   a   good   man'

去除空格

去除开关或末尾的空格

>>> "     zkx      ".strip()
'zkx'

替换

>>> "zkx is a bad man".replace("bad","good")
'zkx is a good man'
>>> "zkx".replace("z","k")
'kkx'

查找索引

查找字符第一次在字符串出现的索引

>>> "animal".index("m")
3
>>> "zkx,zkx,zkx".index("zkx")
0
>>> "zkx,wangli,liwang".index("wang")
4

如果查不到会报异常,可以用try .. except处理

try:
    "zkx".index("w")
except:
    print("w not found")

in的使用

判断一个字符串是不是在另一个字符串中,返回结果为False 或者 True

字符串转义

>>> "zkx say: "good morning.""
SyntaxError: invalid syntax
>>> "zkx say:\"good morning\""
'zkx say:"good morning"'

python中用\来转义(escaping)。上面的例子也可以用单引号和双引号轮流用来解决。

换行符

字符串中加\n表示换行

切片

slicing(切片),可以将可迭代对象中元素的子集,创建为一个新的可迭代对象。切片时顾头不顾尾。

>>> ["zkx","is","a","good","man"][:3]
['zkx', 'is', 'a']
["zkx","is","a","good","man"][:4]
['zkx', 'is', 'a', 'good']

注意:[0:4]=[:4]

​ [2:5]=[2:] 一直到末尾

​ 头和尾的索引可以省略,如果均空,表示返回原可迭代对像

​ 有一点奇怪["zkx","is","a","good","man"][2:100]好像也没有报错。

posted @ 2020-12-13 17:36  imangke  阅读(197)  评论(0)    收藏  举报