> 백엔드 개발 > 파이썬 튜토리얼 > Python 함수에 대한 기본 지식

Python 함수에 대한 기본 지식

高洛峰
풀어 주다: 2017-03-17 09:14:09
원래의
1743명이 탐색했습니다.

이 글에서는 시스템에서 제공하는 내부 기능, 타사에서 제공하는 함수 라이브러리 + 간단한 크롤링 코드, httplib2 모듈 설치 과정 및 사용자 정의 함수에 대해 설명합니다. 매우 좋은 참조 값을 가지고 있습니다. 아래 에디터로 살펴보겠습니다

Python 언어를 배우기 시작한 지 얼마 안 됐지만 Python 언어의 장점(언어의 단순성, 웹 크롤러의 깊은 경험 등)을 많이 발견했습니다. 주로 "파이썬 기초 튜토리얼" "51CTO 아카데미 즈푸교육의 파이썬 영상으로 공부하기"를 통해 배웠습니다. 영상에서 선생님께서 함수 지식에 대해 이야기하시는 것을 보고 너무 좋다고 생각해서 처음으로 파이썬을 작성하게 되었습니다. 모두와 공유할 학습글. 주요 내용:

1. Python 설치 및 기본 입출력, print() 함수와 raw_input() 함수의 간단한 사용법

2.I 영상에서 배운 지식을 바탕으로 기능에 대한 기본 지식을 설명합니다:

(1). 내부 함수 제공: 문자열 함수 라이브러리, 수학 함수 라이브러리, 네트워크 프로그래밍 함수 라이브러리, OS 함수 라이브러리

(2) 타사 함수 라이브러리: httplib2 타사 함수 라이브러리 설치 방법을 설명한 후 간단한 웹 크롤러 예제를 만들어 보세요

(3). 사용자 정의 함수: 반환 유형 없음, 형식 매개변수, 미리 설정된 값 매개변수 등 사용자 정의 함수를 설명합니다

3 동시에 이전에 C#에서 배운 것과 네트워크 프로그래밍을 간략하게 비교해 보았는데, Python에는 정말 많은 장점이 있고, 매우 편리하고 강력하다는 것을 알게 되었습니다.

추신: 이 기사에는 비디오, 책 및 제가 알고 있는 지식이 많이 인용되어 있습니다. 도움을 받아 방금 시작한 모든 사람에게 이 기사가 도움이 되기를 바랍니다. 기사에 오류나 부족한 점이 있으면 지적해 주시고 격려해 주시기 바랍니다~

1. Python 설치 및 입출력 기능

Python 인터프리터는 Linux에 내장되어 설치될 수 있습니다. Windows의 경우 www.python.org 공식 웹사이트(예: python-2.7.8.amd64)의 다운로드 페이지에서 다운로드해야 합니다. msi) 및 Python 통합을 설치하면 충분합니다. 프로그램을 실행하고 ">>>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는 형식 단어입니다.


#简单输出 
>>> 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%
로그인 후 복사

2.raw_input() 함수

내장 함수는 sys.stdin에서 입력을 받아들이고 입력 문을 읽고 문자열 string 을 반환합니다. 입력은 help(raw_input)를 통해 도움말을 찾을 수 있습니다:

s = raw_input([prompt]) [prompt] 매개변수는 선택 사항이며 사용자 입력에 사용됩니다.


#输入函数 
>>> 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;>
로그인 후 복사

raw_input()과 input()의 차이점에 유의하세요: (1 ).Input은 합법적인 Python 테이블 형식인 "abc"를 지원합니다. 문자열은 따옴표로 묶어야 합니다. 그렇지 않으면 "NameError: 이름 'abc'가 정의되지 않았습니다"라는 오류가 보고되고 raw_input()은 모든 유형의 입력을 허용할 수 있으며(2), input()은 모든 입력을 문자열로 처리하고 반환합니다. 순수한 숫자를 입력할 때 입력 숫자 유형을 int 또는 float로 반환하는 고유한 특성이 있습니다.


#SyntaxError语法错误 
>>> str1 = input("input:") 
input:abc 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
 File "<string>", line 1, in <module> 
NameError: name &#39;abc&#39; is not defined 
#正确输入输出 
>>> str1 = input("input:") 
input:"I love you" 
>>> print str1 
I love you 
#input纯数字 数据类型 
>>> weight = input("weight:") 
weight:12.5 
>>> type(weight) 
<type &#39;float&#39;> 
#raw_input 数据类型均为str 
>>> age = raw_input("age:") 
age:20 
>>> type(age) 
<type &#39;str&#39;>
로그인 후 복사

2. 내부 함수 제공

파이썬에서 제공하는 시스템 내부 라이브러리 함수는 크게 4가지 종류를 설명합니다. (영상에서 인용, 간략하게 소개함)

1. 함수 라이브러리

help(str)를 통해 문자열 함수 라이브러리를 쿼리할 수 있는데, 쿼리 과정 중 "-More-"가 입력되어 스크롤 정보를 구현하기 위해 Enter를 입력하고 "q"를 출력합니다. " 도움말을 종료하려면(Quit). 누구나 문자열 함수에 익숙합니다. CC++C#Java인지 많이 배웠으며 기본적으로 동일합니다. 예:

islower( ) 함수는 문자열 함수인지 여부를 결정합니다. 문자열은 대문자 또는 소문자이며, 대문자이면 False를 반환합니다. 앞서 사용된 format() 함수와 문자열 길이 len() 함수는 문자열 함수 라이브러리에 속해 있으며, 특정 함수 사용법을 쿼리할 수 있습니다. 이 함수는 이전 문자열을 새 문자열로 바꾸는 데 사용됩니다.


#判断字符串是否小写 
>>> str1 = "Eastmount" 
>>> str1.islower() 
False 
#字符串替换 
>>> str2 = &#39;adfababdfab&#39; 
>>> str2.replace(&#39;ab&#39;,&#39;AB&#39;) 
&#39;adfABABdfAB&#39; 
#字符串求长度 
>>> print(len(str2)) 
11 
>>>
로그인 후 복사

2. 수학 함수 라이브러리

使用数学函数库时需要注意的是导入库"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会赋值多个.

그래서 함수를 하나씩 호출하는 것이 가장 좋습니다. 보통 프로그램을 작성할 때 스스로 어렵게 만들지 않고 그냥 대응하면 됩니다.

요약: 글은 시스템이 제공하는 내부 함수부터 시작해서 타사에서 제공하는 함수 라이브러리 + 단순 코드에서 벗어나서 httplib2 모듈과 사용자 정의 함수를 설치하는 과정을 세 가지 측면에서 설명하겠습니다. 기사에 오류나 부족한 점이 있으면 알려주시기 바랍니다. ~마지막으로 영상선생님, 위에 언급해주신 블로거님들, 책선생님들 그리고 저에게 감사의 말씀 전하고 싶습니다.

위 내용은 Python 함수에 대한 기본 지식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿