Python笔记1(基础)

Python笔记

解释型的语言,则必须把源码发布出去
代码少的代价是运行速度慢
C语言适合开发那些追求运行速度、充分发挥硬件性能的程序
解释器或者编译器就是负责把符合语法的程序代码转化为CPU能够与执行的机器码,然后执行。
变量本身类型不确定的语言变量是`动态语言`,静态语言在定义变量时必须制定变量类型

一、介绍

Python之父Guido van Rossum(荷兰)龟叔

代码少的代价是运行速度慢

C语言适合开发那些追求运行速度、充分发挥硬件性能的程序,而Python是用来编写应用程序的高级编程语言。

Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池";除了内置的库外,Python还有大量的第三方库

  • 应用:
首选是网络应用,包括网站、后台服务等等;
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
另外就是把其他语言开发的程序再包装起来,方便使用。
  • 缺点:
第一个缺点就是运行速度慢。Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器码。
第二个缺点就是代码不能加密。解释型的语言,则必须把源码发布出去。

退出python交互模式:exit()或者ctrl+z

Python交互模式的代码是输入一行,执行一行,而命令行模式下直接运行.py文件是一次性执行该文件内的所有代码

二、简单的数据类型和变量

1. 基本语法
1.在Python中严格区分大小写
2.Python中的每一行就是一条语句,每条语句以换行结束
3.Python中每一行语句不要过长(规范中建议每行不要超过80个字符)
4.一条语句可以分多行编写,多行编写时语句后边以\结尾  
5.Python是缩进严格的语言,所以在Python中不要随便写缩进  
6.在Python中使用#来表示注释,#后的内容都属于注释,注释的内容将会被解释器所忽略
    我们可以通过注释来对程序进行解释说明,一定要养成良好的编写注释的习惯
    注释要求简单明了,一般习惯上#后边会跟着一个空格
2. 编码问题
Unicode将所有语言都统一到一套编码里
ASCII码是一个字节,Unicode编码通常是两个字节
把Unicode编码转化为“可变长编码”的UTF-8编码,常用英文字母是一个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
ASCII编码可以看成UTF-8编码的一部分
计算机内存中,统一使用Unicode编码,在需要保存到硬盘或者传输的时候,就转化为UTF-8编码

ASCII码的范围是:0-255或-128-+127

纯英文的str可以用ASCII编码为bytes,,中文的str可以用UTF-8编码为bytes

中文的编码超过了ASCII的编码范围,好像是句废话

3.变量命名
  1. 标识符中可以含有字母、数字、_,但是不能使用数字开头
  2. 标识符不能是Python中的关键字和保留字,不使用Python中的函数名作为标识符
  3. 命名规范:
  • 在Python中注意遵循两种命名规范:

    • 下划线命名法

      所有字母小写,单词之间使用_分割

    • 帕斯卡命名法(大驼峰命名法)

      首字母大写,每个单词开头字母大写,其余字母小写

4. 注释
  1. #号开头,注释掉一行代码
  2. """或者'''三对引号,注释掉多行代码
  3. 中文注释#coding = utf-8

python区分大小写,使用缩进来组织代码块(4个缩进)

Python的基本数据类型:数字、字符串、列表、字典、元组

5. 简单数据类型和变量
1、数值:
  1. 整数

    Python的整数没有大小限制

    如果数字的长度过大,可以使用下划线作为分隔符

  2. 浮点数(用e表示10,如:1.23e9)

    Python中所有的小数都是float类型,没有大小限制,但超出一定范围就直接表示为inf(无限大)

  3. 复数

2、字符串(在Python 3中,是以Unicode编码的)
  • 以单引号或者双引号括起来的内容

  • ord()函数:获取字符的整数表示

  • chr()函数:把编码转换成对应的字符

  • 转义字符\,python内部允许使用r''表示''内的字符串默认不转义

  • 允许用'''...'''的格式表示多行内容

  • 输出格式化字符串

    • 与c语言相同,用%引导

      例:print('Hi,%s have %d' %('you',1000))

      %s会把任意数据类型转化为字符串

      %%表示一个%

    • format()函数

      它会用传入的参数依次替换字符串内的占位符{0}{1}……需要从0开始

      例:print('{0} and {1}'.format(12,21))

3、布尔值(turefalse

布尔值可以用and (与运算)or(或运算) not(非运算) 运算

4、空值

空值用None表示

5、变量

变量名必须是数字、英文和下划_线的组合,不能用数字开头

6、常量

通常用大写的变量名表示常量(实际仍是变量)

7、bytes

如果需要在网络上传输,或者保存到磁盘上,就需要把str转换为以字节为单位的bytes

在网上或磁盘上读取数字流,读到的数据是bytes

bytes的每个字符都只占一个字节。

表示:b''
例:x = b'abc'

(1) 将str转化为bytes

以Unicode表示的str通过encode()可以编码为指定的bytes

例:'abc'.encode('ascii')

(2) 将bytes转化为str

通过decode()方法

例:b'abc'.decode('ascii')

bytes中包含无法解码的字节,decode()会报错,若bytes中只有一小部分无效,可以传入 errors='ignore'忽略错误的字节

计算字符数的长度

len()函数,str计算的是字节数,bytes计算的是字节数

例:len('abc') len(b'abc')

在保存源代码时,保存为UTF-8编码

取源代码时,为了让它按UTF-8编码读取,通常在文件开头加上

#!/usr/bin/env python3  //告诉Linux/OS X系统,这是一个Python可执行程序
#-*- coding: utf-8 -*-	//告诉python解释器,按照UTF-8编码读取源代码
保存时也需保存为UTF-8编码

三、序列

list和tuple(内置的有序集合)

1. 列表:list:[]

有序列表(像数组与结构体的结合)

内置的一种数据类型,list是一种有序的集合,可以随时添加和删除其中的元素

列表里面的数据类型可以不同,也可以含有列表(看成多维数组)

操作:

  • 增:

    a.append(elem)加到末尾

    a.insert(site,elem)添加到指定位置

  • 删:

    a.pop(site)不加位置,默认末尾

  • 改:

    赋值给对应的索位置

  • 查:

    索引与数组相同是从0开始

a[site],查看site处元素,site可以为-1,即查询最后一个元素

2. 元组: tuple:()

(有序列表)

tuple一旦初始化就不能更改,查询与list相同

  • 只有一个元素的tuple

    ==定义时必须加一个逗号,==以消除歧义a = (1,)

    a = (1)定义的是1这个数

  • “可变的”tuple(实际是list在变):

    tuple中包含list:a = tuple(‘a’,‘b’,[‘A’,‘B’])tuple包含三个元素,a,b和list

四、字典 dic:{}

1. 特点
  1. 字典是一种可变的容器,可以存储任意类型的数据
  2. 字典中每个数据都是用‘键’(key)进行索引,而不像序列可以用下标进行索引
  3. 字典的数据没有先后顺序关系,字典的存储是无序
  4. 字典中的数据以键(key)-值(value)队进行映射存储,查找速度快
  5. 字典的键不能重复,且只能用不可变类型作为字典的键。

表示方法:用{}括起来,以冒号(:)分割键-值对,各键值对用分号分隔开

例:d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

2. 创建

**(1)创建空字典: **

  • d = {}

(2)创建非空字典:

  • d = {'name':'tarena','age':'15'}

(3)字典的构造函数 dict:

  • dict() 创建一个空字典,等同于{}
  • dict(iterable) 用可迭代对象初始化一个字典
  • dict(**kwargs) 关键字传参形式生成一个字典
3. 增

即把数据放入dict的方法:

  • (1)除了初始化时指定外

  • (2)通过key放入

    d['Adam'] = 67

一个key只能对应一个value

4. 删

删除一个key:

  • pop(key)方法,对应的value也会从dict中删除
5. 要避免key不存在的错误:
  • (1)通过in/not in判断key是否存在:

    'Thomas' in d #如果存在返回True,否则返回False;not in 与in返回值相反

  • (2)通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

    d.get('Thomas', -1)

dict的key必须是不可变对象

通过key计算位置的算法称为哈希算法(Hash)

五、集合set

1. 特点
  1. 集合是可变的容器
  2. 集合内的数据对象是唯一的,即没有重复的key,重复元素在set中自动被过滤
  3. 集合是无序的存储结构,集合中的数据没有先后关系
  4. set的原理和dict一样,集合内的元素必须是不可变对象
  5. 集合是可迭代的
  6. 集合是相当于只有键没有值的字典(是一组key的集合,但不存储value)

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容这些方法会创建新的对象并返回

2. 创建

要创建一个set,需要提供一个list作为输入集合

(1)创建空的集合:
set() #set()创建一个空的集合

(2)创建非空集合:
s = {1,2,3} #集合中的三个整数1,2,3
(3)集合的构造函数 set:

  • set()创建空集合
  • set(iterable) 用可迭代对象创建一个新的集合对象
3. 增
  • 通过add(key)方法
  • s.add(4)
4. 删
  • 通过remove(key)方法
  • s.remove(4)
5. 数学意义上的交集、并集等操作
  • 交集:s1 & s2
  • 并集:s1 | s2

五、判断

if语句
  • python的if没有括号,依靠缩进

  • ifelse后有冒号:

    if age >= 18:
    else:
    
  • elif:(else if)

六、循环

1. for…in循环
for x in ...:  #把每个元素带入变量x,然后执行缩进语句
	print(x)

[x * x for x in range(1, 11)]

for循环后面加上if判断:[x * x for x in range(1, 11) if x % 2 == 0]

两层循环:[m + n for m in 'ABC' for n in 'XYZ']

for循环其实可以同时使用两个甚至多个变量,比如dictitems()可以同时迭代key和value

for k, v in d.items(): print(k, '=', v)

2. while循环

与C语言同

3. 退出循环
  • break:退出循环
  • continue:退出当前循环

七、运算

1. 除法
10/3	#除法结果是浮点数
10//3	#除法结果是整数
10%3	#取余运算,结果是整数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值