python好学吗?python入门要多久?python编程自学行吗?做为没有python编程基础的初学者肯定有各种各样的疑问!以下为Python教程学习网整理的一位台湾小姐姐写的“一小时python入门教程”,我们来看看python到底难不难,Let’s go! now!
正文:略有删改
Python 是一个简洁易读的语言,学习者几乎可以立刻上手,也适用于大量的商业应用上。目前已超越C/C++、Java,成为各大学课程中的主流入门程式语言,美国Top 10 Computer Science (电脑) 系所中便有8 所采用Python 作为入门语言。
相关推荐:什么是Python?你应该学习和使用它的13个理由
今天就让我们来试着写写看Python 这个好玩的语言,并利用学习结果写个简单的爬虫程式,能够在FB 自动发文、自动洗赞,统计出朋友的留言按赞数!
一. 环境设置
首先可以至官网下载下载Python: https://www.python.org/。下载完成后,你将获得: Python直译器与IDLE (Python的IDE)。身为一个IDE、该有的都有了,只是由于有点丑,所以大家都不爱用。
接下来如何执行程式有两个选项:
1. 使用主机Terminal
让我们找一个写程式用的文字编辑器: Notepad++、Sublime Text、Vim、Atom…记事本也行,写完程式码后可以打开Terminal 、打上python档名.py执行看看,不过此举较不推荐新手用。
可以看到Terminal印出hello world字样了
2. 下载使用Jupyter Notebook
如果要更方便一点的话可以下载Jupyter,也是Python的IDE,包含了编辑器和编译功能,非常适合Python的学习噢
二. Python基本语法与练习
好了,来实作看看吧!打开Jupyter Notebook 应用程式、跳出 Jupyter Notebook 的编辑页面就可以来撰写我们的程式码啦。
1. Print:永远是跟世界打声招呼的第一个程序
print语法是在print函式中放进你要印的东西,比如print(我要印这个)。说声Hello World,跟程式的世界打声招呼吧!
print('hello world ')
输出hello world
第一个跟世界打招呼的程式!
print的内容可以是变数(variable): print(a),数字(init): print(1234),或是字串(string): print(‘abc123’)。
2. Variable (变数):一切TypeError的泉源
上面提到了变数,但这是什么意思呢? 其实就是帮资料取个名字、把资料储存起来。比如: 变数= 资料,a = 123。当我们输入a、就会找到123。
变数虽然能储存资料,但资料有很多种类型、所以就会有资料型态(Type)。举例来说:
a = 123 , type(a)会告诉我们init (整数)。
b = ‘456’ , type(b)会告诉我们str (字串)。
c = 8.70 , type(c)会告诉我们这是一个float (浮点数)。
数值可以做运算:
也可以使用各种你知道的函数:
但不同的形态运算要注意,不要把字串和数值加在一起、否则会产生TypeError。
记得学会看错误讯息再回去看自己写错了什么。
那该怎么办呢?
别怕别怕,若要运算则需要做型态转换,可以用int(), str(), float() 来转换变数型态。可以看到下图,int() 将字串’456’转成整数、str() 将整数123 转成字串。
谨记:「Error都是暂时的,没有解不掉的Bug,莫忘心灵祥和。」
就算身边没有程序激励员也要保持好心情喔(啾咪^_<
3. Input:让使用者输入资料呗
这边我们使用的是Python 3的环境,使用的是input;如果环境是Python 2的朋友注意是用raw_input噢,Python 2的input有别的意义。
input的功能是让使用者所有输入的资料会被当成字串储存起来,需要时再作转型。举例而言:
a = input() :它会等你输入,并以字串(string)的形式存入a这个变数中。
b = input(‘Your Name: ‘) :在萤幕上会出现’Your Name: ‘的提示,并把资料以字串(string)形式存入b这个变数中。
记得这个数字289是字串的形式喔~
● 小练习
请写一支Python程式,能读取两个整数,并把他们的四则运算印出来。(提示: 用input()印出来的东西是字串, 记得转型噢!)
4. If-Else 日常的逻辑判断
别说你没用过if-else函数式,我们每天都在面临if else的抉择──如果(if)百货公司周年庆到了:那就是大采购的时间啦! 否则(else)我们就晚点再买。
照样造句一下还有──如果(if)手机快没电: 我就乖乖回家充电! 否则(else) 我就继续刷抖音
来看一下if-else 语法解说。if 写完之后接冒号、下一行缩排后开始写要做什么事情。注意else 是否则的意思,就不用再写一次条件了。
但如果我们不只有两层(周年庆就去买东西、否则就等下次),可能有好几层条件呢?
比如: 如果我们平板电池的电量还很高、就去python学习网学python;电池电量快没了、就乖乖回家;如果电池电量普普通通、看看小说就好。
把这件事情用Python表达出来吧!
电池只有50,在30~80之间,因此看看小说就好!
if-else主要用在逻辑运算的判断上:
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
- == 等于
- != 不等于
或是布林值(Boolean):
- true 真的
- false 假的
- and 且
- or 或
- not 非
不小心买到Samsung Note 7、听说电池快没电时容易有爆炸的风险,怎么办?! 利用逻辑运算来提醒我们这个危机吧!
● 小练习
写一支Python整数机,第一步让使用者输入想要做的符号运算,比如「+, -, *, /」,第二步让使用者输入’整数1’和’整数2’,最后让这两个整数进行运算。如果输入的运算符号不是「+, -, *, /」,便输出「错误」。
5. For Loop 转圈圈吧哈姆太郎
如果要把0到9的数字印出来,应该怎么做呢?
嗯当然你可以这样做…
不是很看得懂程式码的意思吗? 别紧张,这边来解释一下这个式子的涵义。若要枚举出从0到n-1的数字,写法是:
for [变数名称] in range(n): (缩排) print([变数名称])
来试试看:
在这里的n=10,是不是把0~9 (n-1)的数字都印出来了呢?
到底range又是什么意思呢?
事实上range(n) = range(0, n),简单来说就是个产生器,你可以在这个range范围中拿资料、拿完到n-1为止。以range(3)为例,第一次拿到资料0、第二次拿到资料1、第三次拿到资料2,然后就结束了。
让我们重新看一下for函数结构:
for [变量名称] in range(范围,比如从数字X到Y): (縮排) 做一件事 (縮排) 做一件事
了解的话,就让我们来做个小练习吧!
● 小练习
请输出一个九九乘法表。(提示1: for loop里面也可以有第二个for loop噢!)
进阶版: 如果不希望print出来的结果换行且要有空格,可以使用end=’ ‘;若要再换行可使用end=’\n’。
事实上range的数列是有间距的喔!
range 的结构是:range(起点, 终点, 间距),其中的间距预设为1 、比如range(0, 6) = range(0, 6, 1) 。代表从0 到5,每次加1 的意思。
分别印出:
(1) 从1到10、每次加2的数列;
(2) 从10到2、每次-3的数列吧!
● 小练习
请做出一支能猜数字的程式:每次让使用者猜一个整数,若猜对就输出Bingo;使用者最多可以猜3次。(提示: Bingo后可以使用break来离开回圈)
6. List:能无限储存资料的格子
想像一下,若今天有三笔资料要计算时,我们会这样写:
a = 1 b = 2 c = 3
… 那如果你有成千上万笔资料呢?
再想像一下,如果不知道使用者要输入多少资料又要怎么办呢?
in = input() a = in[0] b = in[1]
这样真的行吗…
「神说要有了List,所以有了List。」- 来自深海大凤梨里的神秘讯息。
继续运用你的想像力!我们现在有个异次元里的柜子,它有无限个格子,第一格可以放东西、第二格也可以放东西…以此类推。
柜子里可以放任何东西,我们会用一个数字代表东西放在柜子中的第几层格子,这个数字就叫做Index (索引)。
把柜子的概念换成Python 的List 语法,就会变成:放在第0 层的变数、放在第1 层的变数… 这个数字就是Index(索引),而变数就是我们塞进去的资料。
一个Python的List长相如下,以中括号[] 包起来、逗号, 分隔:
a = ['Lynn', 0.87, 1234, True]
这里的a 就是一个List,第0 格放的是Lynn 这个字串、第1 格放的是0.87 这个浮点数、第2 格放的是1234 这个整数、第3 格放的是True 这个布林值。
有了格子的概念后,我们可以使用a[第几格]
来取出变数,比如a[0]代表’Lynn’、a[3]代表True。可以看到由于a[4]并不存在,因此会出现IndexError的警示。
要如何知道一个List有多长呢?我们能使用len([list变量名称])。
a = [1, 3] len(a) = 2
在拿到List 的长度后,让我们能来玩一点变化吧!比如List 加上上面教学的For Loop 看看会发生什么事:
若要更简洁一点的话,由于in 这个关键字有「在… 之中」的意思,in range(0, 3)代表在0~2之中。因此能改成:
● 小练习
现在有一个list a = [1, 3, 5, 7, 9],请对每一个元素都平方后印出来,且须将a 也变成[1, 9, 25, 49, 81]。
来玩玩更多list的操作吧!
建立一个空的list: a = list()或是a = []都可以
动态增加元素:
- list.append(x) :把变数x塞到list的最后面
- list.insert(i, x) :把变数x塞到i这个位置上
- list.pop() :把list的最后一格丢掉
- list.pop(i) :把list的第i格丢掉
- list.remove(x) :会把第一个出现的变数x拿掉
- list.clear() :把list内的资料全部清光光
与常见函数的结合:
- max(list) :找出list中最大值
- min(list) :找出list中最小值
- sum(list) :找出list数字总和
● 小练习
五次数学段考的成绩分别为10、30、50、70、90分,算出平均后,老师发现大家考太烂、只好将成绩开根号再乘上10 (提示: 成绩**0.5*10 ),再算出一个新平均。
请印出: 1. 五次成绩; 2. 平均成绩; 3. 五次新成绩; 4. 新分数的平均。
以为就这样结束了吗? List还有切片(Slice) 的功能哦大大!
Python 的slice 功能让我们能拿出List 柜子的一部份。
list[start: end] #拿到 list 的start ,start+1, start+2, ..., end-2, end-1
针对slice语法,让我们深入介绍一些细节部分:
- list[start: end],start和end都可以省略不写
- start的预设为0
- end的预设为len(list)
- liest[ :end]代表0~end-1
- list[start: ]代表start~len(list)-1
- list[ : ]代表0~len(list)-1
● 小练习
来办场Party吧! 输入十个整数、存入一个名为people清单中(表示我们的宴客人数);之后会有五次询问,每次会输入清单开始和结束的位置,再输出从开始到结束位置的总和。
本文《一小时Python入门》作者:Lynn-90年后女孩纸一个,独立营运写点科普网站:让一般人有机会了解生活中常见产业或技术的基础概念,就像科普一样,期许能藉由网志传递好奇、探究、思考的价值。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试