Python视频学习(一、基础)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30162859/article/details/82918334

目录

对于商业项目而言,通常在一个项目中,只有一个 可以直接执行的 Python 源程序

1. Python 简介

1.1 历史简介

  1. 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承(感觉下什么叫牛人
  2. ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果
  3. 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者
  4. 1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件

在 Python 社区,吉多被称为“仁慈的独裁者”

同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下 PythonJava1/5,所以说 人生苦短,我用 Python

1.2 Python语言特点

  1. Python 是完全面向对象的语言
    • 函数模块数字字符串都是对象,在 Python 中一切皆对象
    • 完全支持继承、重载、多重继承
    • 支持重载运算符,也支持泛型设计
  2. Python 拥有一个强大的标准库,Python 语言的核心只包含 数字字符串列表字典文件 等常见类型和函数,而由 Python 标准库提供了 系统管理网络通信文本处理数据库接口图形系统XML 处理 等额外的功能
  3. Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算人工智能机器学习Web 开发数据库接口图形系统 多个领域

2. Python的版本

  • Python 2.x 默认不支持中文

  • Python 2.x 是 过去的版本

    • 解释器名称是 python
  • Python 3.x 是 现在和未来 主流的版本

    • 解释器名称是 python3
    • 相对于 Python 的早期版本,这是一个 较大的升级
    • 为了不带入过多的累赘,Python 3.0 在设计的时候 没有考虑向下兼容
      • 许多早期 Python 版本设计的程序都无法在 Python 3.0 上正常执行
    • Python 3.0 发布于 2008 年
    • 到目前为止,Python 3.0 的稳定版本已经有很多年了
      • Python 3.3 发布于 2012
      • Python 3.4 发布于 2014
      • Python 3.5 发布于 2015
      • Python 3.6 发布于 2016
  • 为了照顾现有的程序,官方提供了一个过渡版本 —— Python 2.6

    • 基本使用了 Python 2.x 的语法和库
    • 同时考虑了向 Python 3.0 的迁移,允许使用部分 Python 3.0 的语法与函数
    • 2010 年中推出的 Python 2.7 被确定为 最后一个Python 2.x 版本

提示:如果开发时,无法立即使用 Python 3.0(还有极少的第三方库不支持 3.0 的语法),建议

  • 先使用 Python 3.0 版本进行开发
  • 然后使用 Python 2.6Python 2.7 来执行,并且做一些兼容性的处理

3. Python的交互式环境&IDE- PyCharm

3.1 IPython

  • IPython 中 的 “I” 代表 交互 interactive
    • IPython 是一个 python 的 交互式 shell,比默认的 python shell 好用得多
      • 支持自动补全
      • 自动缩进
      • 支持 bash shell 命令
      • 内置了许多很有用的功能和函数
  • IPython 是基于 BSD 开源的
版本
  • Python 2.x 使用的解释器是 ipython
  • Python 3.x 使用的解释器是 ipython3
退出
  1. 直接输入 exit
In [1]: exit
  1. ctrl+d

3.2 Ubuntu中的PyCharm

3.2.1 配置文件位置

用户家目录下的.PyCharmxxxx.x目录,xxxx.x是PyCharm的版本号。如果要恢复PyCharm的初始设置,可以先退出PyCharm,再删除该文件夹。

扫描二维码关注公众号,回复: 3733537 查看本文章

PyCharm会在目录下新建一个 .idea 的目录,用于保存 项目相关的信息,例如:解释器版本、项目包含的文件等等

3.2.2 安装和创建桌面快捷方式

$ tar -zxvf pycharm-professional-2017.1.3.tar.gz
$ sudo mv pycharm-2017.1.3/ /opt/
  • 专业版创建桌面图标: Tools / Create Desktop Entry… 勾选为所有用户添加
  • 其他版本:
    1. 编辑文件$ sudo gedit /usr/share/applications/jetbrains-pycharm.desktop
    2. 修改成以下内容:
      [Desktop Entry]
      Version=1.0
      Type=Application
      Name=PyCharm
      Icon=/opt/pycharm-edu-3.5.1/bin/pycharm.png
      Exec="/opt/pycharm-edu-3.5.1/bin/pycharm.sh" %f
      Comment=The Drive to Develop
      Categories=Development;IDE;
      Terminal=false
      StartupWMClass=jetbrains-pycharm
      

3.2.3 卸载

  1. 删除/opt下的pycharm目录
  2. 删除家目录下的配置目录
  3. 删除快捷方式: /usr/share/applications/jetbrains-pycharm.desktop

ubuntu 中,应用程序启动的快捷方式通常都保存在 /usr/share/applications 目录下

4. 算数运算符

运算符 描述 实例
+ 10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
// 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
% 取余数 返回除法的余数 9 % 2 = 1
** 又称次方、乘方,2 ** 3 = 8

5. 变量

在这里插入图片描述

  1. 操作系统会首先让 CPUPython 解释器 的程序复制到 内存
  2. Python 解释器 根据语法规则,从上向下CPU 翻译 Python 程序中的代码
  3. CPU 负责执行翻译完成的代码

内容

  1. 类型: type
  2. 类型转换
  3. 输入
  4. 格式化输出
  5. 变量命名规则
  6. 关键字: import keyword keyword.kwlist

数字类型之间可以直接计算,Bool类型当作1/0.

PEP8
文档地址:https://www.python.org/dev/peps/pep-0008/
谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

6. 判断

1. 语法

2. 逻辑判断符

7. 循环

1. 语法

2. 死循环

3. 赋值运算符

4. 索引从0开始的习惯

5. 循环嵌套

6. break和continue

7. 循环嵌套

8. 函数

1. 定义

2. 文档注释

"""解释

:param p1: p1的作用
:param p2: p2的作用
:return: 返回内容作用

详细解释
""" 

3. 函数名和模块名都是标识符

9. 列表

1. 创建

2. 索引

3. 添加:append, extend, insert

4. 删除: remove, clear, pop, del

5. 计数:count, index

6. 排序

7. 遍历

10. 元祖

1. 创建

()  # 空元祖
(5)  # int
(5,)  # 一个元素的元祖

2. 计数: count, index

通常元祖内保存的数据类型不同;而list中保存的数据类型相同

11. 字典

1. 创建

2. 取值

3. 取值、修改

4. 删除

di.pop('key')
del di['key']
di.clear()

5. 合并字典

dic1.update(dic2)    # 合并字典,如果key相同,则更新值

6. 遍历

12. 字符串

1. 创建

2. 遍历和索引

3. 方法:

1) 判断类型 - 9

方法 说明
string.isspace() 如果 string 中只包含空格,则返回 True
string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal() 如果 string 只包含数字则返回 True,全角数字 ,无法判断小数
string.isdigit() 如果 string 只包含数字则返回 True,全角数字\u00b2,无法判断小数
string.isnumeric() 如果 string 只包含数字则返回 True,全角数字汉字数字 ,无法判断小数
string.istitle() 如果 string 是标题化的(每个单词的首字母大写)则返回 True
string.islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True

2) 查找和替换 - 7

方法 说明
string.startswith(str) 检查字符串是否是以 str 开头,是则返回 True
string.endswith(str) 检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0, end=len(string)) 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string)) 类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string)) 跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string)) 类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old)) 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次

3) 大小写转换 - 5

方法 说明
string.capitalize() 把字符串的第一个字符大写
string.title() 把字符串的每个单词首字母大写
string.lower() 转换 string 中所有大写字符为小写
string.upper() 转换 string 中的小写字母为大写
string.swapcase() 翻转 string 中的大小写

4) 文本对齐 - 3

方法 说明
string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

5) 去除空白字符 - 3

方法 说明
string.lstrip() 截掉 string 左边(开始)的空白字符
string.rstrip() 截掉 string 右边(末尾)的空白字符
string.strip() 截掉 string 左右两边的空白字符

6) 拆分和连接 - 5

方法 说明
string.partition(str) 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str) 类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num) 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines() 按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

4. 切片

13. 高级数据类型的公共方法

方法

函数 描述 备注
len(item) 计算容器中元素个数
del(item) 删除变量 del 有两种方式
max(item) 返回容器中元素最大值 如果是字典,只针对 key 比较
min(item) 返回容器中元素最小值 如果是字典,只针对 key 比较
cmp(item1, item2) 比较两个值,-1 小于/0 相等/1 大于 Python 3.x 取消了 cmp 函数
描述 Python 表达式 结果 支持的数据类型
切片 “0123456789”[::-2] “97531” 字符串、列表、元组

运算符

运算符 Python 表达式 结果 描述 支持的数据类型
+ [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组
* [“Hi!”] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复 字符串、列表、元组
in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典
> >= == < <= (1, 2, 3) < (2, 2, 3) True 元素比较 字符串、列表、元组

注意

  • in 在对 字典 操作时,判断的是 字典的键
  • innot in 被称为 成员运算符

完整的for循环语法——for else

for 变量 in 集合:    
    循环体代码
else:
    没有通过 break 退出循环,循环结束后,会执行的代码

14. 名片管理系统

1. pass关键字

2. pycharm中的# TODO 内容

3. shebang

  • #!这个符号叫做 Shebang 或者 Sha-bang
  • Shebang 通常在 Unix 系统脚本的中 第一行开头 使用
  • 指明 执行这个脚本文件解释程序

使用 Shebang 的步骤

  1. 使用 which 查询 python3 解释器所在路径
$ which python3
  1. 修改要运行的 主 python 文件,在第一行增加以下内容
#! /usr/bin/python3
  1. 修改 主 python 文件 的文件权限,增加执行权限
$ chmod +x cards_main.py
  1. 在需要时执行程序即可
./cards_main.py

15. 变量引用

1. id函数返回对象实际地址

2. 引用传值

3. 可变/不可变

4. 内置函数hash可以计算哈希值

16. 局部变量/全局变量

1. 生命周期

2. 查找变量过程

函数执行时,需要处理变量时 会:

  1. 首先 查找 函数内部 是否存在 指定名称 的局部变量如果有,直接使用
  2. 如果没有,查找 函数外部 是否存在 指定名称 的全局变量如果有,直接使用
  3. 如果还没有,程序报错!

函数不能直接修改 全局变量的引用

3. global关键字

global num

4. 全局变量定义位置

如果函数中使用了全局变量,则该全局变量的定义位置,需要在函数调用之前

num = 10 

def foo():
	print(num)
	print(title)
	print(bar)
	
	
title = "name"
foo()    # 打印 num、title, 而对bar报错
bar = "456"

代码结构示意图

在这里插入图片描述

17. 函数高级

1. 返回值返回tuple

2. 函数参数的引用传递

  • python 中,列表变量调用 += 本质上是在执行列表变量的 extend 方法,不会修改变量的引用

3. 默认参数(缺省参数)

4. 多值参数

# * args
# **kwargs

def demo(num, *args, **kwargs):
	print(num)
	print(args)  
	print(kwargs)

demo(1)
# 1
# ()
# {}

demo(1,2,3,4,5)
# 1
# (2,3,4,5)
# {}

demo(1,2,3,4,5, name="小明")
# 1
# (2,3,4,5)
# {"name“: "小明"}

demo(1, *mylist, **mydict)    # 传入值的拆包

5. 递归

猜你喜欢

转载自blog.csdn.net/qq_30162859/article/details/82918334