Python基础第一周--Python语言家族

在这里插入图片描述

一、Python语言家族

1 Introduction

1.1 Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

简单来说,Python是一门编程语言,帮助我们更好的与计算机沟通,功能全面、易学易用、可拓展语言,所以说,人生苦短,我学Python。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型高级语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • Python 是初学者的语言: Python 对初级程序员而言,是一种伟大的语言,开发代码量少,模块扩展库种类繁多,所以它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
扩展:编译型与解释型的原理
  • 编译型:编译器将源代码逐条编译成机器代码,任何一条语句 有错,都不能通过编译,最终形成目标代码,以后每次执行只执 行目标代码即可,因此执行速度快。
  • 解释型:解释器逐条解释源代码,成功一条就执行一 条,每次执行时都需要解释,所以速度稍慢

1.2 Python发展历史

  • Python的作者是荷兰人Guido von Rossum(龟叔)
  • 1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。
  • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器。Python来自Guido所挚爱的电视剧Monty Python’s Flying Circus (BBC1960-1970年代播放的室内情景幽默剧,以当时的英国生活为素材)。他希望这个新的叫做Python的语言,能实现他的理念(一种C和shell之间,功能全面,易学易用,可拓展的语言)。Guido作为一个语言设计爱好者,已经有过设计语言的(不很成功)的尝试。这一次,也不过是一次纯粹的hacking行为。
  • Python正式诞生于1991年
  • Python目前有两个版本,Python2和Python3,代码不完全兼容
  • 源文件.py文件猴后缀名
  • Python的解释器如今有多个语言实现,通常用的是Cpython或者IPython(官方版本的C语言实现),其他还有Jpython(Java平台)、IronPython(NET和Mono平台)、PyPy(Python实现)
扩展:Python2还是Python3
  • py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。所有的最新的标准库的更新改进,只会在3.x的版本里出现。Guido决定清理Python2.x ,并且不再兼容旧版本。
  • 最大的一个改变就是使用Unicode作为默认编码。Pyhton2.x中直接写中文会报错,Python3中可以直接写中文了。从开源项目看,支持py3的比例已经大大提高,知名的项目一般都支持py2.7和py3+。
  • py3比py2更规范统一、去掉了没必要的关键字Python3.x还在持续改进。
  • 所以我们还是推荐大家使用Python3.x。

2 Python的安装与使用

2.1 Python环境搭建

  • Python可应用于多平台包括Windows、 Linux/Unix 和 Mac OS。

  • Python有不同的搭建环境包括Python解释器(CPython)、编辑器(()IDLE,PyCharm,Sublime Text)、Python软件包管理系统(pip)

2.1.1 环境下载
2.1.2 Python编辑器
  • Ipython IDLE
  • Vim和macVim(linux,unix,macOSX)
  • Eclipse+pyDEV
  • Xcode(macOSX)
  • Notepad++(win)
  • Sublime Text(win,macOSX,linux,unix)
  • PyCharm(全平台)
2.1.3 Unix & Linux 平台安装 Python:(源码式安装)
  • 以下为在Unix & Linux 平台上安装 Python 的简单步骤:
    • 打开WEB浏览器访问http://www.python.org/download/
    • 选择适用于Unix/Linux的源码压缩包。
    • 下载及解压压缩包。
    • 如果你需要自定义一些选项修改Modules/Setup
    • 执行 ./configure 脚本
    • make
    • make install
  • 执行以上操作后,Python会安装在 /usr/local/bin 目录中,Python库安装在/usr/local/lib/pythonXX,XX为你使用的Python的版本号。
2.1.4 通过ubuntu官方的apt工具包安装
   $ sudo apt-get install python  
   $ sudo apt-get install python2.7  
   $ sudo apt-get install python3.7
2.1.5 Mac安装Python3
   $ brew sreach python
   $ brew install python3
   //在/usr/local/Cellar/这个目录下
2.1.6 windows下直接安装
① 首先访问http://www.python.org/download/ 下载最新环境

(img-Jo7EhQTW-1572861698219)(image/wps1.jpg)]

② 然后选择最新版本,并适用于自己系统的环境

(img-fdWr6Bun-1572861698221)(image/wps2.jpg)]

③ 下载后,双击安装,选择“Install Now”默认安装,但一定勾选“Add Python 3.7 toPATH”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7WLs7zf-1572861698222)(image/wps3.jpg)]

④ 如果没有添加环境,在安装之后,配置环境

3 Python的运行

运行Python的三种方式
  1. 交互式解释器

  2. 命令行运行Python源代码

  3. 使用编辑器或集成开发环境(IDE)例如:pycharm

3.1 交互式解释器

  • 你可以通过命令行窗口进入python并开在交互式解释器中开始编写Python代码。
  • 你可以在Unix,DOS或任何其他提供了命令行或者shell的系统进行python编码工作。
$ python # Unix/Linux 
或者 
C:>python # Windows/DOS
  • 以下为Python命令行参数:
选项 描述
-d 在解析时显示调试信息
-O 生成优化代码 ( .pyo 文件 )
-S 启动时不引入查找Python路径的位置
-V 输出Python版本号
-X 从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。
-c cmd 执行 Python 脚本,并将运行结果作为 cmd 字符串。
file 在给定的python文件执行python脚本。

3.2 命令行脚本

  • 在记事本中输入下列代码,另存为test.py文件
import requests
response=requests.get(https://img-bss.csdnimg.cn/201906261028104896.png)
pic = open('photo.jpg','wb')
pic.write(response.content)
  • 在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:
$ python test.py # Unix/Linux 
或者 
C:>python test.py # Windows/DOS

3.3 集成开发环境

  • PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。
  • PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……
  • PyCharm 下载地址 : https://www.jetbrains.com/pycharm/download/
3.3.1 Pycharm的基本使用
下载安装后,新建一个项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vqJHwsBY-1572861698228)(image/wps5.jpg)]

选择Python解释器,并确定项目名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBtaCbF5-1572861698231)(image/wps6.jpg)]

新建一个Python源代码文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbsZhV1W-1572861698235)(image/wps7.jpg)]

给源文件起名字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYjFeM4O-1572861698236)(image/wps8.jpg)]

运行源文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FedfYGZH-1572861698239)(image/wps9.jpg)]

得到运行结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5cDZ0Dz-1572861698241)(image/wps10.jpg)]

4 Python基础语法

4.1 Python注释

Python中的注释有单行注释和多行注释:
  • python中单行注释采用 # 开头。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

# 第一个注释
print("Hello, Python!")  # 第二个注释

输出结果:

Hello, Python!

注释可以在语句或表达式行末:

name = "Madisetti" # 这是一个注释
  • python 中多行注释使用三个单引号(’’’)或三个双引号(""")。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''

"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h3CHmJVW-1572861698243)(image/wps11.jpg)]

4.2 Python语法格式-缩进

  • python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。
  • 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
  • 缩进强迫大家写出格式化的代码
  • 当语句以’:’结尾时,缩进的语句视为代码块
  • 约定俗成管理,4个空格为一个缩进
  • Python大小写敏感

实例如下:

if True:
    print ("True")
else:
    print ("False")
  • 以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误
  • 以上程序由于缩进不一致,执行后会出现类似以下错误:
 File "test.py", line 6
    print ("False")    # 缩进不一致,会导致运行错误
                                      ^
IndentationError: unindent does not match any outer indentation level
多行语句
  • Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句,例如:
total = item_one + \
        item_two + \
        item_three
  • 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:
total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']
空行
  • 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
  • 空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
  • 记住:空行也是程序代码的一部分。

4.3 输入和输出:

input()输入:
  • input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
  • input()在从键盘获取了数据以后,会存放到等号右边的变量中
  • input()会把用户输入的任何值都作为字符串来对待
  • 注意:在python2中还有一个raw_input()输入,但到python3中没有了
#!/usr/bin/python3

str = input("请输入:");
print ("你输入的内容是: ", str)
  • 这会产生如下的对应着输入的结果:
请输入:Hello Python!
你输入的内容是:  Hello Python!
Print()输出:
  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
#!/usr/bin/python3

x="a"
y="b"
# 换行输出
print( x )
print( y )

print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

# 同时输出多个变量
print(x,y)
format的格式化函数(了解)
  • 格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
  • 基本语法是通过 {} 和 : 来代替以前的 % 。
>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'

>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'

>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

>>> print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com")) #指定参数名
'网站名:百度, 地址 www.baidu.com'


>>>site = {
   "name": "百度", "url": "www.baidu.com"}
>>>print("网站名:{name}, 地址 {url}".format(**site)) # 通过字典设置参数
'网站名:百度, 地址 www.baidu.com' 

>>>my_list = ['百度', 'www.baidu.com']
>>>print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的 通过列表索引设置参数
'网站名:百度, 地址 www.baidu.com'

>>> print("{:.2f}".format(3.1415926)); #数字格式化
3.14
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)
11 ‘{:b}’.format(11) ‘{:d}’.format(11) ‘{: o}’.format(11) ‘{:x}’.format(11) ‘{:#x}’.format(11) ‘{:#X}’.format(11) 1011 11 13 b 0xb 0XB 进制
Python中的变量
  • Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
  • 等号(=)用来给变量赋值。
  • 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
  • 实例(Python 3.0+)
#!/usr/bin/python3

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

print (counter)
print (miles)
print (name)
  • 执行以上程序会输出如下结果:
  100
  1000.0
  demo
多个变量赋值
  • Python允许你同时为多个变量赋值。例如:
a = b = c = 1
  • 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

  • 您也可以为多个对象指定多个变量。例如:

  a, b, c = 1, 2, "demo"
  • 以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 “demo” 分配给变量 c。
变量的命名
  • 在一个代码段内,尽量不要重名
  • 变量名由字母、数字、下划线组成,但不能以数字开头
  • Python 中的标识符是区分大小写
  • Python保留字: 保留字即关键字,我们不能把它们用作任何变量名称
  • 变量命名要符合PEP8规范,驼峰命名法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xC9p9yGv-1572861698244)(image/1572849437480.png)]

例如:
teacherName = 'yh'
stu_self = MiddleStudent( 'yh',20)
标识符
  • Python里,标识符: 由字母、数字、下划线组成,但不能以数字开头

  • Python 中的标识符是区分大小写的。

  • 特殊标识符:

    • 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
    • 以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
  • python保留字: 保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

  >>> import keyword
  >>> keyword.kwlist
  ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 
  'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 
  'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'if',
  'return','try', 'while', 'with', 'yield']

5 数据类型

5.1 内置的基本数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fq9zuirI-1572861698245)(image/1572852382122.png)]

  • Python3中,只有一种整型类型int
  • 内置的type()函数可以查询变量所指的对象类型
  • 也可以使用内置的isinstance()函数来判断
  • Python3中True的值是1,False的值是0
  • 浮点只有单精度float,没有double双精度

5.2 Number 数字

  • Python3 支持 int、float、bool、complex(复数)。
  • 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • 像大多数语言一样,数值类型的赋值和计算都是很直观的。
  • 内置的 type() 函数可以用来查询变量所指的对象类型。
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
  • 此外还可以用 isinstance 来判断:
>>>a = 111
>>> isinstance(a, int)
True
>>>
  • isinstance 和 type 的区别在于:
class A:
    pass

class B(A):
    pass

isinstance(A(), A)  # returns True
type(A()) == A      # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False
  • 区别就是:
    • type()不会认为子类是一种父类类型。
    • isinstance()会认为子类是一种父类类型。
注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
到 Python3 中,把 TrueFalse 定义成关键字了,但它们的值还是 10,它们可以和数字相加。
  • 当你指定一个值时,Number 对象就会被创建:
var1 = 1
var2 = 10
  • 您也可以使用del语句删除一些对象引用。
    • del语句的语法是:
    • del var1[,var2[,var3[…,varN]]]]
  • 您可以通过使用del语句删除单个或多个对象。例如
del var
del var_a, var_b
整数的进制:
# 输出其他进制数值

>>> bin(
  • 160
    点赞
  • 456
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值