早安安! 今天是Python基本介绍的最後一天了~ 6天真的太短了,有好多东西想讲但都讲不完 ಥ⌣ಥ,因此我打算今天就把几个之後爬虫会用到的几个技巧介绍完,内容可能有点杂,请多见谅。
函数最基础的定义就是:给定一个输入x,经过function後,得到一个输出f(x)。
大家国中学过的一元多项式,就是一个简单的函数,举例:
y = x^2+2x+1
这是一个一元二次的多项式,如果我们x代入2,y就等於2^2^+2*2+1 = 9,也可以写成函数形式f(2) = 9。
了解完函数後,其实Python的函数也差不了太多,也是一个输出得到一个输入,只是输入跟输出的型态更自由了!
Python中使用def
宣告函数,後面接函数名称以及参数。
并使用函数名称(参数1, 参数2, ...)
呼叫参数。
那麽,请你告诉我,底下这个算不算是一个函数呢?
def hello():
print("Hello, World!")
hello()
执行结果:
Hello, World!
这当然也是函数罗,只不过没有输出和输入,单纯印出 "Hello World" 而已。
顺带一提,因为Python是直译式语言,是从头开始直译下来的,所以函数一定要定义在呼叫前面哦!
我们试着输入参数:
def greet(name):
print(f"Hello, {name}!")
greet("Andy")
执行结果:
Hello, Andy!
这边我们传入字串"Andy"作为参数name
,於是在函数中印出 "Hello, Andy!"。
这次写个函数,输入两个数字,回传两个数字的总和:
def sum(x, y):
return x+y
print(sum(1, 2))
结果:
3
Python使用return
作为函式的回传,读到return
後就会跳出函数了并回传数值。所以上面例子,我们传入1和2,最後函数就回传1+2 = 3。
使用时机是将重复性高的工作写成函数,可以大大提升程序码的重用性和精简度。
Python读写档案使用open()
这个函数,语法为open(档案名称, 模式)
。
file = open("demo_en.txt", "r")
档案名称没有特别写的话就是相对位置,起始位置为程序所在的资料夹,写完整路径的话就是绝对位置。
模式主要有三种,读(r)、写(w)、添加(a),以及二进位模式。
如果档案中有中文字,则要将编码设定成utf-8,否则会出错。
file = open("demo_ch.txt", "r", encoding="utf-8")
开始档案後使用read()
函数读取所有内容。
别忘了档案操作完後一定要关档哦,不关会导致更改没有存档,而且也浪费了记忆体。关档用到close()
函数。
file = open("demo_en.txt", "r")
content = file.read()
print(content)
file.close()
另外,readlines()
可以依照行读取整个档案,回传是一个List,每一个element就是一行字。
file = open("demo_en.txt", "r")
lines = file.readlines()
print(lines)
file.close()
执行结果:
['Country road, take me home\n', 'To the place I belong\n', 'West Virginia, mountain mamma']
我发现歌词中少了一句,所以我要用添加模式(a)+write()
函数补上漏掉的那一句。
file = open("demo_en.txt", "a")
file.write("Take me home, country road\n")
file.close()
如果常常忘记关档怎麽办,Python有提供with的写法,离开范围是就会自动关档了,是不是很贴心呢! 我个人也比较建议这个写法。
with open("demo_en.txt", "r") as file:
content = file.read()
print(content)
前面有提到,Python之所以受欢迎,很大的原因是因为他拥有广大的社群,提供非常多的套件和资源可以使用,你如果够厉害也可以自己写套件回馈给社群,而我们现在就要学怎麽使用这些套件。
Python本身内建就包含很多套件了,另外Anaconda本身也预先载好了很多常用的套件,如果还是没有你要的,还是可以使用Python的套件管理工具(pip)进行安装。
只要 import+模组名称
就可以在程序码中使用了,我们这边先拿内建就有的math套件做例子,使用math套件中的log()
函数取1024以2为底的log:
import math
print(math.log(1024, 2)) # 10
你可能觉得写math太麻烦,可以用 as
改成缩写。
import math as m
print(m.log(1024, 2))
或者你不想要引用整个套件,你只想要引用math套件中的log()
函数而已,可以用 from
的方式写。
from math import log
print(log(1024, 2))
之後爬虫会用到很多套件,到时候再一一做介绍。
今天是Python基础介绍的最後一天,我整理了几个之後专案会用到的重点,像是函数、读写档案、引用,希望能快速让你对Python有点认识。
前几天都在介绍Python多少觉得有点闷(我自己也写得很闷),不过别担心,明天我们就要开始进入文章的重头戏 - 网页爬虫!! 想学网页爬虫的朋友千万别错过明天我要和你分享的内容罗~
如果喜欢这系列文章麻烦帮我按Like加订阅,你的支持是我创作最大的动力~
本系列文章以及范例程序码都同步更新在GitHub上,後续会持续的更新,如果喜欢也麻烦帮我按个星星吧~
有任何问题或建议,都欢迎在底下留言区提出,还请大家多多指教。
>>: 【Day 03】- 打针!打针!从 R0 注入的那件事!
AlertDialog与Toast皆可用於显示讯息, 但与Toast不同的是, AlertDialo...
该来处理搜寻结果了。 在前几天的内容中,当我完成搜寻时,都会使用parseBoardArticle方...
今天要来体验的工具是Wifite,标榜只要简单的指令,不需繁琐的步骤或额外的参数就能自动完成扫描、破...
试想想,你现在正在为一间酒店,制作一个网站,您需要为这间酒店加入订房的画面。当然,床数量,有没有浴缸...
我抠 我抠 我抠抠抠,"钱歹赚"的2022,我的每一分钱都打上9个结,为了生存时...