文章目录

  • 一.文章出处
  • 二.基础语法
    • 2.变量与常量
    • 3.输入与输出
    • 4.赋值与表达式
  • 四.数据类型
    • 1.数字类型
    • 2.字符串类型
    • 3.列表类型
    • 4.元组类型
    • 5.字典类型
  • 五.字符串操作

一.文章出处

本文主要学习参考 杨老师的教程

更加详细请转至原文出处:https://blog.csdn.net/Eastmount/article/details/108172132

主要是对老师的课程学习,笔记,记忆。希望多多支持杨老师

Python

Python程序员成长路线图,包括:基础语法–>语感训练–>课题练习–>分方向继续学习–>中级程序员–>拓展深度和广度–>高级程序员。


老师推荐课程:MOOC北理工嵩天老师的视频和runoob语法

https://www.icourse163.org/course/BIT-268001
https://www.runoob.com/python/python-intro.html

爬虫学习不可或缺,主要学习以下的爬虫方向。

Urllib、Requests、BeautifulSoup、XPath、Selenium、Scrapy、分布式爬虫

Python可视化分析(词云)、微信操作、邮箱发送等功能。

  • 人工智能方向:包括机器学习(回归 | 聚类 | 分类)、深度学习(TensorFlow | Keras | Pytorch)学习,建议结合实际科研或项目进行深入研究
  • 图像识别方向:包括图像处理、OpenCV、模式识别、机器学习、深度学习、目标检测学习,也建议结合实际科研或项目进行深入研究
  • 其他方向学习:Web网站开发、网络安全、自动化测试、应用程序编写

老师说的话十分的刻骨

学习路上没有捷径,只有坚持,但你却能通过Python不断提升你的学习兴趣
If not now, when? If not me, who?
如果不是为了自己奋斗,又是为谁;如果不是现在奋斗,什么时候开始呢?

自己常常用这句话激励自己,每当自己学习久了,确实需要缓一缓,累了就告诫自己要努力,时光有限,不负韶华。

三更灯火五更鸡,正是男儿读书时
黑发不知勤学早,白首方悔读书迟

二.基础语法

2.1缩进与注释
缩进

在python之中用缩进来表明代码之间的层次从属,关系。一般4个空格就表示一个缩进。等于一个tab

Python引号

python中的引号有三种分别是单个引号,双引号,三个引号。单引号开始就要单引号结束,双引号也相同。但是这两者的内容不能够换行,三引号里面的内容可以换行。

word1 = '你好'
word2 = "Hello World"
word3 = '''你好,我好,大家好。
'''
print(word1,word2,word3)

注释
注释的用来揭示代码的含义,一般注释分为两种,一种是行注释

#我是注释
print('hello world') #我也是行注释

另一种就是块注释,块注释一般是用来解释整体代码的运行目的和注意事项,所以内容可以能比较长,一般用三引号’’’ ‘’’’

'''
解释代码作用
'''
print('hello world')

多行语句
Python语言中代码很长不容易阅读的时候,可以将用反斜杠将代码分行,一行被分为两行后,人方便阅读,计算机仍然将其作为一行代码执行

word1 = '你好'
word2 = '我好'
word3 = word1 + \word2

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

list1 = ['hello','word']

2.变量与常量

变量
变量的命名规则:

  • 变量名是由英文的大小写、数字和下划线(_)组合而成的。
  • 变量名的开始的第一个字符必须是字母或下划线(_),不可以是数字开头。
  • Python中的变量是区分大小写的,只要长得不一样那就是两个不同的变量。
  • 在Python中对变量进行赋值时,使用单引号和双引号是一样的效果。
    关键词不能用于声明变量,如下:

‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’,
‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’,
‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’,
‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’

常量
常量是指程序中值不发生改变的元素,一旦初始化后就不能对其修改的固定值,它是内存中用来保存固定值的单元。

3.输入与输出

输出
输出使用print()函数实现。

如果想要输出多个值,多个值之间用英文逗号连接,print(a,b,c)

Python的格式化输出,可以借助format函数实现调用传值

word1 = '你好'
word2 = "Hello World"
word3 = '''你好,我好,大家好。
'''
print(word1,word2,word3)
print(format(word1))

“6.2f”表示输出6位数值的浮点数,小数点后精确到两位,输出值的最后一位采用四舍五入方式计算。
“.2%”表示输出百分数,保留两位有效数字。
如果想输出整数直接使用“.0f”即可。


输入
Python的输入的input()函数。

  • input()
    input()函数从控制台获取用户输入的值,格式为:<变量>=input(<提示性文字>)。获取的输入结果为用户输入的字符串或值,并保存在变量中。输入字符串和整数实例如下,其中type()函数用于查找变量的类型。
str1 = input("input:")
input:"I am a teacher"
print(str1)
I am a teacher

4.赋值与表达式

赋值
编程语言中的等号’=‘表示的是赋值操作,’==‘才是等于,例如给一个变量赋值可以是 temp = ‘hello’。

Python中支持对多个变量的复制,表达式如下:

  • <变量1>,<变量2>,…,<变量n> = <表达式1>,<表达式2>,…,

先运算右侧N个表达式,然后同时将表达式结果赋给左侧变量。举例如下:

a,b,c = 10,20,(10+20)/2
print(a,b,c)

果然是先算右边的

表达式
表达式是程序中产生或计算新数据值的一行代码,。定义表达式注意一下几点:

  • 使用变量之前必须对其赋值,使用赋值表达式对其赋值。
  • 表达式也需要遵循句首缩进规律,且不能改变其空格数量。
  • 表达式中可以适量增加空格,使程序可读性更高,但空格不能分割变量的命名方式,比如“a = b + c”,在运算符之间适当增加空格。

四.数据类型

1.数字类型

Python常见的数字类型包括整数类型、浮点数类型、复数类型。

  • 整数类型:对应的数学中的整数,其返回类型为int型,如10、25等;long为长整型,也可以代表八进制和十六进制。

  • 浮点数类型:带有小数点的数字,返回类型为float型。

  • 复数类型:Python复数分为两部分,形如a + bj,其中a为实部,b为虚部,返回类型为complex,例如-12.3 + 8j。复数可以通过.real获取实部数据,.imag获取虚部数据。

>>> z = -12.3 + 8j
>>> print(z, type(z))
(-12.3+8j) <type 'complex'>
>>> print(z.real, z.imag)
-12.3   8.0

Python中数字类型可以相互转换:

  • 浮点型用int()函数转换为整数,如int(3.14)返回结果3。
  • 整数调用float()转换为小数,如float(3),返回结果是3.0。
  • 浮点数调用complex()函数转换为复数。

2.字符串类型

字符串类型在Python中是指需要用单引号或双引号括起来的一个字符或字符串。该类型调用type(‘Python’)返回的结果是str类型。一般记为:

  • s=“a1a2···an”(n>=0)

字符串表示一个字符的序列,其最左端表示字符串的起始位置,下标为0,然后依次递增。字符串对应的编号称为“索引”,比如str1=‘Python’,则str1[0]获取第一个字符,即“P”字母,并且字符串提供了一些操作和函数共用户使用,比如len(str1)计算字符串长度,其返回结果为6。

counter = 100         #赋值整型变量
miles = 1000.0        #浮点型
name = "Eastmount"    #字符串

python的字串列表有两种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

获取一段子字符串,可以使用切片操作 [头下标:尾下标] 来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

注意包前不包后

比如:

s = 'abcdef'
s[1:5]
>>> 'bcde'

3.列表类型

列表是在中括号([ ])中用逗号分隔的元素集合,列表中的元素可以通过索引进行单个访问,列表的每个元素之间是有序的。例如:

list1 = [1, 2, 3, 4, 5]
print(list1)
>>> [1, 2, 3, 4, 5]
print(list1[0])
>>> 1
print(type(list1))
>>> <type 'list'>
>>>
list2 = ['I', 'am', 'a', 'teacher']
print(list2)
>>> ['I', 'am', 'a', 'teacher']
print(list2[3])
>>> teacher

列表可是复合数据类型。可以是字符、数字、字符串甚至可以包含列表(即嵌套)多种数据类型在一个列表之中。列表用 [ ] 标识。

列表也支持切片操作

列表支持 + 的拼接操作,以及对于*的复制操作

 list1 = [1, 2, 3, 4, 5]list2 = [6, 7, 8]list3 = [1,1]print(list1+list2)
>>> [1, 2, 3, 4, 5, 6, 7, 8]print(list3*3)
>>> [1,1,1,1,1,1,]
#列表的切片操作
print(list1[2:4])
>>> [3, 4]


4.元组类型

元组是和列表类似的一种数据类型,它采用小括号定义一个或多个元素的集合,其返回类型为tuple。示例如下:

t1 = (12, 34, 'Python')
print(t1)
>>> (12, 34, 'Python')
print(type(t1))
>>> <type 'tuple'>
print(t1[2])
>>> Python

注意:可以定义空的元组,如t2=(),元组可以通过索引访问,比如上述代码t1[2]访问第3个元素,即“Python”。当元组定义后就不能进行更改,也不能删除。

5.字典类型

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是针对非序列集合而提供的,字典用"{ }"标识,由键值对(< Key > < Value >)组成,字典是键值对的集合,其类型为dict。键是字典的索引,一个键对应着一个值,通过键值可查找字典中的信息,这个过程叫做映射。

示例如下,通过键值对可以获取“4”对应的“Guiyang”。

dic = {"1":"Beijing","2":"Shanghai","3":"Chengdu","4":"Guiyang"}
print(dic)
>>> {'1': 'Beijing', '3': 'Chengdu', '2': 'Shanghai', '4': 'Guiyang'}
print(dic["4"])
>>> Guiyang
>>> 12345

字典与列表主要区别:

  • 列表中的元素是顺序排列的,字典中的数据是无序排列的。
  • 它们的映射方式不同,列表通过地址映射到值,字典通过键值对映射到值。
  • 列表只能通过数字下标或索引访问,字典可以用各种对象类型作为键访问。

字典键值keys()和values()用法以及items()方法


可以发现items返回对象是一个列表嵌套的每个映射一个元组。可以遍历取值。


五.字符串操作

字符串的操作非常重要。

字符串支持格式化输出,需要引入操作符百分号(%)实现。

在百分号的左侧放置一个格式化字符串,左边主要是占位,右侧放置期望的格式化值,也可是元组和字典。例如:

print("Hi!My Name is %s,I am %d years old and %f pounds heavy."%("YXZ", 26, 55.5))
Hi!My Name is YXZ,I am 26 years old and 55.500000 pounds heavy.

字符串(%s)、整数(%d)、浮点数(%s)

基础操作

字符串的基本操作包括求长度、拼接、重复操作、索引、切片等等。假设str1字符串为“hello”,str2字符串为“world”,len(str1)计算字符串长度为;str1+str2拼接后的结果为“helloworld”;str1*3字符串重复结果为“hellohellohello”。

字符串切片定义为s[i:j:step],其中step表示切片的方向,默认起点从0开始,终点不写切到最后。

find()函数

  • 用法:从字符串中查找子字符串,返回值为子串所在位置的最左端索引。返回值是索引!!!

如果没有找到则返回-1。

扩展的rfind()方法表示从右往左方向查找,常用于正则表达式爬取数据。

  • 示例:获取字符串“def”的位置,位于第3个位置(从0开始计数)。
str1 = 'abcdefghijklmn'
num = str1.find('def')
print num
>>> # 3

split()函数(字符串变为列表)

  • 用法:字符串分割函数,将字符串分割成序列,返回分割后的字符串序列。
  • 注意 split 是将字符串 切分为一个个元素,存在列表中。最终的返回对象是列表
  • 如果不提供分割符,程序将会把所有空格作为分隔符。

strip()函数

  • 用法:该函数用于去除开头和结尾的空格字符(不包含字符串内部的空格),同时S.strip([chars])可去除指定字符。

  • 扩展的函数lstrip()去除字符串开始(最左边)的所有空格,rstrip()去除字符串尾部(最右边)的所有空格。

  • 示例:去除字符串前后两端的空格和换行符号。

join()函数(列表变字符串)

  • 用法:通过某个字符拼接序列中的字符串元素,队列中元素必须是字符串,返回一个拼接好的字符串函数。

  • 将列表中的元素,拼接在一起,返回的是一个字符串。

  • join()函数是split()函数的逆方法。

  • 示例:采用空格(’ ')拼接字符串[‘I’,‘am’,‘a’,‘student’],代码及输出结果如下。

num = ['I','am','a','student']
sep = ' '
str1 = sep.join(num)
print str1
>>> I am a student

《从菜鸟到大师-杨老师课程笔记》Python工程师之 01相关推荐

  1. 《区块链技术与应用》北大肖臻老师——课程笔记【21-23】

    <区块链技术与应用>北大肖臻老师--课程笔记[21-23] 一.权益证明 二.ETH-TheDAO 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供参考.如有错 ...

  2. 《区块链技术与应用》北大肖臻老师——课程笔记【4-5】

    <区块链技术与应用>北大肖臻老师--课程笔记[4-5] 一.比特币协议 比特币脚本(BitCoin Script) Paxos协议 比特币 中的共识协议 (consensus in Bit ...

  3. 《区块链技术与应用》北大肖臻老师——课程笔记【6-8】

    <区块链技术与应用>北大肖臻老师--课程笔记[6-8] 一.BTC网络 二.BTC-挖矿难度 三.BTC-挖矿 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供 ...

  4. 《区块链技术与应用》北大肖臻老师——课程笔记【1-3】

    <区块链技术与应用>北大肖臻老师--课程笔记[1-3] 一.课程介绍 二.密码学原理 1.哈希 1.哈希碰撞(cryptographic hash function) 2.不可逆性(hid ...

  5. 《区块链技术与应用》北大肖臻老师——课程笔记【11-12】

    <区块链技术与应用>北大肖臻老师--课程笔记[11-12] 一.BTC-问答 二.BTC-匿名性 1.匿名性 2.零知识证明 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课 ...

  6. 《区块链技术与应用》北大肖臻老师——课程笔记【13-18】

    <区块链技术与应用>北大肖臻老师--课程笔记[13-18] 一.BTC-思考 1.哈希指针 2.区块恋 3.分布式共识 4.比特币的稀缺性 5.量子计算 二.ETH-以太坊概述 1.以太坊 ...

  7. 【计算机视觉】计算机视觉与深度学习-北邮鲁鹏老师课程笔记

    计算机视觉与深度学习-北邮鲁鹏老师课程笔记 01-计算机视觉相关介绍 02-图像分类 03-全连接神经网络 04-图像去噪&卷积&边缘提取 05-纹理表示&卷积神经网络 06- ...

  8. 《区块链技术与应用》北大肖臻老师——课程笔记【19-20】

    <区块链技术与应用>北大肖臻老师--课程笔记[19-20] 一.ETH-挖矿算法 二.ETH-难度调整 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供参考.如 ...

  9. 无监督学习与有监督学习的本质区别是什么_吴恩达老师课程笔记系列第三节-无监督学习定义...

    第三节-无监督学习定义 我们将介绍第二种主要的机器学习问题.叫做无监督学习. 上个课程中,已经介绍了监督学习.回想当时的数据集,如图表所示,这个数据集中每条数据都已经标明是阴性或阳性,即是良性或恶性肿 ...

最新文章

  1. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
  2. 六月开发语言排行榜出炉 ActionScript回前20
  3. 在 M1 芯片 Mac 中使用原生 Java 优雅地玩 Minecraft
  4. Last-Modified、If-Modified-Since 实现缓存和 OutputCache 的区别
  5. 让你真正体验一次主板超频的步骤以及成功的快乐
  6. http协议知识msdn
  7. 百度、WordPress纷纷宣布停用React
  8. IIS下PHP的ISAPI和FastCGI比较
  9. HDU - 4422 The Little Girl who Picks Mushrooms
  10. x264编码详细文字全过程
  11. python 大智慧股池_大智慧股票池
  12. fw325r虚拟服务器连接失败,fw325r重置后不能联网怎么办?
  13. 确定空间直线延长线上的一点
  14. java实用教程第五版_java2实用教程(第5版)重要点及遗漏点(一)
  15. A Generative Adversarial Network-based Deep Learning Method for Low-quality Defect ImageReconstructi
  16. 股骨截骨php钢板,最新综述:股骨远端截骨治疗膝关节畸形进展(下)
  17. 为什么重写equals方法时必须重写hashcode方法
  18. 两年内5000万台电脑都要换成国产电脑
  19. vector<vector>排序
  20. 利用DncZeus框架开发UWB室内定位网关

热门文章

  1. Unsupervised Learning of Visual Features by Contrasting Cluster Assignments(SwAV)---论文阅读笔记
  2. 【Shell】mksh运行分析
  3. 让您的照片动起来first motion model(1)-关键点抽取模型深度解析
  4. 后端@RequestBody postman 如何设置
  5. kafka踩坑、实践篇
  6. Centos 7 下joomla简体中文版安装
  7. psv2000注册连接不上服务器,PSV地域服务器须知
  8. 绿联外围设备_什么是外围设备(外围设备的类型和列表)?
  9. 学到生无可恋之 Redis(下)
  10. 畅销图书排行榜TOP10(2009上半年)