Python 関数の基礎知識

高洛峰
リリース: 2017-03-17 09:14:09
オリジナル
1743 人が閲覧しました

この記事では、システムが提供する内部関数、サードパーティが提供する関数ライブラリ + 単純なクローリング コード、httplib2 モジュールのインストール プロセスとユーザー定義関数について説明します。非常に良い基準値を持っています。以下のエディターで見てみましょう

私は Python 言語を学び始めたばかりですが、その利点の多くを発見しました (言語の単純さや、主に学習した Web クローラーの深い経験など)。 「Python Basic Tutorial」と「51CTO」を通してそれを学びました。大学のZhipu EducationのPythonビデオ「Learning」は、ビデオ内で教師が関数の知識を説明していて非常に良かったので、みんなに共有するために最初のPython学習記事を書きました。内容:

1. Pythonのインストール 基本的な入出力があれば、print()関数とraw_input()関数の使い方は簡単です

2.関数の基礎知識: (1)。システムが提供する内部関数: 文字列関数ライブラリ、数学関数ライブラリ、ネットワークプログラミング関数ライブラリ、サードパーティが提供する関数ライブラリ

(2)。 httplib2 サードパーティ関数ライブラリをインストールし、簡単な Web クローラーのサンプルを作成する方法

(3)。ユーザー定義関数: 戻り値の型、仮パラメーター、プリセット値パラメーターなどのないカスタム関数について説明します。

3同時に、ネットワーク プログラミングと以前に学習した C# の内容を簡単に比較してみたところ、Python には多くの利点があり、非常に便利で強力であることがわかりました。ビデオ、本、そして私自身の知識から得た多くの知識が、この記事が Python の学習を始める前に皆さんに役立つことを願っています。もし記事に誤りや欠陥がある場合は、ご容赦ください。また、皆さんもコメントや励ましをいただければ幸いです~1. Python のインストールと入出力関数

Python インタープリターは Linux に組み込まれています。Windows でインストールを使用するには、次のようにします。プログラムを実行するには、www.python.org 公式 Web サイトのダウンロード ページにアクセスして (python-2.7.8.amd64.msi など) をダウンロードし、Python 統合開発環境 (IDLE) をインストールする必要があります。「> ;」と入力します。 >>print 'hello world'" と実行すると、Python インタプリタは "hello world" という文字列を出力します。次のように:

Python プログラムの基本的なフレームワークは、「入力-処理-出力」です。 " 、入出力関数は次のとおりです: Python 関数の基礎知識

Python 関数の基礎知識1.print() 関数

関数は、print(3 など) の整数、浮動小数点、および文字列データを画面に出力または印刷するために使用されます。 )、print(12.5)、print('H')。変数形式「print(x) または print x」を出力し、複数の変数「print x、y、z」を出力することもできます。 format() 関数を呼び出します。フォーマットは次のとおりです:print(format(val,format_modifier)) ここで、val は値を表し、format_modifier はフォーマットワードを表します。 ) function

組み込み関数 sys.stdin から入力を受け取り、入力ステートメントを読み取り、文字列を返します。 help(raw_input) を通じてヘルプを見つけることができます。 s = raw_input([prompt]) パラメータ [prompt] オプション。ユーザー入力を求めるために使用されます。


#简单输出 
>>> print(12.5) 
12.5 
>>> print("eastmount") 
eastmount 
#输出"123.46",6.2表示输出6位,小数点后精度2位,输出最后一位6是四舍五入的结果 
>>> print(format(123.45678,'6.2f')) 
123.46 
#输出"口口口123",采用右对齐补空格方式输出总共6位 
>>> print(format(123.45678,'6.0f')) 
 123 
#输出"123.456780000"小数点后面9位,超出范围会自动补0 
>>> print(format(123.45678,'6.9f')) 
123.456780000 
#输出"34.56%"表示打印百分率 
>>> print(format(0.3456,'.2%')) 
34.56%
ログイン後にコピー
raw_input() と input() の違いに注意してください

: (1 ).input は、正当な Python テーブル形式「abc」、文字列をサポートします。引用符で囲む必要があります。そうでないと、「NameError: name 'abc' is not generated」というエラーが報告され、raw_input() は任意のタイプの入力を受け入れることができます。 (2).raw_input() はすべての入力を文字列として扱い、文字列を返します。また、input() は純粋な数値を入力する場合に独自の特性を持ち、入力された数値の型を int または float で返します。 例の説明は次のとおりです。

#输入函数 
>>> str1 = raw_input("please input a string:") 
please input a string:I love you 
>>> print(str1) 
I love you 
#查看str1数据类型 
>>> type(str1) 
<type &#39;str&#39;>
ログイン後にコピー

2. 関数のシステムは内部関数を提供します Python が提供するシステム内部ライブラリ関数 主に 4 種類を説明します: (動画から引用、簡単に紹介のみ)


1. 文字列関数ライブラリ

help(str) を通じて文字列関数ライブラリをクエリできます。「-More-」Enter を押して情報をスクロールし、「q」を出力してヘルプを終了します (Quit)。 CC++C#Java かどうかは異なりますが、基本的には同じです。例: is lower() 関数 文字列が大文字であるか小文字であるかを判断します。大文字の場合、format() 関数は false を返します。前に使用した文字列長 len() 関数は文字列関数ライブラリに属しており、Help(str.replace) は特定の関数の使用法をクエリするために使用されます。 古い文字列を新しい文字列に置き換えます。 . 数学関数ライブラリ


使用数学函数库时需要注意的是导入库"import math",该库中函数我们也非常熟悉,如sin()求正弦,cos()求余弦,pow(x,y)计算x的y次幂,如pow(3,4)=3*3*3*3,python中也可以使用3**4表示.help(math)中可以查看详细信息,而且库中定义了两个常数DATA:

e = 2.718281... pi = 3.14159265...


#导入math库 
>>> import math 
>>> print math.pi 
3.14159265359 
#计算sin30度 
>>> val = math.sin(math.pi/6) 
>>> print val 
0.5 
#pow函数 
>>> math.pow(3,4) 
81.0 
>>> 3**4 
81 
>>> help(math.pow) 
Help on built-in function pow in module math: 
pow(...) 
 pow(x, y) 
 Return x**y (x to the power of y). 
>>>
ログイン後にコピー

3.网络编程库

系统提供内部库函数中网络编程库,我此处仅仅举个简单例子,socket(套接字网络编程)获取主机ip地址这是非常常见的运用,我将与C#网络编程进行简单对比.后面的博文中将详细讲述python网络编程.


>>> import socket 
>>> baiduip = socket.gethostbyname(&#39;www.baidu.com&#39;) 
>>> print baiduip 
61.135.169.125
ログイン後にコピー

其中socket编程很常用,gethostbyname()返回指定主机ip,而C#中获取百度网址的ip地址代码如下所示.代码中可能会出现"警告:Dns.GetHostByName()函数已过时",可替换为IPHostEntry myHost = Dns.GetHostEntry(www.baidu.com).输出:

61.135.169.121

61.134.169.125


//引用新命名空间 
using System.Net; 
namespace GetIp 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 //获取DNS主机名的DNS信息 
 IPHostEntry myHost = Dns.GetHostByName("www.baidu.com"); 
 IPAddress[] address = myHost.AddressList; 
 for (int index = 0; index < address.Length; index++) 
 { 
 Console.WriteLine(address[index]); 
 } 
 Console.ReadKey(); 
 } 
 } 
}
ログイン後にコピー

4.操作系统(OS)函数库

操作系统库函数引用"import os",举例获取当前工作路径和先死当前路径下的文件和目录.使用os.system("cls")可以实现清屏功能.安装python目录Lib文件夹下含有很多py库文件供使用.


>>> import os 
#获取当前工作路径 
>>> current = os.getcwd() 
>>> print current 
G:\software\Program software\Python\python insert 
#获取当前路径下的文件和目录 
>>> dir = os.listdir(current) 
>>> print dir 
[&#39;DLLs&#39;, &#39;Doc&#39;, &#39;h2.txt&#39;, &#39;include&#39;, &#39;Lib&#39;, &#39;libs&#39;, &#39;LICENSE.txt 
&#39;, &#39;NEWS.txt&#39;, &#39;python.exe&#39;, &#39;pythonw.exe&#39;, &#39;README.txt&#39;, &#39;tcl&#39;, &#39;Tools&#39;] 
>>>
ログイン後にコピー

三. 函数之第三方提供函数库及安装httplib2模块过程

(一).安装第三方函数库httplib2过程

Python中第三方开源项目中提供函数库供我们使用,比如使用httplib2库函数.在Linux中直接使用"easy_install httplib2"搜索自动安装,Windows下python开发工具IDLE里安装httplib2模块的过程如下(其他模块类似).

1.下载httplib2模块"https://code.google.com/p/httplib2/"到指定目录,解压压缩包"httplib2_0.8.zip"到某目录下,如果该网址google访问失败,可以到此处下载:

2.配置python运行环境

右键"计算机"->"属性"->在"系统"中选择"高级系统设置"->在"系统属性"中"高级"选择"环境变量"

Python 関数の基礎知識

在系统环境变量Path后添加python安装目录"G:\software\Program software\Python\python insert"

Python 関数の基礎知識

3.在dos下安装httpLib2

管理员模式运行cmd,利用cd命令进入httplib2_0.8.zip解压目录,输入"python settup.py install",如下图所示安装成功.

Python 関数の基礎知識

4.使用httplib2

如果httplib2库函数没有安装成功,"import httplib2"会提示错误"ImportError: No module named httplib2".否则安装成功,举例如下.


import httplib2 
#获取HTTP对象 
h = httplib2.Http() 
#发出同步请求并获取内容 
resp, content = h.request("http://www.csdn.net/") 
#显示返回头信息 
print resp 
#显示网页相关内容 
print content
ログイン後にコピー

输出头信息:


{&#39;status&#39;: &#39;200&#39;, &#39;content-length&#39;: &#39;108963&#39;, &#39;content-location&#39;: &#39;http://www.csdn.net/&#39;, .... &#39;Fri, 05 Sep 2014 20:07:24 GMT&#39;, &#39;content-type&#39;: &#39;text/html; charset=utf-8&#39;}
ログイン後にコピー

(二).简单网页爬虫示例

使用第三方函数库时的具体格式为module_name.method(parametes) 第三方函数名.方法(参数).

讲述一个引用web库,urllib库访问公网上网页,webbrowser库调用浏览器操作,下载csdn官网内容并通过浏览器显示的实例.


import urllib 
import webbrowser as web 
url = "http://www.soso.com" 
content = urllib.urlopen(url).read() 
open("soso.html","w").write(content) 
web.open_new_tab("soso.html")
ログイン後にコピー

它会输出True并在浏览器中打开下载的静态网页.引用import webbrowser as web使用web,也可以直接引用,使用时"module_name.method"即可.

content = urllib.urlopen(url).read()表示打开url并读取赋值

open("soso.html","w").write(content)表示在python安装目录写静态soso.html文件

web.open_new_tab("soso.html")表示打开该静态文件新标签.

同样可以使用web.open_new_tab('http://www.soso.com')直接在浏览器打开动态网页.效果如下图所示:

Python 関数の基礎知識

Python 関数の基礎知識

四. 函数之自定义函数

1.无返回值自定义函数

其基本语法格式如下:


  def function_name([parameters]):  函数名([参数]),其中参数可有可无  (TAB) statement1
  (TAB) statement2   ...
ログイン後にコピー

注意:

(1).自定义函数名后面的冒号(:)不能省略,否则报错"invalid syntax",而且无需像C语言一样加{};

(2).函数里每条语句前都有缩进TAB,否则会报错"There's an error in your programs:expected an indented block",它的功能相当于区分函数里的语句与函数外的语句.

举例:打开IDLE工具->点击栏"File"->New File新建文件->命名为test.py文件,在test文件里添加代码如下.


def fun1(): 
 print &#39;Hello world&#39; 
 print &#39;by eastmount csdn&#39; 
print &#39;output&#39; 
fun1() 
def fun2(val1,val2): 
 print val1 
 print val2 
fun2(8,15)
ログイン後にコピー

保存,在test.py文件里点击Run->Run Module.输出结果如下图所示,其中fun1()函数无形参自定义函数,fun2(val1,val2)是有形参自定义函数,fun2(8,15)为函数的调用,实参8和15.

Python 関数の基礎知識

2.有返回值自定义函数

其基本语法格式如下:


   def funtion_name([para1,para2...paraN])
  statement1
  statement2
  ....
  return value1,value2...valueN
ログイン後にコピー

返回值支持一个或多个返回,需要注意的是自定义函数有返回值,主调函数就需要接受值(接受返回的结果).同时在定义变量时可能sum这些可能是关键字(注意颜色),最好使用不是关键字的变量.举例:


def fun3(n1,n2): 
 print n1,n2 
 n = n1 + n2 
 m = n1 - n2 
 p = n1 * n2 
 q = n1 / n2 
 e = n1 ** n2 
 return n,m,p,q,e 
a,b,c,d,e = fun3(2,10) 
print &#39;the result are &#39;,a,b,c,d,e 
re = fun3(2,10) 
print re
ログイン後にコピー

输出结果如下,其中需要注意的是参数一一对应,在除法中2/10=0,**幂运算2的10次方=1024.而使用re=fun3(2,10)直接输出的结果成为元组,后面会详细讲述,(12,-8,20,0,1024)元组中re[0]存储12,re[1]存储-8,依次~


2 10 
the result are 12 -8 20 0 1024 
2 10 
(12, -8, 20, 0, 1024)
ログイン後にコピー

3.自定义函数参数含预定义

预设值的基本格式如下:


  def function_name(para1,para2...parai=default1...paran=defaultn)
  statement1
  statement2
  ...
  return value1,value2...valuen
ログイン後にコピー

其中需要注意的是预定义值得参数不能先于无预定义值参数,举个例子讲解.


def fun4(n1,n2,n3=10): 
 print n1,n2,n3 
 n = n1 + n2 + n3 
 return n 
re1 = fun4(2,3) 
print &#39;result1 = &#39;,re1 
re2 = fun4(2,3,5) 
print &#39;result2 = &#39;,re2
ログイン後にコピー

输出结果如下图所示,预定义的参数在调用时,实参可以省略,也可以替换默认定义的预定义值.


2 3 10 
result1 = 15 
2 3 5 
result2 = 10
ログイン後にコピー

其中如果函数定义为def fun4(n3=10,n2,n1)就会报错"non-default argument follows default argument"(没预定义的参数在预定义参数的后面),所以定义函数时需要注意该点.

同时需要注意函数调用时的赋值顺序问题,最好采用一对一复制,也可以函数调用中给出具体形参进行赋值,但需要注意的是在函数调用过程中(使用函数时),有预定义值的参数不能先于无预定义值参数被赋值.

如例子中自定义函数def fun4(n1,n2,n3=10),在调用时可以:

(1).s=fun4(2,3)省略预定义参数,它是一对一赋值,其中n1赋值2、n2赋值3、n3赋值10(预定义)

(2).s=fun4(4,n2=1,n3=12)它也是一对一赋值,而且预定义值n3替换为12

(3).s=fun4(n2=1,n1=4,n3=15)它的顺序与定义函数没有对应,但是调用时给出具体对应也行

下面的情况就会出现所述的"有预定义值的参数先于无预定义值参数被赋值"错误:

(1).s=fun4(n3=12,n2=1,4)此时会报错"non-keyword arg after keyword arg",它不能指定n1=4,就是没有指定预定值n1=4在有预定值n3=12,n2=1之后,如果改成s=fun4(4,n2=1,n3=12)或s=fun4(4,n3=12,n2=1)即可.

(2).s=fun4(4,n1=2)此时也会报错"TypeError: fun4() got multiple values for keyword argument 'n1'",它不能指定n1=2&n2=4,而是n1会赋值多个.

したがって、プログラムを書くときは、関数を 1 つずつ呼び出すのが最善です。ただ対応するだけです。

概要: この記事は、システムが提供する内部関数と、によって提供される関数ライブラリから始まります。サードパーティ + コードから抜け出して httplib2 をインストールするだけです。 モジュールのプロセスとユーザー定義関数は 3 つの側面で説明されています。記事に誤りや不備がある場合は、お知らせください。最後に、感謝の意を表します。ビデオの先生と上記のブロガー、本の先生と私。

以上がPython 関数の基礎知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート