ボーエン構造の
カスタム関数の
変数のスコープ
Pythonは組み込み関数
A.機能
Pythonでの関数は、ステートメントと式の集合です。使用法機能と制限はありませんが、コードの再利用、再利用可能であるカスタム関数を記述する必要がためのように、他の値としてPythonを使用しています。
機能は非パラメータ化機能と関数パラメータに分けることができます
1.引数なしの機能
いいえカスタム関数のパラメータは、次の構文を複雑にしないされていません。
def函数名称() :
代码块
return [表达式]
ケース:
def add(): \\定义函数
op1=10
op2=20
rt=op1+op2
print op1,'+',op2,rt
return
add() \\调用函数
\\输出结果
>>>
10 + 20 30
>>>
ケース:九九出力
def nineMultiTab():
op1=(1,2,3,4,5,6,7,8,9)
op2=(1,2,3,4,5,6,7,8,9)
for i in op1:
for j in op2:
print i,"*",j,"=",i*j
retrun
nineMultiTab()
\\输出结果
>>>
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
..................略
次のようにいくつかのミス、要約されている - 多くの場合、機能1時の使用を作る(2)
最初の呼び出し元の関数に定義された関数は、それ以外の場合は、間違って行くでしょう。
コード関数本体は、全体として、インデントに注意を払う必要があります。
コロン定義関数を使用するには、しかし呼び出すときに、コロンを使用することはできません。
参照パラメータで2
次のように関数のパラメータと構文は次のとおりです。
def函数名称(形式参数列表) :
代码块
return[表达式]
ケース:
def add(x,y): \\带参数函数定义
return x + y
print add(1,2) \\带参数函数调用
\\输出结果
>>>
3
手順は、パラメータの順序を覚えておくことが、比較的面倒で困難である場合には(1)、あなたはキーワード引数を使用することができます。明示的に指定された関数を呼び出すパラメータ値がどのパラメータに割り当てられているとき、次のようにキーワード引数、構文は次のとおりです。
関数名(パラメータ1 = 1引数、パラメータ、引数... = 2)
統合されたケース:(電卓)
def operator (op1,op2,opFu):
if opFu not in '+-*/':
return -1
if opFu == '+':
result = op1+op2
elif opFu == '-':
result = op1 - op2
elif opFu == '*':
result = op1*op2
elif opFu == '/':
if op2 == 0:
print '错误,除数不能为0'
result = None
else:
result = op1 / op2
return result
def convert(op):
flag = True
for ch in op:
if ch not in '1234567890':
flag = Flase
brank
if flag == True:
return int(op)
else:
return None
if __name__== '__main__':
str1 = '请输入第1个数:\n'
strFu = '请输入一个算术运算符:\n'
str2 = '请输入2个数:\n'
while True:
print '需要退出程序,请输入字母q'
opp1 = raw_input(str1)
ch = opp1.strip()[0].lower()
if ch =='q':
break
op1 = convert(opp1)
if op1 ==None:
print '输入错误,请输入整数!/n'
continue
while True:
opFu= raw_input(strFu)
if opFu in '+-*/':
break
else:
print '运算符输入错误'
continue
while True:
op2 = convert(raw_input(str2))
if op2 == None:
print "输入错误,请输入整数!\n"
continue
else:
break
result = operator(op1,op2,opFu)
if result <> None:
print "计算%d %s %d = %d\'n" %(op1,opFu,op2,result)
print '程序退出了'
\\输出结果如下
需要退出程序,请输入字母q
请输入第1个数:
20
请输入一个算术运算符:
*
请输入2个数:
30
计算20 * 30 = 600'n
需要退出程序,请输入字母q
II。変数のスコープ
番組内のアプリケーションスコープ変数を参照し、変数宣言、その範囲の位置を決定し、Pythonのスコープは、ローカルおよびグローバル変数を区別します。グローバル変数は、それが削除されていない限り、それ以外のすべての関数は、グローバル変数にアクセスすることができ、実行中のプログラムの最後まで生き残る、グローバルスコープを持っている最高レベルの変数内のモジュールです。
ローカル変数は、関数で定義された変数ローカルスコープを指し、可変ステージ関数の定義に依存することは、関数が呼び出され、アクティブであるローカル変数、一時的プレゼンスを生成します。-関数が実行されると、ローカル変数が解放されます。ローカル変数は、その関数を定義するの範囲に制限され、モジュール内のグローバル変数の全範囲が表示されています。同機能では、ローカル変数と同じ名前を持つことができません。様々な機能に、同じ名前のローカル変数が存在してもよいです。同プログラムでは、ときに、同じ名前をグローバルとローカル変数、高い優先順位を持つローカル変数として。
次のコードは、ローカルおよびグローバル変数の使用方法を示します。
def addAge(age):
age +=1
print 'addAge(): _age=%d age=%d' %(_age,age)
return age
_age = input('输入年龄: \n')
rt = addAge(_age)
print 'main(): _age =%d ' %_age
print 'main(): rt=%d' %rt
\\输出结果如下
>>>
输入年龄:
20
addAge(): _age=20 age=21
main(): _age =20
main(): rt=21
>>>
年齢はローカル変数であるとしてローカル変数は、他の範囲が訪問されていない、ローカルなだけ利用可能です。あなたはこのようなコードを使用して、最終的にプログラムとして、グローバルスコープを参照することはできません
- ラムダ関数の
役割ラムダ関数は、無名関数を作成することである関数を宣言するための特別な方法です。
次のようにラムダ関数の構文は次のとおりです。
ラムダのparams:exprの
paramsは、受信したパラメータリストに対応する機能、exprは関数の戻り値の表現です。
一般的な機能とラムダ関数、次のような場合:
def sum1(x,y): \\普通函数
return x+y
sum2 = lambda x,y : x+y \\lambda函数
print sum1(3,4)
print sum2(3,4)
\\输出结果如下
>>>
7
7
- 内蔵機能
Pythonは文法的構造自体に加えて、だけでなく、組み込み関数一般的に提供します。組み込み関数プログラマ頻繁に使用される方法。手順)が内蔵されている機能(例えばfloatとして、製造の効率を増大させることができます。内蔵の機能が自動的にロードされ、Pythonインタプリタを識別することができます。それは、あなたが呼び出すことができる任意の操作なしの参照を行うことなしに、モジュールをインポートする必要はありません。
(1)ABS()関数は、即ち、正の数の数値の絶対値を返します。構文は次のとおりです。
ABS(X)
ケース:
>>> abs(10)
10
>>> abs(-10)
10
>>> bb = -3
>>> abs(bb)
3
(2)BOOL()関数が返すそれはブール(Boolean)を速記構文は次のようにされている値がTrueまたはFalse:
BOOL([X]
ケース:そこに空にすることはできません
>>> bool()
False
>>> bool(0)
False
>>> bool(-3)
True
>>> bool('xws')
True
(3)フロート()関数は、フロートにデータを変換するために使用される次のように、構文は次のとおりです。
フロート([X])
ケース:
>>> float('25')
25.0
>>> float(3)
3.0
>>> float(999.123)
999.123
>>>
文字列と数値をfloatに変換することができ、変換されない場合は、例外がスローされます。
次のように(4)、INT()関数は、構造化された整数データシンタックスに変換することができます。
INT([X [ベース]])
ケース:
>>> int(199.99) \\浮点数
199
>>> int('100') \\字符串
100
>>> int('99.9') \\字符串
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
int('99.9')
ValueError: invalid literal for int() with base 10: '99.9'
>>>
パラメータが文字列である場合、浮動小数点形式が発生異常がある場合、文字列のみ、整数形式とすることができることに留意されたいです。
- (5)の範囲()関数を生成することができる - リストは、次の構文構造。
範囲([スタート]ストップ[ステップ])
ケース:
>>> range(0,5)
[0, 1, 2, 3, 4]
>>> range(0,30,3)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27] \\递增
>>> range(30,0,-3)
[30, 27, 24, 21, 18, 15, 12, 9, 6, 3] \\递减
>>>
(6)合計()関数は、リスト内の要素を合計することができ、次の構文構造
和(x [開始])
ケース:
>>> num=range(0,500,50)
>>> num
[0, 50, 100, 150, 200, 250, 300, 350, 400, 450]
>>> print(sum(num))
2250
>>>
(7)MAX()関数は、タプル最大の要素または文字列のリストを返し、次のように、文法的構造は以下の通りであります:
MAX(X)
ケース:
>>> num=[6,2,12,7,64]
>>> max(num)
64
>>> string ='d,u,a,n,g,D,U,A,N,G'
>>> max(string)
'u'
>>>
lenは()関数は、オブジェクトは、次の構文の長さを返します。
のみ(A)
ケース
>>> len('duang') \\字符串
5
>>> aa=['python','jave','c#','vb'] \\列表
>>> len(aa)
4
>>> bb={'zhangsan':'100','lisi':'90'} \\字典
>>> len(bb)
2