写在开头
Python
是之前一直想学习的一门语言,但是因为没有坚持下来都放弃了。那为什么这次会突发奇想现在开始学习呢?原因有两个,一个是端午没有提报上加班,因此加上周末有三天假期;二是在家无聊的时候,想着为什么不把时间花在学习上呢?于是打开《极客时间》 一看,发现之前领的课程还能看,因此打算在家把这个课程刷完。(默默的下定决心要在家把没有加上班损失的钱赚回来)
学习 Python
最开始的主要目的之一是想写一个快速批量删除的工具🔧,或许之后还有其他的作用~
文章主要参考链接🔗
- 《极客时间》的 《零基础学
Python
》 - 廖雪峰的官方网站 (
Python
)
一、Python 简介
1、什么是 Python
Python
是一门高级语言,和 Java
语言、C语言
一样,但是比它们更加 简洁方便。在我看来,Python
可以写很多好玩且有用的小工具🔧。当然,Python
可以写爬虫,可以写人工智能等等,需要我们去发掘它的各种作用。
PS: Python
有2.x和3.x的版本,目前强烈建议使用3.x来进行开发,如果你想了解它们之间有什么区别,可以点击 这里。
2、开发前准备
- 开发工具:直接上手
PyCharm
,对于新手足够了,你可以点击 这里 下载。 - 下载:请点击 这里 (Python 3.x),根据不同系统进行安装,安装完毕可以输入
python3
查看(截图为Mac
),当在>>>
状态下表明你已经进入了Python
的开发环境。
3、第一个Python 程序
使用
PyCharm
使用命令:
二、Python 基础
因为本人有
Java
语言的基础,所以下面的内容会基于Python
和其他语言的异同来讲解,如果你是新手,请点击 这里 了解
1、数据类型和变量
基本数据类型
整数 / 浮点数 :和 Java是一样的;
字符串:可以使用单引号
‘’
或者双引号“”
括起来的任意文本,如‘abc’
或者“abc”
;区域于Java
只能是双括号“abc”
;PS:
转义字符 \ 可以用于标识既有
‘’又有
“”
的情况,如print("I\'m \"OK\"!")
输出内容是:I'm "OK"!
使用r能够去除反义,直接输出 \,如 print(r’’’hello,\nworld’’’) 输出的是
hello,\nworld
,如果没有r,那么输出的是hello, world
布尔值,和 Java一致;
- 空值:
None
是一个特殊的空值;
变量和常量
变量:
Python
里面的变量很方便,可以直接赋予,比如a = 1
,这就定义好了一个值为2
的整数型变量a
,无须和Java
一样定义好变量的类型。从这里可以看出,Python
是一种 动态语言PS: Python 没有常量变量之分,所谓的常量实现其实也是一个变量,只不过使用 大写字母来区分,本质上还是一个变量,可以再次写入值。
打印变量:如
print("hello, my name is %s" %"jian")
的打印结果是hello, my name is jian
,多个参数替换可以用括号括起来 ;
列表和元组
列表(
List
):一种有序集合,可以随时添加和删除,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 定义方式 可以包含不同类型的变量
language = ['C', 'python', 'java', ['C++', 'php']]
# 增
language.insert(0, 'go')
print(language)
# 删
language.pop(0)
print(language)
# 改
language[0]
print(language)
# 查
print(language[0])
# python有一个很有意思的地方是,如果给的索引值是负数的话,会倒着数,当然,如果超过其长度的话,还是会出现越界
print(language[-1]) --> ['C++', 'php']元组(tuple): 元组和list很相似,但是它的元素无法更改。
1
2
3
4
5
6
7
8
9
10
11# 定义方式
language = ('C', 'python', 'java', ['C++', 'php'])
# 定义一个空的元组
person = ()
# 定义一个元素的元组 需要加逗号用于区分()不是括号而是元组
person = (myself, )
# PS:虽然元组的元素无法更改,但是如果元组的某一个元素是列表,那么该列表的元素是可以更改的,比如
language[3][0] = 'go'set:无序和无重复元素的集合
1
2
3
4
5
6
7
8
9# 传入的参数为list
s = set([1, 1, 2, 2, 3, 3])
print(s)
# 输出是
{1, 2, 3}
# 操作
s.add(xxx)
s.remove(xxx)
字典dict
类似于 Java
里面的 map
,使用 key-value
存储数据
增删改查
1
2
3
4
5
6# 增和改
d["key"] = ‘value’
# 删
d.pop("key")
# 查
d.get("key", "defaulut_value")dict
查找速度很快的原因:key-value
的存储实现方式是通过 hash表去实现的,理论上 时间复杂度是O(1) ,考虑到冲突碰撞,最差的情况下时间复杂度是 O(n); 图片来源
与
list
相比较,dict具有以下特点:- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
PS:dict
是以时间换空间的一种方式;
2、条件判断和循环语句
Python 的条件判断和循环语句与 Java 区别不大,主要是语法的小区别;
if
语句
1 | # 从上往下执行,满足一个条件就跳过后面的判断 |
循环语句
1 | languages = ('C', 'python', 'java', ['C++', 'php']) |
三、函数
1、函数的定义
使用 def
关键字定义,如
1 | languages = ('C', 'python', 'java', ['C++', 'php']) |
可以使用 return
返回函数运算结果,可以同时返回多个值(本质上是一个 元组)
2、参数
可以定义默认参数,类似于
Kotlin
;可以定义可变参数,如
1
2
3
4
5
6
7
8
9
10# *numbers 表示把numbers这个元组的所有元素作为可变参数传进去
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
# 传入的参数是可以变化的
print(calc(1))
print(calc(2, 3))关键字参数
1
2
3
4
5
6def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
person('Bob', 35, city='Beijing')
# 输出是:name: Bob age: 35 other: {'city': 'Beijing'}
# PS:name, age为必选参数, **kw是关键字参数,用于函数的扩展功能;命名关键字参数
1
2
3# 还可以限定关键字参数传入的名称,只接受 city和job作为关键字参数,不过这样定义之后,必须要传入
def person(name, age, *, city, job):
print(name, age, city, job)参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
四、结尾
写到这里,本文基本结束了,文章主要是将开始学习
Python
的一些基础知识进行了总结和归纳,参考的链接也在开头附上了,应该会出几篇Python
系列的文章~ 希望能给大家带来点帮助,如果有不理解的地方欢迎👏 通过邮件联系我(jianwan1221@q q.com)