【笔记】Python 3自学笔记之基础知识

这些天跟着廖雪峰老师的python教程学习了一些知识,做一下笔记

1. Python简介

先根据我的理解简单介绍一下python。

特点:

  • 基于C的高级语言;
  • 功能强大;
  • 面向对象
  • 代码量小;
  • 运行效率不如C;

应用领域:

  • 日常任务,脚本化机械重复的任务;
  • 做网站,比如youtube;
  • 网络游戏后台;

2. Hello World

讲一下我的安装和运行。更多方法可以自行搜索。

  1. 先从python官网下载python 3中适用自己开发环境的安装包。
  2. 安装时注意勾选Add Python 3.5 to PATH
    python 3安装
    可以避免手动配置windows path的步骤。
  3. 这个时候已经可以在windows cmd界面查看python 版本号,以及在集成的idle中进行开发了。
  4. 为了方便开发,安装好用的python ide: pycharm
    • 可以在官网申请到教育试用版

python编程一般分交互式环境和文本编辑器式。
在交互式环境中或者文本编辑器中(例如:notepad++)输入

print('hello world')

第一行pthon代码就完成了,运行试下。

3. 基本操作

3.1 输入输出

print()
输出变量或字符串' '

格式化字符串
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

常见的占位符有:

%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

input()
注意输入默认为字符串

>>> a = input()
1
>>> a
'1'#这里'1'为字符串

3.2 条件判断

if 后面接布尔值True(或者任意非空值) or False, 或者计算结果为布尔值的表达式2 > 3

if Ture:#or False, 注意':'初学很容易忘
    pass
elif Ture:
    pass
else:
    pass

3.3 循环

for x in ... 循环能把... 中list或tuple中的每个元素迭代出来,这点能够简化工作和代码量。

例如

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

输出

Michael
Bob
Tracy

常用for x in range(i) 注意range(i, j, k) 生成从 i ~ j-1 的步长为 k 的整数序列

还有while 循环

4. 数据类型

4.1 基本类型

  • 整数 int
  • 浮点数 float
  • 字符串 str
    • ' '" "表示
    • 转义字符 \orr' '
  • 布尔值 TrueorFalse
  • 空值 None
  • 变量
  • 常量 习惯用大写变量名PI = 3.14159275
  • 几种除法
    • /结果为浮点数
    • //地板除,取结果的整数部分
    • %求余

Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

4.2 字符串和编码

最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。

Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

把Unicode编码转化为“可变长编码”的UTF-8编码。

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

4.3 list, tuple, dict and set

list
['asdf', 1234, Ture, [12, 'aaa'], p, []]

  • len()获取list元素个数
  • l[-1]指列表最后一个元素
  • l.append()添加元素到末尾
  • l.pop(i)删除i位置元素
  • 直接赋值替换该位置元素

tuple
有序列表元组,初始化后不能修改。(tuple中元素指向永远不变,内容可能改变)
('asdf', 1234, Ture, [12, 'aaa'], p, [])

# 定义空tuple
>>> t = ()
>>> t
()
# 定义只有元素'1'的tuple
>>> t = (1)
>>> t
1
# 定义只有一个元素的tuple
>>> t = (1,)
>>> t
(1,)

dict
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。需要占用大量的内存,内存浪费多。用空间来换取时间的一种方法。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} # 注意',' ':'的写法
>>> d['Michael']
95

这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。

  1. 通过in判断key是否存在
  2. 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value

dict的key必须是不可变对象。因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

set
一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set的原理和dict一样,所以,同样不可以放入可变对象

set可以看成数学意义上的无序无重复元素的集合。

  1. 通过add(key)方法可以添加元素到set中。
  2. 通过remove(key)方法可以删除元素。

两个set可以做数学意义上的交集&、并集|等操作。

不变对象
str是不变对象,而list是可变对象。

对于可变对象,比如list,对list进行操作,list内部的内容是会变化的。

要始终牢记的是,a是变量,而'abc'才是字符串对象!有些时候,我们经常说,对象a的内容是'abc',但其实是指,a本身是一个变量,它指向的对象的内容才是'abc'

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

发布了22 篇原创文章 · 获赞 2 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章