python項目的組織結構
包(文件夾)-->模塊(文件)-->類-->函數和變量
seven.c4、six.c4:(seven)包名.模塊名(c4) 構成命名空間
seven包的結構:
seven
--t(子包)
-- __init__.py (成爲一個包必需的文件)
--c5.py
-- __init__.py (成爲一個包必需的文件)
--c1.py
--c2.py
--c3.py
--c4.py
--c6.py
import 導入模塊
c5: a=1
c2: import t.c5 as m
print(m.a) # 1
# c3: __all__=['a','b'] a,b,c=1,2,3
# import 導入模塊名 as 改變模塊名
# import t.c3 as m
# print(m.a)
# from t.c3 import a 從c3模塊下導入a變量
# * 代表所有c3中 __all__=['a','b'] 導出的變量 默認是所有變量
from t.c3 import *
print(a)
print(b)
print(c)
''' 結果:
1
2
Traceback (most recent call last):
File "D:\前端\python視頻\python\one\c2.py", line 11, in <module>
print(c)
NameError: name 'c' is not defined
'''
t子包 __init__.py: 包管理
import sys
import io
import datetime
c6中導入
import t
print(t.sys.path)
包和模塊是不會重複導入的,避免循環導入模塊
函數
內置函數:
round() 四捨五入保留幾位小數
a=1.12386
result=round(a,2)
print(result) # 1.12
查看python內置函數 python-->回車-->help(print)-->more-->回車
自定義函數
def fun(parame_list):
pass
1.def關鍵字定義一個函數 js 直接function fun(){} 或者var fun=function(){}
2.parame_list參數列表可以沒有
3.沒有return 默認返回None js 返回null
4.python函數的定義需放在調用之前 js 有函數聲明提升
5.使用函數名調用 fun()
6.函數可以返回多個值 構成一個元組 js只能有一個返回值
7.必需參數 skill1和skill2 js參數可以不是必需參數
8.關鍵字參數 調用時不需要記住參數的順序 如damage(skill2=6,skill1=1) js沒有關鍵字參數這個說話
9.可以設置默認參數 定義和調用時默認參數都放在後面
def damage(skill1,skill2):
damage1=skill1*3
damage2=skill2*3+2
return damage1,damage2
# <class 'tuple'>
print( type(damage(3,6)) )
# 序列解包
skill1_damage,skill2_damage=damage(3,6)
print(skill1_damage) #9
print(skill2_damage) #20
序列解包
a,b,c=1,2,3
d='345' # ['3','4','5'] '3','4','5'
e,f,g=d
print(a) #1
print(b) #2
print(c) #3
print(e) #3
print(f) #4
print(g) #5
變量的作用域
a=1 # 全局變量
def add():
a=3 # 局部變量 函數內部無法更改全局變量 但是在函數內可以訪問全局變量
print(a)
add() # 3
print(a) # 1