考量到有些人可能还没学过Python,然後我的主题又是定为从HTML到Python爬虫的30天之旅,所以没办法,虽然简单还是要交,因此接下来几天我会用很基础的角度来介绍Python,已经学过Python的人可能会觉得有点无聊,这部分可以先跳过,等到开始讲爬虫的部分再回来也没关系(目前暂定是第13天的时候)。
预防针已经先打好了,那我们就开始吧!
稍微复习一下昨天的程序码:
print("Hello Python!")
昨天说过,print()
是Python原本就有的函数,可以将()
中的内容印在终端机(terminal)上。
变数是存取资料数值的容器,Python和C语言不同,不需要事先宣告变数的资料型态,而是在初次赋予值的时候决定。
# demo01
name = "Andy"
age = 20
print(name)
print(age)
执行结果:
Andy
20
这时候name
变数的值就是"Andy",而age
变数的值就是20,这个值之後是可以改变的。
也可以将变数印在一起,像是这样:
# demo02
print("Hi! My name is "+name+", and I am "+age)
执行结果:
Traceback (most recent call last):
File "d:\2021-IT-30days\Code\Day 09\02.py", line 4, in <module>
print("Hi! My name is "+name+", and I am "+age)
TypeError: can only concatenate str (not "int") to str
咦? 可是怎麽跑出了错误讯息呢? 讯息的意思是 "只能str可以连接str(而不是int)",这是什麽意思呢? 这部分就不得不提到资料型态了。
对学习程序语言来说,资料型态是相当重要的观念。一个变数只能是一种资料型态,而不同的资料型态可以做不同的事,并有不同的特性。
Python内建的资料型态大致可以分为三种:
str
(字串)int
(整数), float
(浮点数)bool
(真or假)前面说过Python是在初次赋予值的时候决定变数的资料型态,所以是什麽资料型态取决於=
之後的值。
使用type()
函数可以显示变数的资料型态为何。
# demo03
a = 5
b = "Hello"
c = 0.15
d = True
print(type(a))
print(type(b))
print(type(c))
print(type(d))
执行结果:
<class 'int'>
<class 'str'>
<class 'float'>
<class 'bool'>
将变数强制转成我们要的变数型态。
int()
:将任何的资料型态转为int
float()
:将任何的资料型态转为float
str()
:将任何的资料型态转为string
回到前面出错的例子(demo02),之所以会出错是因为+
只能连接字串和字串,而不能字串和数字,所以解决办法很简单,就是将整数转为字串就好了。
# demo04
print("Hi! My name is "+name+", and I am "+str(age))
执行结果:
Hi! My name is Andy, and I am 20
input()
函数会将读取你在终端机输入的内容,而且一律存为字串型态。
另外,可以在()
中加入提示,提示的文字会显示在你的输入的前面。
# demo05
a = input()
b = input("Enter something! ")
print(a)
print(b)
print(type(a))
print(type(b))
执行结果:
>> 123
>> Enter something! asd
123
asd
<class 'str'>
<class 'str'>
现在你可以让demo04变得更好!
# demo06
name = input("Enter your name: ")
age = input("Enter your age: ")
print("Hi! My name is "+name+", and I am "+age)
执行结果:
>> Enter your name: Andy
>> Enter your age: 20
Hi! My name is Andy, and I am 20
这边有一个小问题要问你们,刚才的age要使用str()
转成字串型态,为什麽这里就不用了呢? 好好想一下并把答案写在留言区吧!
字串前面已经出现过了,但现在要讲字串使用上更多的技巧。
使用len()
得到字串的长度,回传的是一个数字。
将字串视为一个由字元所组成的列表(明天就会讲),每个数字都有索引值,索引值从0开始。
如果要取得第n个字元的话,就是str[n-1]
。
str[n:m]
可以切割从n到m-1的子字串。
str.replace("A", "B")
将字串中所有的"A"都取代成"B"。
str.split(",")
用逗号将字串分割成好几个小区块,并回传一个字串的阵列。
A+B
可以连接A和B字串。
# demo07
a = "Why not to learn "
b = "Python?"
print(len(a))
print(a[2])
print(a[4:7])
print(a.replace("learn", "teach"))
print(a.split(" "))
print(a+b)
执行结果:
17
y
not
Why not to teach
['Why', 'not', 'to', 'learn', '']
Why not to learn Python?
数学运算子可以对数字型态的变数作简单的数学运算,基本上就是你国小就会的加减乘除。
+
:加法-
:减法*
:乘法/
:除法%
:取余数**
:次方# demo08
x = 12
y = 4
print("x+y = "+str(x+y))
print("x-y = "+str(x-y))
print("x*y = "+str(x*y))
print("x/y = "+str(x/y))
print("x%y = "+str(x % y))
print("x**y = "+str(x**y))
执行结果:
x+y = 16
x-y = 8
x*y = 48
x/y = 3.0
x%y = 0
x**y = 20736
不管是什麽程序语言,写注解都是一个好习惯,不但可以帮助你日後看得懂当初在写什麽东西,也可以避免被同事白眼w
Python有两种注解,分别是单行和多行注解,功能上大同小异。
# 这是单行注解
"""
这是多行注解
"""
今天开始Python基础教学,从一开始的变数和资料型态,到後来的字串和数学运算子。因为篇幅的关系,你可能会觉得今天教的东西有点杂,但这其实是为了让你更快速的熟悉Python的语法哦!
明天要教的是Python的四种Collections,是非常好用的资料容器哦! 到底是哪四种呢? 就让我们继续 看 下 去~
一不小心发现Python有太多东西可以写了,所以Python的介绍应该会往後延长一天,对期待Python爬虫的朋友说声抱歉?。
如果喜欢这系列文章麻烦帮我按Like加订阅,你的支持是我创作最大的动力~
本系列文章以及范例程序码都同步更新在GitHub上,後续会持续的更新,如果喜欢也麻烦帮我按个星星吧~
有任何问题或建议,都欢迎在底下留言区提出,还请大家多多指教。
>>: Day 01-AWS Solution Architect Associate的铁人之旅行前会
Day6 开机学习 Lua - 标准函式库 上一回分享的是,Lua 变数型别与宣告 今天主题则是 L...
目前嵌入式软件,大部分都是烧录在DDR或SDRAM上面,过去的韧体烧录,非常麻烦,常常会失败,目前大...
开启visual studio code并且新增一个档案,将档案储存为html档,接下来在档案内输入...
这篇文章是来自同事的许愿,到底能不能不要安装那些 iTerm2、zsh、oh-my-zsh、字型等等...
JPEG概述 Joint Photographic Expert Group在1992年被评为国际标...