美文网首页
Python:2. Python基础

Python:2. Python基础

作者: 许瘦子来世 | 来源:发表于2018-07-04 12:56 被阅读16次

输入输出

  1. 输出
  • 普通输出
print('hello,world')
  • 多个输出,用,隔开
print('First','Second','Third')
  • 打印整数,计算结果
print(300)
print(100+300)
  1. 输入
  • 无提示输入
name = input()
  • 有提示输入
name = input('please enter your name:')

数据类型和变量

  1. 整数

Python可以处理任意大小的整数,当然包括负整数。同数学写法:1,100,-8080
Python整数没有大小限制

  1. 浮点数

数学写法:1.23,3.14;科学计数法,把10用e代替,0.000012写成1.2e-5
Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)

  1. 字符串

以单引号''或双引号""括起来的任意文本。

  • 如果'本身也是一个字符,就可以用""括起来文本
  • 支持转义字符
  • 若很多字符需要转义,就需要加很多\,为了简化,允许用r''表示''内部字符串默认不转义
  • 若字符串内部有很多换行,为了简化,允许使用'''...'''的格式表示多行内容:print('''line1...line2...line3''')
  1. 布尔值
  • TrueFalse表示布尔值,注意大小写
  • 通过布尔运算计算出来

布尔值可以用andornot运算

  1. 空值

空值在Python中是一个特殊值,用None表示
None不能理解为00是有意义的。

  1. 变量
  • 变量名:大小写应为、数字和_的组合,且不能用数字开头
  • 动态语言:在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
  1. 常量

在Python中,通常用全部大写的变量名表示常量:PI
除法

  • /:除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
  • //地板除:除法只取结果整数部分
  • %:余数运算,可以得到两个整数相除的余数

字符串和编码

  1. 字符编码
    在计算机内存中,统一使用Unicode编码;当需要保存到硬盘或需要传输的时候,就转换为UTF-8编码
  • 用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
  • 浏览网页时,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。
  1. Python的字符串
  • 字符串是以Unicode编码,支持多语言
  • 单个字符的编码:ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
a = ord('A')
b = chr(25991)
print(a,b)

66 文
  • Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或保存到磁盘上,就需要把str变为以字节为单位的bytesbytes类型的数据用带b前缀的单引号或双引号表示
a = b'ABC'

- `ABC`和b'ABC'内容一样,但`bytes`的每个字符都只占一个字节
- 在`bytes`中,无法显示为ASCII字符的字节,用`\x##`表示
  • 以Unicode表示的str通过encode()方法可以编码为指定的bytes
a = 'ABC'.encode('ascii')
b = '中文'.encode('utf-8')
print(a,b)

b'ABC' b'\xe4\xb8\xad\xe6\x96\x87'
- 纯英文`str`可以用`ASCII`编码为`bytes`,内容一样的。
- 含中文的`str`可以用`UTF-8`编码为`bytes`。无法用`ASCII`编码,因为中文编码超出`ASCII`编码范围。
  • 从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法。
a = b'ABC'.decode('ascii')
b = b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
print(a,b)

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

b = b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8',errors='ignore')
  • 计算str包含多少个字符,用len()函数。如果换成bytes,就是计算字节数
  • 在操作字符串是,为了避免strbytes互相转换乱码问题,应始终坚持UTF-8编码
  • 由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,需要指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按照UTF-8编码读取,在文件开头写上这两行
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行:告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释
第二行:告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输入可能会有乱码。
  1. 格式化
    Python中,采用的格式化方式和C语言是一致的,用%实现
  • 不确定用什么,%s永远起作用,它会把任何数据类型转换为字符串
  • 转义:%%表示%
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
  • format()
a = 'Hello, {0}, 成绩提升了{1:.1f}%'.format('小明',17.125)
print(a)

Hello, 小明, 成绩提升了17.1%

format()方法,会用传入的参数依次替换字符串内的占位符`{0}、{1}……`

使用list和tuple

  1. list
    内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

classmates = ['Michael','Bob','Tracy']
print(classmates)

# 获取list元素个数
print(len(classmates))

# 用索引来访问list中每一个位置的元素,索引从0开始.确保索引不越界
print(classmates[0])
'''
要取最后一个元素,除了计算索引外,还可以用-1做索引,直接获取最后一个元素.
依次类推,可以获取倒数第二个,倒数第三个
'''
print(classmates[-1])

# 在末尾添加元素
classmates.append('Tom')
print(classmates)
# 在指定位置添加元素
classmates.insert(1,'Jack')
print(classmates)

# 删除末尾的数据
classmates.pop()
print(classmates)
# 删除指定位置数据
classmates.pop(1)
print(classmates)

# 替换元素
classmates[1] = 'Alex'
print(classmates)

# list里面的元素类型可以不同
a = [123,True,'Tom']
print(a)
# list中也可以有另一个list
b = ['pop', 123, ['app','iOS']]
print(b)

# 多维数组
c = ['app','iOS']
d = ['pop', c, 'push']
print(c[1],d[1][1])

# 如果list中一个元素没有,就是一个空的list,它的长度为0
f = []
print(len(f))
  1. tuple
    另一种有序列表叫元祖:tuple。一旦初始化就不能修改
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

a = ('Michael', 'Bob', 'Tracy')
print(a)

# 当定义一个tuple时,在定义的时候,tuple的元素就必须确定下来
b = (1,2)
print(b)
# 定义一个空的tuple
c = ()
print(c)
'''
定义一个只有1个元素的tuple
()既可以表示tuple,又可以表示数学公式的小括号。
为了避免歧义,定义一个元素时,必须加一个逗号
'''
d = (1,)
print(d)

# 指向不变
f = ('a', 'b', ['c','d'])
f[2][0] = 'X'
f[2][1] = 'Y'
print(f)

条件判断

  1. 条件判断
  • 注意冒号
  • 如果if语句判断是True,就把缩进的语句执行
  • elifelse if的缩写
if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
  1. 类型变换
str不能直接和整数比较,必须先把str转换成整数
s = '1234'
n = int(s)
print(n)

循环

只有两种循环

  • for...in
  • while
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

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

sum = 0
for x in [1,2,3,4,5,6,7,8,9]:
    sum = sum + x
print(sum)

# range()函数可以生成一个整数序列,再通过list()函数可以转换为list.
# range(5)生成的序列是从0开始小于5的整数
num = list(range(5))
print(num)

# while循环
sum_w = 0
n = 99
while n > 0:
    sum_w = sum_w + n
    n = n - 2
print(sum_w)

# break:提前结束,跳出循环
b = 1
while b < 100:
    if b > 10:
        break
    print(b)
    b = b + 1
print('End')

# continue:跳过当前循环,开始下一次循环
c = 0
while c < 10:
    c = c + 1
    if c % 2 == 0 :
        continue # 会直接继续下一轮循环,后续的print()不会执行
    print(c)

使用dict和set

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

# dict
'''
字典:dict,键值存储,无序。用空间换时间的一种方法
1. 查找和插入速度极快,不会随着key的增加而变慢
2. 需要占用大量的内存,内存浪费多

注意:
1. dict的key必须是不可变对象。通过key计算位置的算法交哈希算法(Hash)
2. 字符串和整型是不可变的,可以用作key。list是可变的,不可以。
'''
d = {'Mick':95, 'Tom':90}
print(d['Mick'])

# 增加键值
d['Bob'] = 60
print(d['Bob'])

# 修改key对应的value
d['Mick'] = 20
print(d['Mick'])

# 判断key是否存在 通过in判断,True or False
print('Jack' in d)
# 通过get()方法,不存在返回None
print(d.get('Thomas'))
print(d.get('Thomas',-1))

# 删除key,对应的value也会删除
print(d.pop('Bob'))

print(d)
  1. set
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# set
'''
set:一组key的集合,由于key不能重复。所以在set中,没有重复的key。无序

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

# 创建
a = set([1,2,3])
print(a)

# 重复数据自动被过滤
b = set([5,6,7,5,6,7])
print(b)

# 通过add(key)添加元素,可以重复添加,但不会有效果
b.add(8)
print(b)

# 通过remove(key)删除元素
b.remove(5)
print(b)

# 交集和并集
print(a & b)
print(a | b)

参考

  1. 廖雪峰的Python教程

相关文章

  • python 基础 - 目录

    python 基础篇 1.【python 基础 - 简介】2.【python 基础 - 开发环境搭建】3.【pyt...

  • 面试题大全

    Python基础部分 1. 为什么学习python 2. 通过什么途径学习Python 3. 谈谈对Python和...

  • Python:2. Python基础

    输入输出 输出 普通输出 多个输出,用,隔开 打印整数,计算结果 输入 无提示输入 有提示输入 数据类型和变量 整...

  • Python基础

    Python基础: 1.启蒙:以前科学竞赛学过Pascal; 2.基础:《笨办法学Python》、Crossin的...

  • python完全参考教程

    Python基础 Hello World! Python基础 基本数据类型 Python基础 序列 Python基...

  • python面试题----基础(80题)

    基础问答: 1.为什么学习Python?2.通过什么途径学习的Python?略… 正题: 1.Python和Jav...

  • 快速学习Python基础知识(4)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • 快速学习Python基础知识(3)

    Python 基础部分--了解Python快速了解 Python 基础知识(1)快速学习 Python 基础知识(...

  • Python教程列表

    Python 基础教程 Python 基础教程Python 简介Python 环境搭建Python 中文编码Pyt...

  • 2. Python基础

    基于网络课程《Python全栈开发专题》 记录笔记,请支持正版课程。 Python引入模块 代码:windows下...

网友评论

      本文标题:Python:2. Python基础

      本文链接:https://www.haomeiwen.com/subject/dgvduftx.html