Python1.基础
本文最后更新于525 天前,其中的信息可能已经过时,如有错误请发送邮件到gedaling@foxmail.com

1.计算机基础

1.1基本概念

计算机组成

计算机是由多个硬件组合而成,常见的硬件有:CPU、硬盘、内存、网卡、显示器、机箱、电源…

注意事项:机械将零件组合在一起,他们之间是无法进行协作。

操作系统

用于协调计算机的各个硬件,让硬件之间进行协同工作,以完成某个目标。

常见的操作系统分类:

windows,优点:生态牛逼、工具多;缺点:略慢、收费。【个人】

xp、win7、win10

linux,优点:资源占用少、免费(很多公司的服务器上安装Linux);缺点:工具少、告别游戏。【企业的服务器】

centos、ubuntu、redhat

mac,优点:生态还行、工具差不多都有、用户体验和交互;缺点:不能玩游戏

软件(应用程序)

在安装上操作系统之后,我们会在自己电脑上安装一些常用的软件,例如:QQ、杀毒、微信

1.2.编程语言

常见的编程语言:Java、C#、Python、PHP、C++….

1.3.编译器/解释器:

翻译官,将代码翻译成计算机能够识别的命令

解释器

实时翻译:拿到1000行代码之后,解释一句交给操作系统一句。

Python、PHP、JavaScript、Ruby…一般称为解释型语言

编译器

全文翻译。拿到2000行代码之后会将他编译成一个临时文件(计算机能够识别命令),再把文件交给操作系统去读取。

C、C++、Go、Java….一般称为编译型语言

1.4.如何学编程

选择一门编程语言,安装此编程语言相关的编译器/解释器。

学习编程语言的语法规则,根据语法规则+业务背景设计并开发你的软件

使用编译器/解释器去运行自己写的代码。

1.5.语言的分类

翻译的维度:

解释型语言:Python、PHP、JavaScript、Ruby…

编译型语言:C、C++、Go、Java….

高低的维度:

低级编程语言,写出来的代码直接可以被计算机识别。

高级编程语言,写出来的代码无法直接被计算机识别,但可以通过某中方式将其转换为计算机可以识别的语言。

 

2.基础入门

2.1.进制和编码

  • 编码

ascⅡ编码,2^8=256中对应关系

gb-2312编码

gb-2312编码,1980年

gbk编码,对gb-2312进行扩展,包含中日韩等文字,1995年

unicode编码

浪费空间,在文件存储和网络传输时,不会直接使用,而在内存中会使用

ucs2:用2个字节表示

ucs4:用4个字节表示

utf-8编码

utf-8是对unicode的压缩,用尽量少的二进制去与文字进行对应

0000-007F 用1个字节表示

0080-07FF 用2个字节表示

0800-FFFF 用3个字节表示

10000-10FFFF 用4个字节表示

编码必须要保持:保存和打开一直,否则会乱码。

Python解释器默认是以utf-8编码的形式打开文件

建议:所有Python代码文件的都要以utf-8编码保存和读取。

2.2.python代码运行方式

脚本式:pycharm

交互式:终端

2.3.进制

十进制:可以转换为二、八、十六进制,bin()、oct()、hex()

二进制:可以转换为十进制,int(“0b1101”,base=2)

八进制:可以转换为十进制,int(“0o27”,base=8)

十六进制:可以转换为十进制,int(“0x1c”,base=16)

image-20231128215545948

2.4.单位

b(bit)位

B(Byte)字节

KB(killobyte)千字节

MB(Megabyte)兆

GB(Gigabyte)千兆

TB(Terabyte)万亿字节

更大的单位PB/EB/ZB/YB/BB/NB/DB

2.5.输入

input()

2.6.输出

print(),默认在尾部会加换行符

print(“”,end=””),修改默认结尾换行

2.7.数据类型

整型int、字符串str、布尔类型bool

列表list、元组tuple、集合set、字典dict

2.8.变量

给变量赋值:变量名=值

变量名只能由字母、数字、下划线组成

不能以数字开头

不能用Python内置的关键字

2.9.注释

解释器会忽略不按照代码去运行

单行注释:control+?

多行注释

2.10.条件语句

if else,注意缩进

条件嵌套,if elif else

2.11.循环语句

while循环,注意缩进

while else

一般在做无限制(未知)循环此处时使用

for循环,注意缩进

一般应用在已知的循环数量的场景

for+range()

break

用于循环中终止循环

注意缩进位置,终止当前循环

continue

用于循环中结束本次循环,开始下一次循环

注意缩进位置,结束当前循环

2.12.字符串格式化

%

text="我叫%s,今年%d岁"%(name,age)

data=text%(name,age)

字符串格式化中存现百分比的显示,请一定要加%%以实现输出%

format(推荐)

text="我叫{},今年{}岁,真实的姓名是{}。".format("武沛齐',18,"武沛齐")

data=text.format(name,age)

f

text=f"嫂子的名字叫{name},今年{age}岁"

text=f"嫂子的名字叫{name},今年{19+2=}岁"

text=f"嫂子的名字叫{name},今年{22:#b}岁"

text=f"嫂子的名字叫{name},今年{22:#o}岁"

text=f"嫂子的名字叫{name},今年{22:#x}岁"

2.13.运算符

算数运算符

运算符 描述 实例
+ 加—两个对象相加 a + b输出结果30
减—得到负数或是一个数减去另一个数 a – b输出结果-10
* 乘—两个数相乘或是返回一个被重复若干次的字符串 a * b输出结果200
/ 除—x除以y b / a输出结果2
% 取模—返回除法的余数 b % a输出结果0
** 幂-返回x的y次幂 a ** b为10的20次方,输出结果100000000000000000000
// 取整除-返回商的整数部分 9//2输出结果4,9.0//2.0输出结果4.0

比较运算符

运算符 描述 实例
== 等于—比较对象是否相等 (a==b)返回False
!= 不等于—比较两个对象是否不相等 (a!=b)返回true
<> 不等于—比较两个对象是否不相等 (a<>b)返回true。这个运 算符类似!=
> 大于—返回x是否大于y (a>b)返回False
< 小于—返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a<b)返回true
>= 大于等于—返回x是否大于等于y。 (a>=b)返回False
<= 小于等于—-返回x是否小于等于y。 (a<=b)返回true

注意:python3中不支持<>

赋值运算

运算符 描述 实例
 = 简单的赋值运算符 c=a+b将a+b的运算结果赋值为c
+= 加法赋值运算符 c+=a等效于c=c + a
-= 减法赋值运算符 c-=a等效于c=c – a
* = 乘法赋值运算符 c*=a等效于c=c * a
/= 除法赋值运算符 c/=a等效于c=c / a
%= 取模赋值运算符 c%=a等效于c=c % a
**= 幂赋值运算符 c**=a等效于c=c ** a
//= 取整除赋值运算符 c//=a等效于c=c//a

成员运算(是否包含)

算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False. x在y序列中,如果x在y序列中返回True.
not in 如果在指定的序列中没有找到值返回True,否则返回False x不在y序列中,如果x不在y序列中返回True.

逻辑运算符(且或非)

算符 描述 实例
and 布尔*与”—如果x为False,x and y返回False,否则它返回y的计算值 (a and b)返回true
or 布尔”或”—如果x是True,它返回True,否则它返回y的计算值 (a or b)返回true
not 布尔*非”—如果x为True,返回False。如果x为False,它返回True not(a and b)返回false

算数运算符优先级 大于 比较运算符

比较运算符优先级 大于 逻辑运算符

逻辑运算符内部三个优先级 not>and>or

总结:加减乘除>比较>not and or

位运算符

 

3.环境搭建

3.1.Python优点

语法简洁&适合小白

类库的强大。

开发效率高

3.2.Python解释器种类

CPython,底层是由C语言开发出来的Python解释器。3.9.0版本

Jython,是由Java语言开发出来的Python解释器,方便让Python和Java代码做集成。

IronPython,是基于C#语言开发出来的Python解释器,方便让Python和C#代码做集成。

RubyPython,…

PyPy,是对CPython的优化,他的执行效率提高了。引入编译器的功能,本质上将Python代码进行编译,再去执行编译后的代码。

3.3.Pycharm编辑器

提高写代码效率+用解释器运行代码

下载、安装、破解

 

4.数据类型

4.1.None

意味着这个值啥都不是或表示空。相当于其他语言中null作用一样。在一定程度上可以帮助我们去节省内存

例如:

v1=None
v2=None

 

4.2.整型int

  • 定义

十进制整数的统称,可哈希

  • 独有功能

bit_length()二进制有多少个位组成

  • 公共功能:加减乘除
  • 转换

bool转int:int(True)、int(False)

str转int:int(“进制数”,base=),进制转换

float转int:小数转整型只保留整数部分

 

4.3.布尔类型bool

  • 定义

布尔值只有”真True”、”假False”,可哈希

  • 转换

整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False

其他均为True

做条件自动转换:

如果在if、while条件后面写一个值当做条件时,会默认转换为布尔类型,然后再做条件判断

 

4.4.浮点型float

  • 定义

一般在开发中用于表示小数

  • 公共功能:加减乘除
  • 转换

在浮点型转换为整型时,会将小数部分去掉

想要保留小数点后N位,data=round(v1,N)

浮点型相加:直接相加,补码有坑

decimal.Decimal("0.1")+decimal.Decimal("0.2")

 

4.5.字符串str

  • 定义

用于表示文本信息,可哈希

字符串不可被修改

  • 独有功能

“XXX”.功能()或v1.功能()

"XXX".startswith(),判断字符串是否以XX开头?得到一个布尔值

"XXX".endswith(),判断字符串是否以XX结尾?得到一个布尔值

"XXX".isdecimal(),判断字符串是否为十进制数?得到一个布尔值

"XXX".strip(),去除字符串两边的空格、换行符、制表符、指定内容,得到一个新字符串

"XXX".lstrip(),去除字符串左边的空格、换行符、制表符、指定内容

"XXX".rstrip(),去除字符串右边的空格、换行符、制表符、指定内容

"XXX".upper(),字符串变大写,得到一个新字符串

"XXX".lower(),字符串变小写,得到一个新字符串

"XXX".replace("",""),字符串内容替换,得到一个新的字符串

"XXX".split("|"),根据特定字符将字符串切割,得到一个列表

"XXX".rsplit("|"),根据特定字符从右边将字符串切割,得到一个列表

"XXX".join(),字符串拼接,得到一个新的字符串

"XXX".format(),格式化字符串,得到新的字符串

"XXX".encode("utf-8"),字符串转换为字节类型

"XXX".center(),将字符串内容居中、居左、居右展示

"XXX".zfill(),帮助你填充0,处理二进制数据
  • 公共功能

相加:字符串+字符串

相乘:字符串*整数

长度:len()

索引:index[1],=获取字符串中的字符,可正取倒取

字符串中只能通过索引取值,无法修改值

切片:message[0:2]获取字符串中的子序列,可正取倒取

只能通过切片取值,无法修改值

步长:message[0:5:2]跳着去字符串的内容,可正取倒取

循环:while循环、for循环、range()、lens()、break、continue

  • 转换

一般情况下,只有整型转字符串才有意义

 

4.6.列表list

  • 定义

有序、可修改、容器,可存放多个不同类型的元素

  • 独有功能

基本上都是直接操作列表内部,不会创建新的一份数据

追加:data_list.append(),在原列表尾部追加值

批量追加list1.extend(list2),将一个列表中的元素逐一添加另外一个列表

插入data_list.insert(1,""),在原列表的指定索引位置插入值

删除data_list.remove(""),在原列表中根据值删除(从左到右找到第一个删除)

慎用,找不到会报错

索引剔除item=data_list.pop(1),

在原列表中根据索引位置为1的元素,并将删除值赋值给变量item

清空原列表data_list.clear()

根据值获取索引data_list.index("")(从左到右找到第一个删除)

慎用,找不到会报错

列表元素排序data_list.sort()

data_list.sort(reverse=True),让列表从大到小排序

排序原理,根据unicode编码大小排序

排序时内部元素无法进行比较时,程序会报错(尽量数据类型统一)

反转原列表data_list.reverse()

 

  • 公共功能

相加:两个列表相加获取生成一个新的列表

相乘:列表*整型,将列表中的元素再创建N份并生成一个新的列表

运算符in包含:通过in来判断元素是否在列表中

获取长度:len(data_list)

索引:data_list[1]

切片:data_list[0:2]、data_list[1:]、data_list[:-1],生成新的列表

步长:data_list[1:4:2]、data_list[0::2]、data_list[1::2]、data_list[4:1:-1]

while循环、for循环、range()、lens()、break、continue

  • 转换:

int、bool无法转换成列表

str转换为列表将字符串中的元素拆开,意义不大

元组tuple、集合set转换为列表

嵌套:list、tuple、set

 

4.7.元组tuple

  • 定义

有序、不可修改、容器、可哈希

“我儿子不能换成是别人,但我儿子可以长大”

建议:在元组的最后多加一个逗号

  • 独有功能

无,不可修改

  • 公共功能

相加:两个元组相加获取生成一个新的元组

相乘:列表*整型,将元组中的元素再创建N份并生成一个新的元组

获取长度、索引、切片、步长

while循环、for循环、range()、lens()、break、continue

  • 转换:tuple(其他)

字符串、列表可以转换为元组

嵌套:list、tuple、set

 

4.8.集合set

  • 定义

无序、可变、不允许数据重复的容器

无序,无法通过索引取值

可变,可以添加和删除元素

不允许数据重复

用途:维护一大堆不重复数据时

  • 独有功能
添加:data.add()

删除:data.discard()

交集:s1.intersection(s2)或s1&s2

并集:s1.union(s2)或s1|s2

差集:s1.difference(s2)或s1-s2

 

  • 公共功能

减/差集、&交集、|并集

长度、while循环、for循环

存储原理:查找速度特别快

第一步:利用哈希函数将”xxx”转换成一个数值

第二步:取余数(实际掩码做&运算)

第三步:将”XXX”放在哈希表的3索引位置

注意:元素必须是可哈希的值,即通过哈希函数把值转换成一个数字

支持嵌套

 

4.9.字典dict

  • 定义

无序、键不重复且元素只能是键值对的可变的个容器

元素只能是键值对

键不重复,重复则会被覆盖

无序:Python3.6之后字典是有序的

键:必须可哈希,int、bool、str、tuple

值:任意类型

用途:需要表示一组固定格式信息时,用字典可以更直观

  • 独有功能
获取值:info.get()

所有的键:info.keys()

所有的值:info.values()

所有的键值:info.items(),item是一个元组(键,值)

设置值:data.stedefault()

更新字典键值对:info.update()

移除制定键值对:data=info.pop(),移除的同时会将值赋值给data

按顺序移除:后进先出
  • 公共功能

减/差集、&交集、|并集

长度len、是否包含in(键是否存在)

索引:索引是键,获取的是值

根据键修改值和添加值、删除值

while循环、for循环(可通过循环其中的键、值、键值进行循环)

  • 转换:

其他类型要满足形式[(“k1″,”v1”),(“k2″,”v2”)]

存储原理:查找速度特别快

第一步:利用哈希函数将”xxx”转换成一个数值

第二步:取余数(实际掩码做&运算)

第三步:将”XXX”放在哈希表的3索引位置

注意:元素必须是可哈希的值,即通过哈希函数把值转换成一个数字

支持嵌套:字典元素键的子子孙孙都必须是可哈希的,值可以是任意类型

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇