邢台哪里做网站,kotlin做网站,营销活动方案内容,如何提升网站访问速度简介
当问答网站基本框架搭建完毕之后需要一些初始的数据来进行填充#xff0c;因此选用Python爬虫的方式#xff0c;从网上截取一些资料信息#xff08;当然是自己做项目使用#xff0c;非商用#xff09;放入到项目网站上面。这篇主要是关于Python基础知识的学习笔记。…简介
当问答网站基本框架搭建完毕之后需要一些初始的数据来进行填充因此选用Python爬虫的方式从网上截取一些资料信息当然是自己做项目使用非商用放入到项目网站上面。这篇主要是关于Python基础知识的学习笔记。 Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。它具有以下特点
语法简单便于初学者学习易于理解同时也方便维护。广泛的标准库具有丰富的库跨平台性兼容性好。可移植性基于开放源代码的特性可以移植到多种平台。可拓展性可以用其他方式编写代码比如c等然后在Python中调用。数据库 提供了所有的商业数据库。
当然还会有一些其他特性这些特性也不是我自己总结的详细的内容你可以参照下面链接进行深入学习。 Python3教程 | 菜鸟教程 https://www.runoob.com/python3/python3-intro.html Python环境搭建及IDE安装
要学习Python首先应该在你的操作系统上面搭建python的运行环境对于本项目我们选用了安装windows版Python3当然Python3和之前的Python2.x版本相比发生了一些变化比如print函数、除法运算、异常等如果您想深入了解可以通过下面链接深入学习Python3与Python2.x的区别 你可以通过下面链接直接通过Python官网下载Python官网 具体的Python安装步骤以及环境搭建教程可以参考Python安装教程 当你参照上面教程安装好Python之后打开cmd输入
python会显示你安装Python的版本号等一些信息如果显示Python为外部命令说明你并没有安装成功那么请检查你是否是不是将Python添加到环境变量当中或者你下载的是否版本与你的操作系统是否匹配从网上你会找到相应的解决方案。
当然你可以通过命令行的形式编译运行Python程序但有时候并不是很方便因此我们可以通过通过一些集成开发环境来运行Python程序在本项目中我选用了PyCharm因为我在编写java程序时就选用了同一家公司生产的IntelliJ IDEA 感觉比较好用。下面是是PyCharm的下载地址以及安装教程地址 PyCharm下载地址PyCharm下载链接 PyCharm安装教程PyCharm安装教程链接 安装完毕之后如果你没有使用正版你可以从网上查找最近的密钥完成激活当你这些步骤都操作完毕之后你就可以使用PyCharm然后尝试建立自己第一个Python项目了。
可以仿照下面的顺序建立自己的第一个Python项目New Project -编写项目路径 - New - Python File 另外当你编写Python代码时可能每次都需要写下它的解释器路径信息以及字符集即是
#!/usr/bin/env python
#-*- coding:utf-8 -*-比较麻烦你可以将它们放到模板当中这样每次它都会自己加上不需要自己在加上 File - Settings - Editor - File and Code Templates - Python Script - 添加上面两句代码即可 做完这些你就可以我们就开始python学习了。
Python基础语法
中文编码
Python默认的编码是ASCII编码因此中文无法进行正常打印读取中文时会发生错误因此需要修改编码格式采用通用的utf-8编码只需要在开头加入
#-*- coding:utf-8 -*-我们在上面模板已经加入因此不需要再添加。
标识符
Python的标识符是由字母、数字、下划线组成不能以数字开始同时严格区分大小写。而以下划线开始结尾的在Python都具有特殊的含义
以单下划线开头的代表不能直接访问的类属性需要通过类提供的接口访问类似于java中的getter方法。以双下划线开始的代表类的私有成员。以双下划线开始同时双下划线结尾的代表Python的特殊方法的标识比如类的构造函数__init__().
保留字
Python的保留字代表语言中已经定义使用的用户不能再使用的标识符所有的Python关键字只包含小写字母。
import keyword
print(keyword.kwlist)可以通过上面的代码打印Python的关键字。
[False, None, True, and, as, assert, 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]空行与缩进
刚开始学习写Python代码时感觉有些不适用Python不需要通过大括号来控制类、函数、以及一些逻辑判断仅仅通过缩进类进行操作。相同的代码块必须使用相同的缩进尺寸否则将会报错或者得到想象不到的结果。 Python通过空行来区分函数或者类但是空行并不是Python的语法因此不加空行也不会报错加空行是为了后期维护。
print(hello Python 1)print(hello Python2)将会出现下面的错误 File F:/pythonstudy/test1.py, line 4print(hello Python2)^
IndentationError: unexpected indent多行语句及一行多条语句
Python是以一个新行作为一条语句的结束但是当你的一条语句过长时想使用另起一行书写时应该使用反斜杠( \ ) 连接如果你想换行书写的内容在括号内那么久不需要添加反斜杠进行连接了。 另外当一行需要书写多条语句时可以通过分号进行分割。
注释
Python的注释有三种
单行注释 以 # 开始这一行就会被注释。多行注释 可以使用6个双引号“注释内容” 或者6个单引号’’’ 注释内容’’’
# 单行注释多行注释1多行注释2引号
Python可以使用单引号、双引号、三引号或者’’’表示字符串但是引号开始和结束的必须是相同的数据类型三引号可以表示多行字符串而且使用三引号输出与你输入的格式一样可以用来写一些html程序文本。
str1 hello Python
str2 hello Python
str3 hello
Python
str4 hello
Python
hello Python
hello Pythonprint(str4)结果为
hello
Python
hello Python
hello Pythonprint函数
感觉Python的print函数很强大它会自己识别你要打印的变量类型进而选择对应的print重载函数进行打印操作。另外print函数默认输出换行如果你不想换行那么你需要在变量末尾添加end。
print(hello Python 1)
h1 10
h2 True
print(h1, h2)
print(h1, end)
list1 [hello, 1, Python]
print(list1)输出结果为
hello Python 1
10 True
10[hello, 1, Python]import 及 from … import
在Python中引入某个模板使用import和java中一致不同的是Python中还有from…import的用法
导入整个模板import 模板名导入某个模板中的某个函数from 模板名 import 函数名导入某个模板中多个函数 from 模板名 import 函数1名,函数2名导入某个模板中全部函数可以使用通配符from 模板名 import *
Python基本数据类型
变量赋值
与java或者c不同Python的变量不需要声明但是在使用前必须赋值这有些像Matlab语言的使用变量赋值之后才会被创建而且对于Python来说变量没有类型也即是在内存中的对象的类型。
使用等号对变量赋值。可以使用连等号对多个变量赋值同时也可以使用一个等号对多个变量赋值。
h 0
h1 h2 h3 1
h4, h5, h6 2, True, hello Python标准数据类型
Python共有六个标准数据类型
Number 数字String 字符串List 列表Tuple 元组Set 集合Dictionary 字典 同时这六种标准数据类型又可以分成两大类不可变数据Number、String、Tuple可变数据List、Set、Dictionary
顾名思义不可变数据就是一旦创建你不可以修改其中的元素而可变数据你可以修改变动其中的元素。
Number
Python共支持四种数字类型变量
int 整型float 浮点型bool 布尔型complex 复数型 看到复数型再次感到Python的便捷你可以通过type()函数进行判断一个变量的数据类型或者通过isinstance来判断
print(type(h))
print(isinstance(h, int))区别在于
type() 判定子类不属于父类型ininstance() 判定子类是父类型
需要注意的是
Python3中bool型数据也是一种数字True和False代表着1和0可以进行数字运算你可以使用 del 删除单个或者多个变量 del 变量名1, 变量名2一个变量可以使用赋值指向不同类型的变量因为没有声明所以不会出现向java或者c中的类型错误Python的除法/ 返回一个浮点型 // 返回一个整型混合运算时Python会把整型变成浮点型
常用的函数 用于数学计算的
函数返回值描述abs(x)返回数字x的绝对值ceil(x)返回数字x的的上入整数exp(x)返回e的x的次幂fabs(x)返回数字x的绝对值返回浮点值floor(x)返回数字x的下舍整数log(x)返回数字x的对数可以添加底的值e或者10log(x,e)或者log(x,10)log10(x)返回数字x的以10 为底的对数max(x)返回序列x的最大值min(x)返回序列x的最小值modf(x)返回数字x的整数部分和小数部分整数部分为浮点值pow(x,y)返回数字x的y次幂round(x,n)返回数字x的四舍五入n位sqrt(x)返回数字x的开根号
用于随机函数的
函数返回值描述choice(seq)从seq序列中随机挑选出来一个randrange(start,stop,step)从指定范围内按照指定基数递增的集合中随机选取一个数random(x)在 (0,1) 之间随机生成一个数seed(x)改变随机数生成器的种子seedshuffle(x)将序列中的元素随机排序uniform(x,y)在 [x,y] 之间随机生成一个数
用于三角函数
函数返回值描述cos(x)返回x的余弦值sin(x)返回x的正弦值tan(x)返回x的正切值asin(x)返回x的反正弦弧度值acos(x)返回x的反余弦弧度值atan(x)返回x的反正切弧度值degrees(x)返回弧度x的角度值radians(x)返回角度x的弧度值
另外还有一些常量值
常量描述pi圆周率e自然常量
String
Python只用单引号或者双引号或者 \ 进行转义特殊字符。 Python中字符串的索引值采用两种
从前面开始为0 1 2 3…从后面开始为-length,…, -2, -1
另外可以使用中括号进行字符串的截取
str helloPython
print(str) # 打印整个字符串
print(str[0:-1]) # 打印第一个到倒数第二个
print(str[0]) # 打印第一个
print(str[2:5]) # 打印第三个到第五个
print(str[2:]) # 打印第二个之后的包含第二个
print(str * 2) # 重复打印字符串
print(str nihao) # 字符串的连接对于特殊字符的转义可以采用反斜杠如果你不想进行转义可以在字符串前面添加字母r
print(hello\nrunoob)
print(rhello\nrunoob)
Python的一些转义字符
转义字符描述\ (在行尾)续行符\ \反斜杠\ ’单引号\ 双引号\ n换行\ r回车\ f换页\000空\oyy八进制数yy代表字符\ xyy十六进制数yy代表字符
例如
print(\o12)
print(\x0a)另外Python可以进行格式化输出类似java中的String.format函数。下面列举了一些常用的格式化符号
符号描述%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整数%f格式化浮点数可以指定小数点后的精度
例如
ee 11.55555
print(ee 的数值为%.2f % ee)结果为
ee 的数值为11.56Python中String还有一些常见的内建函数 在这里列举几种常用的
序号方法及描述1count(str, start, end) 返回在指定范围内str重复的次数2find(str, start, end) 返回在指定范围内str是否存在若存在返回索引值否则返回-13index(str, start, end) 与find一样但是如果str不存在会报异常4len(str) 返回字符串的长度5lower(str) 将str都变为小写6rstrip(str) 删除字符串末尾的空格7split(s, str) 将s以str切割8upper(str) 将str变成大写9join(seq) 将序列seq以指定的符号连接变成大写10lstrip(str) 删除字符串开始的空格
import keyword
print(\n.join(keyword.kwlist))List
类似于java中的List或者c中的vector不同的是Python中的List不存在类型检查你可以在一个列表中添加不同类型的数据甚至添加另一个列表列表的元素可以修改变化。它的索引值定义和String一样索引值以0位开始值-1位末尾的开始位置同样可以使用中括号来获取变量
# 和String的含义一样
list1 [1, 2, 3]
list2 [6, 7, 8]
list [abc, 1, 2, 3, 4, list1, True]
print(list)
print(list[0])
print(list[0:3])
print(list[3:])
print(list * 2)
print(list list2)
print(list[1:6:2]) # 从第2个元素开始到第7个元素以步长为2选择不包含第7个元素结果为
[abc, 1, 2, 3, 4, [1, 2, 3], True]
abc
[abc, 1, 2]
[3, 4, [1, 2, 3], True]
[abc, 1, 2, 3, 4, [1, 2, 3], True, abc, 1, 2, 3, 4, [1, 2, 3], True]
[abc, 1, 2, 3, 4, [1, 2, 3], True, 6, 7, 8]
[1, 3, [1, 2, 3]]Python中List函数
序号函数1len(list) 列表的元素个数2max(list) 列表的元素最大值3min(list) 列表的元素最小值4list(seq) 将元组转化为列表5list.append() 在列表最后添加一个元素6list.count() 列表元素的个数7list.extent(seq) 在列表最后添加一个序列8list.index(obj) 返回obj的索引9list.insert(index, obj) 在列表index插入一个元素10list.pop() 弹出列表最后位置的元素11list.remove(obj) 将obj从列表中移除12list.reverse() 反转列表13list.sort() 排序14list.clear() 清空列表15list.copy() 复制列表
Tuple
可以看做是元素不可以变化的List有以下几点区别:
元素不可以修改元素写在小括号中构造空元组或者一个元素的元组需要注意特殊写法
tuple1 () # 空元组
tuple2 (1,) # 一个元素元组
tuple3 (1, 2, hello, True, tuple1)
tuple4 tuple2 tuple3Set
Python中的Set是由一个或者多个形态各异的大小整体组成构成了集合的事物或者对象被称为元素或者成员。可以进行成员的关系测试或者删除重复的元素。使用大括号或者set() 函数创建需要注意的是创建一个空集合必须用set函数因为{ }是创建一个空字典。
set1 {hello, Python, 1, True, Hi}
# 关系测试
if hello in set1:print(Yes)
else:print(No)# 集合运算
setA set(abcd)
setB set(cdef)
print(setA - setB) # 差集
print(setA | setB) # 并集
print(setA setB) # 交集
print(setA ^ setB) # 两个集合不同时存在的元素结果是
Yes
{b, a}
{d, f, b, a, e, c}
{d, c}
{f, a, e, b}Python中Set的内置函数
序号函数1add() 添加一个元素2clear() 清空所有元素3discard() 删除指定元素4difference() 返回多个集合的差集5intersection() 返回集合的交集6issubset() 判断是不是子集7symmetric_difference() 返回两个集合不重复的元素8remove() 删除指定元素若不存在发生错误9pop() 随机删除一个元素10update() 添加元素
Dictionary
Dictionary字典是一种无序的对象集合它保存的是键值对通过键来取值和java中的map有些类似。
key必须是不可变类型变量大括号进行标识同一个字典中键需要唯一创造空字典使用 { }
其中key必须是不可变类型变量通过大括号进行标识同一个字典中键需要唯一。
dictionary1 {key1: hello1, 1:hello2, key3:hello3}
print(dictionary1[key1])
print(dictionary1[1])
print(dictionary1)
print(dictionary1.keys())
print(dictionary1.values())
print(dictionary1.__len__())
dictionary1[key4] 4 # 为字典添加新的元素可以使用dict() 直接根据键值对序列构造字典
dictionary2 dict([(key1, 1), (key2, 2), (key3, 3)])
print(dictionary2)Python中Dictionary的内置函数
序号函数1dic.clear() 清空字典中元素2dic.get(key) 获得键为key的value3dic.items() 返回字典的键元组数组4dic.keys() 返回一个迭代器可以用list() 来转化列表5dic.updata(dict) 将键值对更新到字典中6dic.values() 返回一个迭代器可以用list() 来转化列表7pop(key) 删除字典给定key对应的值返回被删除的value
Python数据类型转换
当需要将一个数据类型转化为另一个数据类型时只需要将你要转化的数据类型当做函数名就好
函数描述int(x)将x转化为一个整数float(x)将x转化为一个浮点数complex(realimag)创建一个复数str(x)将x转化为字符串eval(x)计算字符串中有效的Python表达式repr(str)计算字符串中有效Python表达式返回一个对象tuple(x)将x转化为一个元组list(x)将x转化为一个列表set(x)将x转化为一个可变集合dict(x)创建一个字典其中x必须是keyvalue 的元组frozenset(s)将s转化不可变集合chr(x)将整数x转化为一个字符ord(x)将字符x转化为一个整数hex(x)将整数x转化为它的十六进制字符串oct(x)将整数x转化为它的八进制字符串
x 3
print(eval(x 4))7Python运算符
Python支持以下几种运算符
算术运算符
运算符描述加法-减法*乘法/除法返回浮点型%取模**幂x**y返回x的y次幂//取除法结果的整数部分若分子分母有一个是浮点数则结果也为浮点数
比较运算符
运算符描述比较两个对象是否相同!比较两个对象是否不相同是否大于返回True或者False是否小于返回True或者False是否大于等于返回True或者False是否小于等于返回True或者False
赋值运算符
运算符描述算术运算符比如、-等表示先进行算术运算然后把结果返回给变量:海象运算符用于表达式内部为变量赋值。Python3.8增加
逻辑运算符
运算符描述and逻辑与返回True或者Falseor逻辑或返回True或者Falsenot逻辑非返回True或者False
位运算符
运算符描述按位与|按位或^按位异或~按位取反 这是一个单元运算符左移运算符高位丢弃低位补0右移运算符低位丢弃高位补0符号位不变
成员运算符
运算符描述in如果在指定的序列中返回True否则返回False包括字符串、列表或元组not in如果不在指定的序列中返回False否则返回True包括字符串、列表或元组
身份运算符
运算符描述is判断两个标识符是不是引用同一个对象is not判断两个标识符是不是引用不同对象
另外需要注意的是id() 函数用于获取对象的内存地址。
def isSame(aa, bb):if aa is bb:print(aa is bb)else:print(aa is not bb)if id(aa) id(bb):print(id(aa) id(bb))else:print(id(aa) ! id(bb))aa 10
bb 10
isSame(aa, bb)
bb 20
isSame(aa, bb)
结果为
aa is bb
id(aa) id(bb)
aa is not bb
id(aa) ! id(bb)运算优先级
Python运算符优先级与其他语言相似由高到低
运算符描述**幂~ - 按位取反 一元加法减法* / % //乘、除、取模、整除 -加减 右移 左移位与^ |位异或或 比较运算符 !等于运算符 算术运算符赋值运算符is is not身份运算符in not in成员运算符not and or逻辑运算符
Python语句
条件控制
与java或者c中一样就是需要注意if-elif-else之间的匹配还有就是各个语句之间的缩进
mn 10
if mn 100:print(mn)if mn 20:print(mn)elif mn 30:print(mn)else:print(mn)
elif mn 200:print(mn)
else:print(mn)循环语句
while-else循环语句
num 1
while num 10:-num
else:print(num)for-else循环语句
listS [A, B, C]
for num1 in listS:print(num1)
else:print(Have null)同时for可以与range() 函数结合使用
for ii in range(5):print(ii, end )结果是
0 1 2 3 4 需要注意的是continue和break的使用与java和c一样
continue跳出本次循环执行下一次循环break直接跳出循环
还有一个pass() 函数用来占位使用是空语句是为了保证代码的完整性。
总结
这是一篇关于Python的学习笔记许多内容都是借鉴别人的都比较简单的只是好多内容和java或者c都有重叠还有好多深入的东西没有介绍以后会补充。最后感谢菜鸟教程提供的学习资料。 Python3 教程 | 菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html