python的基本原理_Python基础理论

Python简介

python是面向对象(Python 中的每样东西都是对象)的一门解释性语言,其为我们提供了非常完善的基础代码库和大量的第三方库(所谓的库就是说有很多基本的已经写好的现成的东西,来帮助你加快开发进度)

python非常适合开发的以下应用:

1、首选是网络应用,包括网站、后台服务等等;

2、其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等

在运行python前,需要将python源代码转化成机器能够识别的机器码,而这就是通过python的解释器来完成的,例如:CPython

变量

python中定义变量很简单,不用像java一样先定义变量类型(静态语言)

int a = 123; // a是整数类型变量

a = "ABC"; // 错误:不能把字符串赋给整型变量

并且python可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量(动态语言)

a = 'ABC'

因为python解释器对于这个操作是干了两件事:

1、在内存中创建了一个'ABC'的字符串对象;

2、在内存中创建了一个名为'a'的变量,并把他指向'ABC'

输出

字符串输出:print('liu','cheng') ','号会输出一个空格

整数输出:print(100)

计算结果输出:print('100 + 200=',100+200)

输入

name = input('please input your name: ')

注意:input输入的类型是str,所以要输入num的话,要记得进行类型转换一下

name = int(input('please input your name: '))

运算符

>>> 10/3

3.3333333333333335

>>> 10//3

3

布尔值可以用and、or和not运算

数据类型

不同的数据需要定义不同的类型,但是Python是一种动态类型化语言,所以无需声明变量类型。

i = 100

这个过程其实有两步:第一是创建一个整数对象;第二步就是将这个对象的引用赋值给变量

在python中可以直接处理的几种数据类型有:

. 整数

. 布尔值

. 浮点数

. 字符串

. 列表

. 字典

而Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的。

不可变:一个变量一般都会映射到一个内存地址,内存地址存储对象值,而当修改变量的值

时是将变量映射到了另一个内存地址,不是在原来的内存地址上进行修改

i = 5

id(i)

i += 1

id(i)

可变:修改变量的值时,是在原来内存地址上进行修改对象值

字符串使用'或者"来标示

加法进行字符串的拼接

如果字符即包含'或者",则print('I\'m "ok"'),进行转义

转义还有通过r,print(r'\n')与print('\n')是相同效果

还有就是内部有非常多要换行时,print('''line1 ... line2 ... line3''')

字符串表示中str与repr区别是repr是将字符串转换为合法的表达式,而str则是将字符串转换为更容易让用户理解的形式

布尔值

布尔值可以用and、or和not运算

列表(list)

list列表是可变对象,调用对象自身的任意方法,会创建新的对象并返回

python中的列表有点类似数组的概念,python中的列表list是一个有序集合,可以随时删除和添加元素

赋值:classmates = ['Michael', 'Bob', 'Tracy']

引用:classmates[0]

classmates[-1]

追加:classmates.append('adam')

插入:classmates.insert(1,'jack')

删除末尾与指定的:classmates.pop()

classmates.pop(1)

替换:classmates[1] = 'sarah'

列表加法和乘法:

L = [1] +[2] + [3] 此时L是[1, 2, 3]

L * 2 此时L是 [1, 2, 3, 1, 2, 3] 相当于将列表重复相加

还有就是元组(tuple),tuple初始化后就不能修改,所以tuple相比list更加安全。

t = (1, 2)

注意:t = ('a', 'b', ['A', 'B']) tuple中放置list,list是可变的。

tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

字典(dict)

dict与list的区别:

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

dict的查找速度快,dict就是通过给定一个名字,比如'Michael',dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,也就是95这个数字存放的内存地址,直接取出来,所以速度非常快

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

赋值:d['Adam'] = 67

判断存在:'Thomas' in d 或者 d.get('Thomas')

dict内部存放的顺序和key放入的顺序是没有关系的。

dict的key必须是不可变对象。因为dict是根据key来计算value的存储位置

字符串和编码

在计算机的世界只有数字0和1,所有任何文本在计算机处理前都需要将其转为转换为数字; 最早的ascii编码用一个字节来对所有的字母、数字、符号等进行编码;

但是ascii是包含不了各国语言文字的,所以出现了unicode编码,unicode编码用两个字节来包含各国语言文字的编码;

unicode编码由于其特点所以使用率不是很好,直到utf-8编码出现改变了现状,utf-8广泛用于数据传输中;

字符串编码

'ABC'.encode('ascii')

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。

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

字符串解码

b'ABC'.decode('ascii')

我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str

为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

格式化

经常需要输出'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

常见的占位符有:

%d 整数

%f 浮点数

%s 字符串

%x 十六进制整数

print('%2d-%02d' % (3, 1))

用%%来表示一个%

判断

if <条件判断1>:

<执行1>

elif <条件判断2>:

<执行2>

elif <条件判断3>:

<执行3>

else:

<执行4>

循环

其实在python中for一般用于迭代,while才是真正的用于循环

names = ['Michael', 'Bob', 'Tracy']

for name in names:

print(name)

sum = 0

n = 99

while n > 0:

sum = sum + n

n = n - 2

print(sum)

break语句可以提前退出循环

continue语句跳过当前的这次循环,直接开始下一次循环

这两个语句通常都必须配合if语句使用

参考

这个是本人正在学习python的笔记纪录,后续会陆续发布自己学习过程中做的笔记及遇到的问题思考,和广大知友交流的同时也达到一个自我提高的目的,望广大知友对不正确的内容提出改正。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值