人工智能第一章:Python语言基础+爬虫

本文介绍了Python编程语言的基础知识,包括起源、环境搭建(推荐使用Anaconda+PyCharm)、基础语法(如注释、缩进、变量、标识符、数据类型)以及环境配置中的Anaconda下载安装、PyCharm的使用。内容涵盖了Python的优缺点、环境搭建步骤、基础语法要点,是初学者入门Python的良好指南。
摘要由CSDN通过智能技术生成

交流群:942277506,问题答案:董长春

1 Python简介

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

1.1 起源

Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。龟叔从ABC语言看到希望,ABC语言是由荷兰的数学和计算机研究所开发的。龟叔也参与到ABC语言的开发。由于一系列原因ABC并没有快速传播使用。因此,龟叔开始写Python语言。

1.2 诞生

1989年,龟叔为了打发无聊的圣诞节,开始编写Python语言。1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。特点:“优雅 ”,“明确”,“简单”

1)官 网:https://www.python.org/

2)中文社区:http://www.pythontab.com/

1.3优缺点

优点:简单易学,代码简洁,脚本可拓展,可嵌入,库的支持非常丰富
缺点:运行速度慢,是c和java的以上的封装,代码不能加密(没有编译过程)

2 环境搭建与测试

解释器:Python3.7.x(最新3.8.x)
IDE:jupyter、PyCharm
工具包:Anaconda(内置python,jupyter)
两种环境搭建方式:
1.Python+pip(原生)
2.Anaconda(内容更加丰富,支持多种工具)

Anaconda是什么?
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

2.1 推荐环境:Anaconda+PyCharm

2.2 Anaconda下载安装

官网:https://www.anaconda.com/
选择个人开源版本下载安装包
在这里插入图片描述
在这里插入图片描述

下载安装包后,指定安装目录,凡以下没有特别说明的步骤一路下一步即可
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 PyCharm下载安装

官网https://www.jetbrains.com/pycharm/download/#section=windows下载社区版本即可
在这里插入图片描述
下载安装包后,指定安装目录,凡以下没有特别说明的步骤一路下一步即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此安装完成.

2.4 PyCharm的使用

安装完成后第一次打开会一路下一步直到

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认没有eclipse的keymap可以从plugins中搜索下载

2.5 第一个python程序

#!/home/app/python3.7.6
# -*- coding: utf-8 -*-
print("Hello World!!!")

注意:其中前两行内容为shebang(释伴) 在Unix为内核的系统中,必须要有shebang才能正确识别文件类型.第一行为解释器位置的声明,第二行为字符编码的声明,在windows系统中,文件都以后缀名识别,并且有默认应用和默认字符集的设置,所以在windows中这两行内容不生效.
在这里插入图片描述

3 基础语法

3.1 注释

1、单行注释

以井号(#)开头,右边的所有内容当做说明

2、多行注释

以三对单引号或者三对双引号将注释包含起来

# 这是一个单行注释
"""
    这是一个多行注释
"""
'''
    这也是一个多行注释,但是一般不做为第一个注释来使用
'''
print("Hello World!!!")

在这里插入图片描述

3.2 缩进

Python的语法比较简单,采用缩进的方式(严格)。

'''
    缩进:在python中,没有行位结束符,但同时对格式的要求也就比较严
    格,代码必须以缩进的方式维护格式,同时在运算符的前后应该加上空格
'''
a = 100
if a > 100:
    print("大于100")
elif a == 100:
    print("等于100")
else:
    print("小于100")

在这里插入图片描述

注意:

由于Python采用缩进的语法,在你复制,粘贴语句时,一定要注意,重新检查当前代码的缩进格式。

在Python中,对大小写十分敏感,如果大小写错误,会报错。

3.3 变量

变量指存放数据的容器(所有python支持的格式)

3.4 标识符

标识符是自己定义的,如变量名 、函数名等

标识符命名规则

1、只能包含字母、数字和下划线。变量名可以以字母或者下划线开头。但是不能以数字开头。

2、不能包含空格,但可以使用下划线来分隔其中的单词。

3、不能使用Python中的关键字作为变量名

4、建议使用驼峰命名法,驼峰式命名分为大驼峰(UserName)。和小驼峰(userName)。

常见关键字不可以作为标识符

import keyword
print(keyword.kwlist)

在这里插入图片描述

4 数据类型

在这里插入图片描述

可以用以下两种方式判断数据的类型

type()不会认为子类是一种父类类型。

isinstance()会认为子类是一种父类类型。

4.1 Number(不可变)

4.1.1 整数int

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样。

"""
    int
"""
i = 100
print(type(i))

4.1.2 浮点型float

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。

"""
    float
"""
f = 1.1
print(type(f))

4.1.3 复数complex

一个实数和一个虚数的组合构成一个复数。

"""
    complex
"""
c = 2 + 6j
print(type(c))

4.1.4 布尔bool

bool值是特殊的整型,取值范围只有两个值,也就是True和False。

"""
    bool 
"""
b = True
print(type(b))
print(isinstance(b, bool))

4.1.5 算数运算符

在这里插入图片描述

"""
    算数运算符
"""
i, j = 10, 3
print(i + j)
print(i - j)
print(i * j)
print(i / j)
print(i % j)
print(i // j)
print(i ** j)

4.1.6 赋值运算符

在这里插入图片描述

"""
    赋值运算符
"""
num, i = 5, 2
num += i
print(num)
num, i = 5, 2
num -= i
print(num)
num, i = 5, 2
num *= i
print(num)
num, i = 5, 2
num /= i
print(num)
num, i = 5, 2
num %= i
print(num)
num, i = 5, 2
num //= i
print(num)
num, i = 5, 2
num **= i
print(num)

4.1.7 比较运算符

定义a = 1, b = 2
在这里插入图片描述

4.1.8 逻辑运算符

在这里插入图片描述

4.1.9 位运算符

定义a = 60, b = 13
在这里插入图片描述

"""
    位运算符
"""
a, b = 4, 2
'''
    0000 0100 4
    0000 0010 2
    0000 0000 0
'''
print(a & b)

'''
    0000 0100 4
    0001 0000 16
'''
print(a << b)

4.2 String(不可变)

字符串就是一系列任意文本。Python中的字符串用单引号或者双引号括起来,同时可以使用反斜杠(\)转义特殊字符。
单引号(’’)和双引号(“”)本身只是一种表示方式,不是字符串的一部分,因此,字符串’hello’只有h,e,l,l,o这五个字符。如果’本身也是字符的话,那么就可以用””括起来,比如”I’m OK” 当中包含了一个 ’ 。如果字符串内部包含 ’ 或者 ” ,但是又想当成普通字符串处理怎么办?这个时候就要用转义字符(\)来标识。

4.2.1 字符串的声明

"""
    字符串的声明:单双引号都可以声明字符串,互相嵌套不需要转义,同符号嵌套需要使用'\'转义,
    当希望字符串中的'\'只作为普通字符展示时,在字符串前加'r'
"""
s0 = 'Hello'
s1 = "World"
s2 = '我说了:"你好!",I\'m cc'
print(s1+s2)
s3 = r"do\ngcc"
print(s3)

注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。

4.2.2 字符串的下标

"""
    字符串的下标:正数从0开始,倒数从-1开始
"""
s3 = "abcdef"
print(s3[2])
print(s3[-2])

4.2.3 字符串的截取

变量[头下标:尾下标:步长]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PL6i59Xp-1592883706298)(C:\Users\87784\AppData\Roaming\Typora\typora-user-images\image-20200623113620453.png)]

"""
    字符串的截取:s4[头下标:尾下标:步长] 对于[头下标:尾下标]遵循左闭右开的原则
"""
s4 = "abcdef"
print(s4[1:5])  # bcde
print(s4[1:5:2])    # bd
print(s4[-4:-1])    # cde
print(s4[-1:-4:-1])  # fed
print(s4[::-1])     # fedcba

4.2.4 字符串的拼接

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。

"""
    字符串的拼接:'+'可以将两个字符串进行拼接,'*'用来多次复制某个字符串
"""
s6 = "Hello"
print(s6+"Python")  # HelloPython
print(s6*3+"Python"*2)  # HelloHelloHelloPythonPython

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZIlgUz1k-1592883706299)(C:\Users\87784\AppData\Roaming\Typora\typora-user-images\image-20200623113641040.png)]

4.2.5 格式化输出

在这里插入图片描述

"""
    格式化输出
"""
name = "董长春"
age = 18
address = "张家口"
wind = 5.5
print("大家好,我叫" + name + ",今年" + str(age) + "岁了,来自" + address + "一个常年刮着" + str(wind) + "级大风的地方")
print("大家好,我叫%s,今年%d岁了,来自%s一个常年刮着%.1f级大风的地方" % (name, age, address, wind))

4.2.6 字符串的常用函数

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

"""
    字符串中的常用函数
"""
# find:查找字符串内是否包含指定内容,如果是,返回位置,否,返回-1
s7 = input("请输入一个字符串:")
print(s7.find('dong'))

# index:查找字符串内是否包含指定内容,如果是,返回位置,否,报错
s7 = "Hi, my name is dongcc"
# print(s7.index('q'))

# 略

4.3 List(可变)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
嵌套列表以多级索引进行访问.

"""
    列表的定义
"""
my_list = [123, "hello", "cc", [123, 456]]

"""
    列表的访问
"""
print(my_list[0])   # 123
print(my_list[3][1])    # 456

4.3.1 列表的截取

列表截取的语法格式如下:

变量[头下标:尾下标:步长]

索引值以 0 为开始值,-1 为从末尾的开始位置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VUtyey5-1592883706300)(C:\Users\87784\AppData\Roaming\Typora\typora-user-images\image-20200623113714708.png)]

"""
    列表的截取:与字符串截取一样list[头下标:尾下标:步长]
"""
my_list = [1, 2, 3, 4, 5, 6]
print(my_list[2:5:2])

4.3.2 列表元素的’增删改查’

4.3.2.1 增加元素
"""
    增加元素
"""
# 列表后追加
my_list = ["hadoop", "flink", "spark"]
my_list.append('python')
print(my_list)  # ['hadoop', 'flink', 'spark', 'python']

# 列表中指定位置插入
my_list = ["hadoop", "flink", "spark"]
my_list.insert(2, 'tensoflow')
print(my_list)  # ['hadoop', 'flink', 'tensoflow', 'spark']
4.3.2.2 删除元素
"""
    删除元素
"""
# pop():用于移出列表中的一个元素(默认是最后一个元素),可以指定元素索引,并且返回该元素的值。
my_list = ["hadoop", "flink", "spark"]
print(my_list.pop())
print(my_list)  # ['hadoop', 'flink'] 默认删除最后一个元素
my_list.pop(0)
print(my_list)  # ['flink'] 也可以指定下标删除

print('='*50)
# del:通过列表索引删除某个元素,元素一旦被删除之后就再无法访问,如果不指定索引将会删除整个list
my_list = ["hadoop", "flink", "spark"]
del my_list[0]
print(my_list)  # ['flink', 'spark']
del my_list     # 整个列表被删除
# print(my_list)  # 报错:NameError: name 'my_list' is not defined

print('='*50)
# remove():通过元素值删除list中与之匹配的第一个元素,如果没有这个元素则会报错
my_list = ["hadoop", "flink", "spark", "hadoop"]
my_list.remove("hadoop")
print(my_list)  # ['flink', 'spark', 'hadoop']
4.3.2.3 修改元素

修改元素的方式非常简单,就是拿到某个元素后重新赋值的过程.

"""
    修改元素:修改列表元素的语法和访问列表元素的语法类似,指定列表名和要修改元素的索引,再指定新值
"""
my_list = ["hadoop", "flink", "spark"]
my_list[2] = "scala"
print(my_list)  # ['hadoop', 'flink', 'scala']
4.3.2.4 查找元素

这里的查找是指查看list中是否存在指定的元素.

"""
    查找元素:查找指定的元素是否存在,包括两种:in 和 not in
"""
my_list = ["hadoop", "flink", "spark"]
print("hadoop" in my_list)  # True
print("hadoop" not in my_list)  # False
4.3.2.5 其他操作

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

"""
    其他操作
"""
list01 = [1, 2, 3, 4]
list02 = [5, 6]
print(list01 + list02)  # [1, 2, 3, 4, 5, 6]
print(list01 * 2)   # [1, 2, 3, 4, 1, 2, 3, 4]

4.3.3 列表的常用函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

"""
    列表常用函数
"""
my_list = ["hadoop", "flink", "spark", "flink"]
ext_list = ["scala", "kafka"]
print(len(my_list))  # 4
print(max(my_list))  # spark
print(min(my_list))  # flink
print(my_list.count("flink"))
my_list.extend(ext_list)
print(my_list)  # ['hadoop', 'flink', 'spark', 'flink', 'scala', 'kafka']

4.4 Tuple(不可变)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改,所以不能新增修改或者删除单个元素。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同.

4.4.1 元组的声明

"""
    创建元组:以小括号的方式定义,元素类型任意
"""
in_list = [1, 2, 3]
my_tup = (1, 2, 3, 4, "tuple", in_list)
print(my_tup)

4.4.2 元组的访问

"""
    元组的访问:元组的访问与String,list相同,通过下标的方式来进行元素的读取
"""
my_tup = (1, 2, 3, 4, "tuple", ("a", "b", "c"))
print(my_tup[5][1])  # b

4.4.3 元组的截取

"""
    元组的截取:元组的截取与String,list相同,通过[头下标:尾下标:步长]操作
"""
my_tup = (1, 2, 3,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值