一、Python语言特点
1. 简单易学、明确优雅、开发速度快
✍简单易学:与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。 ✍明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。 ✍开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!
2. 跨平台、交互式、解释型、面向对象的动态语言
✍跨平台:Python支持Windows、Linux和MAC os等主流操作系统。 ✍交互式:Python提供很好的人机交互界面,比如IDLE和IPython。可以从终端输入执行代码并获得结果,互动的测试和调试代码片断。 ✍解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。 ✍面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。 ✍动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。
3.大量的标准库和第三方库
✍Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作。
4. 开源语言,发展潜力巨大
✍Python是基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。 ✍Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。
二、Python可以做什么
说到Python,大多数人会与人工智能挂钩,确实人工智能与Python密不可分,但除了人工智能python还有很多很多的用处:
AI
网络爬虫
自动化
数据分析
WEB开发
常规软件开发
云计算
........
可以说,Python无处不在!
1.文本编辑器 - Visual Studio Code
Visual Studio Code(通常简称为VSCode)是一个由微软开发能够在Windows、 Linux和macOS等操作系统上运行的代码编辑神器。它支持语法高亮、自动补全、多点编辑、运行调试等一系列便捷功能,而且能够支持多种编程语言。如果大家要选择一款高级文本编辑工具,强烈建议使用VSCode。关于VSCode的下载、安装和使用,推荐大家阅读一篇名为《VScode安装使用》的文章。
2.集成开发环境 - PyCharm
如果用Python开发商业项目,我们推荐大家使用更为专业的工具PyCharm。PyCharm是由捷克一家名为JetBrains的公司开发的用于Python项目开发的集成开发环境(IDE)。所谓集成开发环境,通常是指工具中提供了编写代码、运行代码、调试代码、分析代码、版本控制等一系列功能,因此特别适合商业项目的开发。在JetBrains的官方网站上提供了PyCharm的下载链接,其中社区版(Community)是免费的但功能相对弱小(其实已经足够强大了),专业版(Professional)功能非常强大,但需要按年或月付费使用,新用户可以试用30天时间。
PyCharm常用的快捷键如下表所示,我们也可以在“File”菜单的“Settings”中定制PyCharm的快捷键(macOS系统是在“PyCharm”菜单的“Preferences”中对快捷键进行设置)。
3. PyCharm常用快捷键。
| 快捷键 | 作用 |
|---|---|
ctrl + j | 显示可用的代码模板 |
ctrl + b | 查看函数、类、方法的定义 |
ctrl + alt + l | 格式化代码 |
alt + enter | 万能代码修复快捷键 |
ctrl + / | 注释/反注释代码 |
shift + shift | 万能搜索快捷键 |
ctrl + d / ctrl + y | 复制/删除一行代码 |
ctrl + shift + - / ctrl + shift + + | 折叠/展开所有代码 |
F2 | 快速定位到错误代码 |
ctrl + alt + F7 | 查看哪些地方用到了指定的函数、类、方法 |
说明:使用macOS系统,可以将上面的
ctrl键换成command键,在macOS系统上,可以使用ctrl + space组合键来获得万能提示,在Windows系统上不能使用该快捷键,因为它跟Windows默认的切换输入法的快捷键是冲突的,需要重新设置。
4.hello, world
按照行业惯例,我们学习任何一门编程语言写的第一个程序都是输出hello, world,因为这段代码是伟大的丹尼斯·里奇(C语言之父,和肯·汤普森一起开发了Unix操作系统)和布莱恩·柯尼汉(awk语言的发明者)在他们的不朽著作The C Programming Language中写的第一段代码。
print('hello, world')
5.运行程序
如果不使用PyCharm这样的集成开发环境,我们可以将上面的代码命名为hello.py,对于Windows操作系统,可以在你保存代码的目录下先按住键盘上的shift键再点击鼠标右键,这时候鼠标右键菜单中会出现“命令提示符”选项,点击该选项就可以打开“命令提示符”工具,我们输入下面的命令。
python hello.py
提醒:我们也可以在任意位置打开“命令提示符”,然后将需要执行的Python代码通过拖拽的方式拖入到“命令提示符”中,这样相当于指定了文件的绝对路径来运行该文件中的Python代码。再次提醒,macOS系统要通过
python3命令来运行该程序。
你可以尝试将上面程序单引号中的hello, world换成其他内容;你也可以尝试着多写几个这样的语句,看看会运行出怎样的结果。需要提醒大家,上面代码中的print('hello, world')就是一条完整的语句,我们用Python写程序,最好每一行代码中只有一条语句。虽然使用;分隔符可以将多个语句写在一行代码中,但是最好不要这样做,因为代码会变得非常难看。
5.注释你的代码
注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性。当然,我们也可以将源代码中暂时不需要运行的代码段通过注释来去掉,这样当你需要重新使用这些代码的时候,去掉注释符号就可以了。简单的说,注释会让代码更容易看懂但不会影响程序的执行结果。
Python中有两种形式的注释:
- 单行注释:以
#和空格开头,可以注释掉从#开始后面一整行的内容。 - 多行注释:三个引号开头,三个引号结尾,通常用于添加多行说明性内容。
# print('hello, world')
print("你好,世界!")
三、Python基础知识及应用
1.将字符列表转化为字符串
l=['Python','Circle','is','ok']
j=''.join(l)
print(j)
2.将字符串居中
a='徐以鹏比易烊千玺帅亿点'
b=a.center(50)
c=a.center(50,'*')
print(b)
print(c)
3.find方法找到字符串中的字符,找到就返回第一个字符的索引,找不到就返回-1
a='I love python'
b=a.find('o')
print(b)
c=a.find('lov')
print(c)
让字符的首字母大写,其他字母手写
a='i love python'
b=a.title()
c='I LOVE PYTHON'
d=c.title()
print(b)
print(d)
用string中的capwords方法
import string
a='i lOve python'
b=string.capwords(a)
print(b)
清空列表
a=[1,2,3]
a.clear()
print(a)
a=[1,2,3]
a[:]=[]
print(a)
计算指定元素在列表中出现的次数
a=['i','am','ok','k','ok']
b=a.count('ok')
print(b)
在列表末尾加入元素
a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)
a=[1,2,3]
b=[4,5,6]
a.extend(b)
print(a)
将对象插入到列表中
a=[1,2,3,4]
a.insert(2,'there')
print(a)
a=[1,2,3,4]
a[2:2]=['there']
print(a)
删除列表中的元素
a=[1,2,3,4]
a.pop()#pop可以删除指定元素,默认删除最后一个元素
print(a)
a.pop(0)
print(a)
删除列表中的指定元素
a=[1,2,4,3,4]
a.remove(4)#只删除第一次出现的元素
print(a)
让列表按相反顺序排序?
a=[2,1,5,99]
a.reverse()
print(a)
a=[2,1,5,99]
a=a[::-1]
print(a)
表示只包含一个元素的元组,一定要在后面加逗号
a=(1)
print(type(a))#整数
a=(1,)
print(type(a))#元组
批量替换字符串中的元素
a='i love python'
b=a.replace('o','徐')
print(b)
将字符串按照空格进行拆分
a='i love python'
print(a.split())
去除字符串首位的空格
a=' i love python'
print(a.strip())
给字典中不存在的key指定默认值
a={'age':42,'name':'g'}
print(a.get('aa','N/2'))
快速求1到100所有整数相加的和
print(sum(range(1,101)))
快速启动浏览器打开指定的网站,使用webbrowser库
import webbrowser
webbrowser.open('http://www.python.org')'''
给函数编写文档在 def 语句后⾯把注释⽂档放在引号(单引、双引、三引都可以)⾥⾯就⾏,这个⽂档可以通过 function.__doc__访问。
def square(x):
'''返回平方值'''
return x*x
print(square.__doc__)
定义私有方法
#在方式名称前加两个下斜杠
class Person:
def __name(self):
print('私有方法')
#注明:⽤ from module import * 导⼊时不会导⼊私有⽅法。
怎么判断一个类是另一个类的子类?
class A:
pass
class B(A):
pass
print(issubclass(A,B))#是返回True,不是返回False
怎么从一个非空序列中随机选择一个元素?
import random
print(random.choice([1,'two',3,'四']))
怎么查出通过from xx import xx导入的可以直接调用的方法?
#⽤ all ⽅法,这个⽅法查出的是模块下不带_的所有⽅法,可以直接调⽤。
import random
print(random.__all__)
集合
#花括号{}是集合还是字典:是字典
#怎么求两个集合的并集?
a={6,7,8}
b={7,8,9}
print(a.union(b))
a={6,7,8}
b={7,8,9}
print(a|b)
#求两个集合的交集
a={6,7,8}
b={7,8,9}
print(a&b)
a={6,7,8}
b={7,8,9}
print(a.intersection(b))
#求两个集合中不重复的元素
a={6,7,8}
b={7,8,9}
print(a^b)
a={6,7,8}
b={7,8,9}
print(a.symmetric_difference(b))
#求两个集合的差集
a={6,7,8}
b={7,8,9}
print(a-b)
a={6,7,8}
b={7,8,9}
print(b.difference(a))
print(a.difference(b))
#从一个序列中随机返回n个不同值的元素
import random
t=(2020,7,3,21,48,56,4,21,0)
print(random.sample(t,2))
#怎么生成两个数之间的随机实数
from random import uniform
print(uniform(10,20))
import random
print(random.uniform(10,20))
#怎么在等差数列中随机选择一个数
print(random.randrange(0,100,10))
怎么在文件中写入字符?
''#使用open函数,模式用w
with open('bruce.txt','w')as f:
f.write('hello word')'''
with open('bruce.txt','r')as f:
f.read()
怎样将当前时间转化为字符串?
#用time模块中的asctime方法
import time
print(time.asctime())
怎么随机打乱列表的顺序
import random
t=list(range(20))
print(t)
random.shuffle(t)
print(t)