2. Python3基础丨在学Python3前你不得不知道的那些基础用法

标识符

在Python中,为了方便使用,你经常需要给一些变量和常量等数据取名字。这个名字就叫标识符,允许使用字母数字和下划线来组成。取名字的时候也不能瞎取,要注意两点:

1. 开头不能是数字

你大可使用字母、数字、下划线来构成一个标识符,甚至是随便混和使用。但是要注意不能以数字开头,因为会引起歧义。比如在你看来 5E3 完成可以当作一个普通的变量名,但是在计算机看来这也可能是科学计数法下的 5*10^3 ,为了避免让计算机懵逼,Python便做了一个禁止以数字开头命名标识符的规定。

2. 不能使用Python关键字

Python关键字是啥?就是系统预设的一些保留字,他们在Python中起着各式各样的功能。Python手下有35个元老身怀绝技又各不相同。当一个项目需要他们绝活的时候会直接叫一个名字,相应的元老就会出来发挥他们的特长了。但如果有重名的现象,叫名字的时候两个元老都会比较懵逼。

所以Python为了避免这种尴尬,也事先规定:Python里这35个元老的名字,谁也不能用。

我们可以执行一个这样的命令,来看看这35个元老的名单:

#import也属于35元老之一,他的作用是引用。在这里就是引用keyword这个模块
import keyword

 # 这里的意思是用keyword的模块来引用所有的关键词
keyword.kwlist

#按下回车 得到以下结果:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

为方便显示,我将着35个保留字摘录如下:

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

上面的列表就是35个Python保留字,记着给标识符取名的时候别撞名啦

注释

那上面那些 # 是干啥的呢?是用来给代码注释的,请大胆使用。因为在 # 后用来注释的内容在运行的时候均会被Python忽视。当注释文字较少时我们可以在注释文字前加一个 # ,当注释内容较多的时候我们可以用一对 ‘’’ 或者 “”" 来标注,例如:

"""
在中间写的任何东西都不会干扰代码的执行
在这里你可以写下关于前后代码的作用,方便以后在改代码的时候查找
"""

导入模块与函数

在刚才的代码中,我们注意到有一个 import 函数,与之对应的还有一个 from … import 函数,在本文中有必要介绍一下这两个导入函数。在Python中我们使用 import from … import 来导入相应的模块。在这里我们用涵盖所有数学运算的 math 模块来举例子:

当我们想引入整个Math模块时,我们用 import 模块名 来导入:

>>>import math

当我们只是想把Math模块下某个函数导入,例如可以求正弦值的sin函数,我们可以用 from 模块名 import 函数名:的方式来导入:

>>> from math import sin

当我们想把Math模块下多个函数都导入时,可以使用 from 模块名 import 多个函数名(用英文逗号分隔) 的方式:

>>> from math import sin, tan, log

当然只要我们想我们也可以用 from 模块名 import * 将Math函数下的全部函数导入:

>>> from math import *

这里需要注意的是, from 模块名 import * import 模块名 都可以将某个模块下的所有函数导入,但是引用函数的格式却各不相同:

import 模块名 下引用函数,需要使用 模块名.函数名() 的方式:

>>> import math
>>> math.sin(75)
-0.38778163540943045

而在 from 模块名 import * 的引用方式下,则可以直接使用:

>>> from math import *
>>> sin(75)
-0.38778163540943045

但是引用模块下整个函数时,有时会出现内置函数与用户自定义函数重名的情况导致运行错误,所以还是建议用什么函数导入什么函数比较好

基本数据类型

如果把Python看成一个大企业,除了刚才提到的35位元老还有6个部门。Python公司内的所有员工都可以被归到六个部门之一,六个部门下的部员们都有着属于他们部门的制服,一目了然。这六个部门分别是: Number(数字) Set(集合) String(字符串) List(列表) Tuple(元组)
Dict(字典)

数据类型的简单介绍

下面将简单介绍一下六类数据类型,这次只是为了先让大家眼熟它们长啥样,具体的内容和存在的疑问我们将分别在以后的文章内单独介绍它们。

1. Number(数字)

Number(数字) 这个大部门下,还有四个分队分别是: int(整数) float(浮点型) complex(复数)

a. Int整数型:就是整数,像12315、996等。
b. Float浮点型:就是带小数点的数,例如 13.7、18.0等。
c. Complex复数:即由数字和 j 两部分构成,例如 -1.23 + 3.21j 、0.0+0.0j 等。

例如:

>>> a = 12345 #这是整数型
>>> b = -123.45 #这是浮点型
>>> c = -12.3+4.5j  #这是复数型

2. String(字符串)

Python种的字符串用单引号或双引号括起来,例如:

>>> a = 'Think  #可以用单引号
>>> b = "THINKING"  #也可以用双引号

3.List(列表)

List是Python种使用最频繁的数据类型,是序列的一种。它的特征主要为:列表内的元素写在方括号 [] 之间,由逗号分隔:

>>> a = [12, 45, 'Think'] #List内可以包含多种数据类型

4.Tuple(元组)

Tuple与List相似,元组内的元素写在小括号 () 之间,元素之间用逗号分隔:

>>> a = (37.2, 'But') #Tuple内部也可以包含多种数据类型

5.Dict(字典)

Dict与Tuple、List都属于对象集合的一种,字典当中的所有元素都是通过键来存取。字典内的元素写在大括号 {} 里面,它是一个无序的关于 键:值 的集合:

>>> a = {'John':75, 'Izie':87, 'Kara':92}

6.Set(集合)

set由一个或多个整体组成的,Set里的元素写也在大括号 {} 里,也可以用过 set() 的方式来创建:

>>> a = {value1, value2} 
>>> set(value) 

刚才我们和Python中的六个部门老大见了第一面,现在我们还要顺便知道他们的派别:这六类数据类型基本可以分为顽固派维新派两派。

“顽固派”的数据类型一旦创建不可更改,除非重新定义。

“维新派”的数据类型创建后也可以随意删减、更新等。

我们在这篇文章中先只知道两派的人员名单即可:

顽固派:Number(数字)、String(字符串)、Tuple(元组)
维新派:List(列表)、Dictionary(字典)、Set(集合)

记住这两个派别,这是Python中一个影响深远的设定。

数据类型的转化

另外还要知道的一点是:不同部门下的部员们,是可以跳槽到别的部门的。只需要用Python内置的几个数据类型转换函数即可:

1. 简单转化:

浮点和整数之间的转化: int() float()
创建一个复数: complex(x,y)

>>> int(12.99)
12 #由结果我们可以看到整数转化并非四舍五入,而是直接舍弃掉小数点后的内容
>>> float(12)
12.0 #整数则转化为添加小数点后一位

2.序列之间的转化

让其他序列以元组的方式显示: tuple()
让其他序列以列表的方式显示: list()
让其他序列以可变集合的方式显示: set()
让其他序列以不可变集合的方式显示: frozenset()

a. 让其他序列以元组的方式显示:

>>> a = [1, 2, 3] 
>>> tuple(a) 
(1, 2, 3)

b. 让其他序列以列表的方式显示:

>>> b = (4, 5, 6) 
>>> list(b)
[1,2,3]

c. 让其他序列以可变集合的方式显示:

>>> c = [1, 8, 3]
>>> set(c)
{1,8,3}

d. 让其他序列以不可变集合的方式显示:

>>>  d = [1, 7, 4, 0]
>>> frozenset(d)
frozenset({1, 7, 4, 0})

3.其他转化

将一个整数转换为对应的ASCII字符: chr()
将一个字符转换为对应的十进制整数: ord()
将一个整数转化为十六进制字符串: hex()
将一个整数转化为八进制字符串: oct()

a. 将一个整数转换为对应的ASCII字符:

>>> chr(97)
'a'

b. 将一个字符转换为对应的十进制整数:

# ord函数和上面的chr函数配对:
>>> ord('a)
97

# 它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值
>>> ord('9')
57

# 如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
>>> ord('125') 
TypeError: ord() expected a character, but string of length 3 found

c. 将一个整数转化为十六进制字符串:

>>>hex(255)
'0xff'

d. 将一个整数转化为八进制字符串:

>>> oct(15)
'017'

这里需要知道的是,刚才所谓的转化方式都是将原来的内容以指定方式显示一遍,并没有在原数据上直接改,原数据不会发生变化

>>> a =[1,2,3] # 创建一个名为a的list
>>> tuple(a) # 将a用tuple方式显示
(1,2,3)
print(a)
[1,2,3] # a还是list

代码块和代码组

有接触过C语言的小伙伴会知道,在C语言中使用 { } 来表示一个代码块。所谓代码块,即在范围内的所有代码将作为一个整体来运行,它大体长这个样:

如果满足条件xxxx的话:
    先执行balabala…
    再执行balabala…
    然后输出balabala……
如果不满足条件xxxx的话:
    直接输出balabala……

图中标注的就是两个代码块,可以看到一行代码也可以构成代码块

除了代码块,Python中还有代码组这个概念,是由缩进相同的一组语句构成的代码块,例如:

如果满足这个条件:
    执行这一行的命令
如果不满足上面那个条件:
    就执行这个命令
如果上面两个条件都不满足:
    只好执行这个命令

上面这样,由多个缩进相同的代码块组成的就是代码组

语句的单、多行显示:

有时候我们输入的语句可能会很长怎么办?我们可以使用 \ 来分割语句组成多行语句:

注意是 \ ,不要和 / 弄混了。往往在 Enter 键上方。

既然可以将一行语句拆成多行,那可不可以把多行语句输在一行?当然可以,只需要在每两个语句之间加个分号 ; 分开就好了。例如:

a=12;b=13;c=a+b;print©

空行问题

在Python中可以打出一些空行来作为分隔两段功能不同的代码,便于日后代码的维护或重构。这里要单独说两点:

1.空行不属于Python语法的一部分:这就意味着,有空行和没空行都不会影响代码的运行。有些时候加入适当的空行会提高以后你读代码的可读性,但是你不加空行对程序本身也没有任何问题。

2.空行属于程序代码的一部分:空行不代表它不存在,只是这一行的内容为空。就像一本记满内容的本子,中间有一页空白不意味着这一页不属于这个本子了,而且这也空页也有相应的页码。

3.在Python中空行也计入行数,例如:

>>> # 这是第n(n∈N)行代码
>>>
>>>
>>> # 这是第n+3(n∈N)行代码

最后,这里准备以Python中两个最基础的操作结束本文:

Print输出和input输出

Print输出函数:

print为输出函数,格式为: print(‘输出内容’) ,例如我们要显示出 ‘开始学习Python’ 这个内容:

>>> print ('开始学习Python')
'开始学习Python'

注意: print 里面的内容需要用单引号括起来,逗号代表分隔

input输入函数:

input为键入函数,使用方法为 标识符 = input(‘输入提示语’)

试着写写吧:我的第一个爬虫!

编程的入门往往总是无聊的,太多理论知识而没有“我也能做出个什么来”这种有反馈的感觉,所以在本文文末我将带着大家写第一个爬虫文件:我们要写一个爬虫文件,让这个爬虫在运行后显示“请输入姓名:”,当我们输入姓名后,就会显示相应的 “xxx,欢迎开始学习爬虫!!!”,现在我们从构思开始:

首先运行这个爬虫后,要有一行字来引导我们输入。我们就可以先写一个输入语句,参考刚才上文说的 标识符 = input(‘输入提示语’) 输入函数的使用说明,我们开始照葫芦画瓢。

在输入内容之前,我们要保证输入的内容会存在某个地方,我们要给这个地方取一个名字。这个地方的名字(即标识符)可以随便取,但是要记得上文说过的不能用数字开头,既然是输入姓名就叫他 name 吧。提示语应该是 “请输入姓名:”,所以后半句应该是 input(‘请输入姓名:’) ,这样我们的第一行代码就写好了:

name = input('请输入姓名:')

现在可以输入了,接下来还要输出内容,所以确定是 print() 函数。再想想输出的是啥呢?一共有两部分:首先要输出 刚才输入的姓名 ,我们刚才已经把输入的内容赋给 name 这个标识符了,所以只要把 name 放进 print() 函数里就好。

然后还要输出一句 ‘欢迎开始学习爬虫!!!’ ,我们再将这个字符串放进 print() 语句里,记得用逗号把它与刚才的 name 分隔开。这时候调整一下显示的顺序,我们写出了第二条代码:

>>> name=input('请输入姓名:')
>>> print(name, '欢迎开始学习爬虫!!!')

完成!

今天的内容就到此为止,我们在回顾一下刚才学习过的内容吧:

  1. 标识符:不能以 _____ 开头,可以使用 _____ _____ _____ 三种来命名。
  2. Python中注释使用 __ , 对程序的运行是否有影响: 是/否
  3. 导入某个模块时,我们使用 _____ 的方式;导入某个模块下的某条函数时,我们可以使用 _____ 的方式;导入某个模块下的全部函数时共有2种方式,分别是 _____ _____
  4. 导入某个模块下全部函数时,引用函数的方式分别是: __________ 引用函数的方式是 __________ __________ 引用函数的方式是 __________
  5. 将多行代码置于一行显示的连接符为 ___ ,将一行代码拆解为多行显示的分隔符为 ___
  6. 空行是否计入行数: 是/否
  7. 写一个爬虫:运行程序后提示用户输入用户名与密码,用户回车后提醒用户“xxx(用户名),您已经成功注册!” (限制条件:用一行代码写出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值