一、引入外部包/模块

import 模块

例:

#方法1.
import time
print(time.localtime())  #这样就可以print 当地时间了


#方法2:(别名)
import time as t
print(t.localtime()) # 需要加t.前缀来引出功能

#方法3: 只import自己要的功能
from time import time, localtime
print(localtime())
print(time())

#方法4: 输入模块的所有功能
from time import *
print(localtime())


创建自己的模块:

可以将一个自己需要的功能写进python脚本里面,如:count.py

调用自己的模块,在新开的脚本里面 import count

两个文件可以放在同一个目录下。

或者:在Mac系统中,下载的python模块会被存储到外部路径site-packages,同样,我们自己建的模块也可以放到这个路径,最后不会影响到自建模块的调用


二、open读写文件

my_file=open('my file.txt' ,'w')   #用法: open('文件名','形式'), 其中形式有'w':write;'r':read.  'a'=append 以增加内容的形式打开
my_file.write(text)               #该语句会写入先前定义好的 text
my_file.close()                   #关闭文件

file= open('my file.txt','r') 
content=file.read()  
print(content)
file.close()


如果想在文本中一行行的读取文本, 可以使用  file.readline()

file.readline()

 读取的内容和你使用的次数有关, 使用第二次的时候, 读取到的是文本的第二行, 并可以以此类推。



如果想要读取所有行, 并可以使用像 for 一样的迭代器迭代这些行结果, 我们可以使用 file.readlines(), 将每一行的结果存储在 list 中, 方便以后迭代.

file= open('my file.txt','r') 
content=file.readlines() # python_list 形式
print(content)

""""
['This is my first test.\n', 'This is the second line.\n', 'This the third line.\n', 'This is appended file.']
""""

# 之后如果使用 for 来迭代输出:
for item in content:
    print(item)
    
"""
This is my first test.

This is the second line.

This the third line.

This is appended file.
"""




三、class 类

1. 类名首字母大写,self是默认值,类似于c++/java里面的this

class Calculator:       #首字母要大写,冒号不能缺
    name='Good Calculator'  #该行为class的属性
    price=18
    def add(self,x,y):
        print(self.name)
        result = x + y
        print(result)
    def minus(self,x,y):
        result=x-y
        print(result)
    def times(self,x,y):
        print(x*y)
    def divide(self,x,y):
        print(x/y)

""""
>>> cal=Calculator()  #注意这里运行class的时候要加"()",否则调用下面函数的时候会出现错误,导致无法调用.
>>> cal.name
'Good Calculator'
>>> cal.price
18
>>> cal.add(10,20)
Good Calculator
30
>>> cal.minus(10,20)
-10
>>> cal.times(10,20)
200
>>> cal.divide(10,20)
0.5
>>>
""""


2. init功能 (相当于c++/java的构造函数)

__init__可以理解成初始化class的变量,取自英文中initial 最初的意思.可以在运行时,给初始值附。

class Calculator:
    name='good calculator'
    price=18
    def __init__(self,name,price,height,width,weight=17):   # 注意,这里的下划线是双下划线,其中weight默认参数值为17
        self.name=name
        self.price=price
        self.h=height
        self.wi=width
        self.we=weight
""""
>>> c=Calculator('bad calculator',18,17,16,15)
>>> c.name
'bad calculator'
>>> c.price
18



四、input

1. variable=input() 表示运行后,可以在屏幕中输入一个数字,该数字会赋值给自变量。

2. 可以定义input进来的类型,如:

a_input=int(input('please input a number:'))#注意这里要定义一个整数型




五、跳出循环

break:在循环语句中,使用 break, 当符合跳出条件时,会直接结束循环。

 continue :跳过continue后面的代码,而会直接进入下一次循环。


六、错误处理

输出错误:try:except ... as ...: 看如下代码

try:
    file=open('eeee.txt','r+')
except Exception as e:
    print(e)
    response = input('do you want to create a new file:')
    if response=='y':
        file=open('eeee.txt','w')
        file.write('ssss')
        file.close();
    else:
        pass
else:
    print(file.read())
    file.close();


首先报错:没有这样的文件 No such file or directory

. 然后决定是否输入 y

, 输入 y

以后,系统就会新建一个文件(要用写入的类型),再次运行后,文件中就会写入 ssss



七、zip lambda map

1.zip函数接受任意多个(包括0个和1个)序列作为参数,合并后返回一个tuple列表

a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)  
print(list(ab))  #[(1, 4), (2, 5), (3, 6)]
for i,j in zip(a,b):
     print(i/2,j*2)

#   0.5 8
#   1.0 10
#   1.5 12


2. lambda

lambda定义一个简单的函数,实现简化代码的功能,看代码会更好理解。

fun = lambda x,y : x+y, 冒号前的x,y为自变量,冒号后x+y为具体运算。

fun= lambda x,y:x+y
x=int(input('x='))    #这里要定义int整数,否则会默认为字符串
y=int(input('y='))
print(fun(x,y))

"""
x=6
y=6
12
"""



3. map

map是把函数和参数绑定在一起。


>>> def fun(x,y):
	return (x+y)
>>> list(map(fun,[1],[2]))
"""
[3]
"""
>>> list(map(fun,[1,2],[3,4]))
"""
[4,6]
"""