1. 简介

1.1 Python适合开发哪些类型的应用


  • 首选是网络应用,包括网站、后台服务等等;
  • 其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
  • 另外就是把其他语言开发的程序再包装起来,方便使用。

1.2 Python的缺点


  • 运行速度慢,和C程序相比非常慢,因为Python是解释型语言。
  • 代码不能加密


2. 安装

2.1 安装Python 3.7

目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。接下来安装的是3.7版本。

在Mac上安装Python


系统是OS X>=10.9,那么系统自带的Python版本是2.7。要安装最新的Python 3.7,有两个方法:

方法一:从Python官网下载Python 3.7的安装程序,双击运行并安装;

方法二:如果安装了Homebrew,直接通过命令brew install python3安装即可。

在Windows上安装Python


从Python的官方网站下载Python 3.7对应的64位安装程序或32位安装程序,然后,运行下载的EXE安装包:

特别要注意勾上Add Python 3.7 to PATH,然后点“Install Now”即可完成安装。


3.Python 基础

3.1 数据类型(五种)

  • 整数、浮点数、字符串、布尔值、空

3.2 空

  • 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

3.3 字符串


  • Python允许用’’’…’’'的格式表示多行字符串
  • 对于​单个字符​的编码,Python提供了**ord()**函数获取字符的整数表示,**chr()**函数把编码转换为对应的字符:

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
  • 计算数组或str长度:len(arr)

3.4 占位符

print('Hello, %s' % 'world')
'Hello, world'
print('Hi, %s, you have $%d.' % ('Michael', 1000000))
'Hi, Michael, you have $1000000.'

占位符

替换内容

%d

整数

%f

浮点数

%s

字符串

%x

十六进制整数

print('%3d-%03d' % (3, 1))
print('%.3f' % 3.1415926)

// 结果
3-001
3.142

%3d表示输出宽度为3的数字(右对齐)
print('%3d' % 3) 输出 3
3左边有两个空格

%03d表示宽度至少为3的数字,太短了用0来凑数
print('%03d' % 3)输出003

%.2d表示保留两位小数
print('%.2d' % 3)输出3.00
  • 转义,用%%来表示一个%:
print('growth rate: %d %%' % 7)
'growth rate: 7 %'

3.5 列表list


  • 长度:len(list)
  • 转换成list:list(range(0,5))
  • 获取倒数元素:倒数第一个classmates[-1]
    倒数第二个classmates[-2]
  • 追加元素到末尾append(item):

list.append('Adam')
  • list中追加元素到指定位置insert(index, item):
list = ['Michael', 'Bob', 'Tracy', 'Adam']
list.insert(1, 'Jack')
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
  • 删除指定位置元素pop(index):会返回被删除的元素,删除末尾元素不需要传参
list = ['Michael', 'Bob', 'Tracy', 'Adam']
list.pop(1)
print(list)
['Michael', 'Tracy', 'Adam']

3.6 元组tuple


  • tuple和list非常类似,但是tuple一旦初始化就不能修改(元素是对象除外)
  • 不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
  • 只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

t = (1,)

3.7 条件判断

  • 语法:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
  • 示例:
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')

3.8 输入input()

​报错代码:​

birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')

输入1982,结果报错:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()

这是因为 ​​input()返回的数据类型是str,str不能直接和整数比较​​,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')

3.9 循环

  • for…in循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
  • while循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)

​break可以跳出循环​

​continue可以跳过当前的这次循环,直接开始下一次循环​

3.10 生成整数数列range()

list(range(5))
[0, 1, 2, 3, 4]

3.11 字典dict

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

  • key不可变,list不能作为key, key不存在会报错
  • 要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

>>> 'Thomas' in d
False
  • 二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

  • 注意:返回None的时候Python的交互环境不显示结果。
  • 删除一个key: pop(key)

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}

  • 和list比较,dict有以下几个特点:

  • dict查找和插入的速度极快,不会随着key的增加而变慢;
  • dict需要占用大量的内存,内存浪费多。

  • 而list相反:

  • list查找和插入的时间随着元素的增加而增加;
  • list占用空间小,浪费内存很少。


3.12 set


  • set和dict类似,也是一组key的集合,但不存储value。由于​key不能重复​,所以,在set中,没有重复的key。
  • 要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
  • 重复元素在set中自动被过滤:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
  • 通过 ​add(key)​ 方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
  • 通过 ​remove(key)​ 方法可以删除元素:
>>> s.remove(4)
>>> s
{1, 2, 3}
  • set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的​交集、并集​等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
  • set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

觉得有帮助的小伙伴记得右上角点个赞鼓励下~