Python学习基础总结
(安装基本软件)
1.Python和PyCharm的安装
2.Git和码云
常用的码云命令
git add . git commit -m "备注信息" git push -u origin master 上传 git pull origin master 将码云上的代码下载到本地 git pull origin master --allow-unrelated-histories解决两份本地文件上传的冲突 git remote add origin IP地址
1.Markdown常用语法
2.使用博客园
3.制作思维导图
4.排bug技巧
3.Typora安装
markdown语法
1.标题
2.代码块
三个```实现代码块
这是单行代码块效果
用一对``实现
3.列表
-
有序列表
1.跟内容
2.跟内容
…
-
无序列表
- -跟内容
- 跟内容
- *跟内容
4.链接
[目标地址名称](目的地IP地址)
- 往前缩进shift tab
- 往后缩进tab
6.图片
- md文件传输时图片丢失的解决方案
- 保存时,单击左上角的文件导出PDF格式
- 在网络平台的帮助下,上传图片,然后用网络地址代替
7.分割线
—实现分割线
实现分割线
***实现分割线
8.字体样式
-
加粗
**加粗**
-
倾斜
**
4.XMind思维导图
应用场景
1.层次关系
2.从大范围到具体
制作思维导图工具
XMind
- 常用快捷键
- 建立自分支Tab键
- 建立兄弟分支Enter键
5.博客
博客发布条件
1.以自己的观点发表新技术
2.借鉴一些国外新技术或新研究
3.自己的笔记,要求自己的笔记系统化。
博客园有学不完的技术
6.排BUG技巧
1.根据错误类型计算错误出现的问题,找到具体代码重新审核
2.百度搜索或谷歌搜索
3.stackoverflow
建议自己组一个BUG收集并发布到博客上进行检查和分享
第一章
一、Python简介
-
python2: 源代码不统一,重复 (2020年更新维护)
python3: 源代码统一,无重复
python2:python2中print不用,print “内容”
python3:Python3中print必须用括号括起,print(内容)
python2:数字Python2中input得到的为int
python3:python3中input得到的为str
二、变量
- 变量命名规则
- 由数字、字母和下划线组成
- 不能从数字开始
- 要有描述性
- 区分大小写
- 禁止使用python的关键字
- 汉字或拼音不能使用(low)
- 推荐的变量写法
- 驼峰体
- 下划线(官方推荐)
三、常量
四、注释
-
单行注释
- 也叫当行注释 用#号
- 用于当行注释
-
多行注释
“”"
“”"
使用文件或函数的三个引号、文档注释、注释
五、基础数据类型
-
字符串 str
- “字符串asdasdasdada”
- str str(字符串拼接)
- str * int(实现字符串成int倍的拼接)
- “字符串asdasdasdada”
-
整形(数字) int
-
用于比较和计算
python2:除法时返回整数(向下取整)
python3:除法时返回的小数(浮点数)
-
-
布尔值 bool
- 用于判断
- True ——真
- False——假
- 用于判断
六、用户互动
-
input —— 输入:python3中input获得的内容是字符串
-
print —— 输出
number = input("请输入您的内容:") print(number)
七、查看数据类型
-
type
- 查看数据类型
- int(str) —— 将字符串转换成整形手术
- str(int) —— 将整形转换成字符串
type(需要检测的对象)
- 查看数据类型
八、流程控制语句
-
单 if
-
if 条件:
缩进 结果
money = 10 print("从学校出发") if money >= 10: print("买个炸鸡") print("买个啤酒") print("走啊走") print("到家了")
-
-
二选一 ,if else
-
if 条件:
缩进 结果
else:
缩进 结果y
if 3>2: print("这是如果执行了") else: print("这是否则执行了")
-
-
多选一或不选 if elif elif elif
-
if 条件:
缩进 结果
elif 条件:
缩进 结果
elif 条件:
缩进 结果
if 1>2: print("这是A") elif 1>6: print("这是B") elif 1>5: print("这是C") elif 1>4: print("这是D") # 没有符合要求的就不输出结果
-
-
多选一 if elif elif else
-
if 条件:
缩进 结果
elif 条件:
缩进 结果
elif 条件:
缩进 结果
else :
缩进 结果
if 1>2: print("A") elif 2>3: print("B") elif 5>6: print("c") else: print("D")
-
-
if 嵌套
-
if 条件:
缩进 结果
if 条件:
缩进 结果
score if score > 500: if score > 700 : print("北大清华") else: print("随便找一个大学") else: print("分不够,不能上大学")
-
第二章
一、while循环
基础循环
while 条件:
循环体
例如:
while True:
print("Hello World")
# ctrl + C 终止程序
运行上面的代码会陷入死循环,使用while时一定不能陷入死循环,需要加条件,如下代码
flag = True
while flag:
print("循环体代码")
flag = False #把flag改为假
使用while计数输出,输出0-99
count = 0
while count < 100:
print("count")
count += 1 #每次循环进行自增
break关键字
用于中断循环,通常再满足某种条件时使用,如下,我希望在等于10时终止程序
num = 1
while num < 6:
print(num)
if num == 3:
break
print("结束") #当num=3时,break,并且下面的代码不执行
continue关键字
用于结束本次循环,仅仅跳出本次,例如,输出1-10,但是不输出3
num = 1
while num < 11:
if num == 3:
continue #当代码执行到这里,结束本次循环,后面的代码不执行,表现为不输出3
print(num)
while else使用
# 如下代码执行结果为456,是因为满足了while的条件,执行了内部的代码,遇到break终止了程序,所以else内代码不执行
i = 11
while i < 15:
print("456")
i += 1
break
else:
print("123")
# 如下代码执行结果为123,因为while条件不满足,内部代码不执行,直接执行else内部的代码
i = 11
while i < 10:
print("456")
i += 1
break
else:
print("123")
# 如下代码的结果为四遍456,一遍123,当执行完while内部代码之后,还会执行else 内部的代码
i = 11
while i < 15:
print("456")
i += 1
else:
print("123")
二、格式化输出
现在需要录入身边好友的信息,格式如下
------------ info of user ----------
Name :
Age :
job :
Hobbie:
------------- end ----------------
用print,过于死板,代码太长
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
a = '------------ info of user ----------'
b = 'Name:'
c = 'Age:'
d = 'Job:'
e = 'Hobby:'
f = '------------- end ----------------'
print(a)
...
print(f)
# 运行结果
------------ info of user ----------
Name:123
Age:456
Job:456
Hobby:789
------------- end ----------------
使用字符串
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
msg = ''' ------------ info of Alex Li ---------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ---------------- '''
print(msg%(name,age,job,hobby))
%是一个占位,s是用来声明类型的,s是字符串类型
还有数字类型%d或%i,用来接收数字,
age = int(input("请输入你的年龄")) # 需要用int把输入的字符串变成整型
print("你的年龄是%d" % age)
%% 转义
number = input('>>>')
s= '目前学习进度:%s%%'%num #当出现%,解释器认为是占位,但是后面没有声明类型,出现错误,必须用%转义,这样解释器就认为这是一个%
print(s)
常用运算符
- 算数运算
- 比较运算
- 逻辑运算
- 赋值运算
算数运算符
-
-
-
- /
- ** 幂
- % 取模
- // 取整除,向下取整
比较运算
== != >= <= > <
赋值运算
= | 简单的赋值运算符 | a= b+c |
---|---|---|
+= | 加法赋值运算符 | a = a+c 等效于 a+=c |
-= | 减法赋值运算符 | a = a-c 等效于 a-=c |
/= | 除法赋值运算符 | a = a/c 等效于 a/=c |
*= | 乘法赋值运算符 | a = ac 等效于 a=c |
**= | 幂赋值运算符 | a = a=c |
//= | 取整除赋值运算符 | a = a//c 等效于 a//=c |
%= | 取模赋值运算符 | a = a%c 等效于 a%=c |
逻辑运算
运算符 | 描述 |
---|---|
and | 两边同为True,返回true |
or | 两边只要有一个true,返回true |
not | 取反 |
# True and False
# 数字非零的都是真
# and 的运算,都为真才是真,有一个是假就是假
# and 的运算,都为真的的时候选择and后边的内容
# and 的运算,都为假的的时候选择and前边的内容
# or 的运算,只要有一个真就是真
# or 的运算,都为真的的时候选择or前边的内容
# or 的运算,都为假的的时候选择or后边的内容
成员运算
in,not in
判断元素是否在原字符串中,例如
print(‘x’ in ‘next’)
print(‘a’ in ‘love’)
三、初始编码
ASCll
只支持英文,不支持中文,占一个字节
GBK(国标码)
兼容ASCLL码
占两个字节
Unicode(万国码)
为了兼容世界的所有语言,但是太过浪费资源
UTF-8(unicode的扩展集)
UTF-8为了节省资源,采用变长编码
英文1个字节
欧洲2个字节
亚洲3个字节
单位转化
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了
第三章
今日内容
1.整型
2.布尔值
3.字符串
索引 切片 步长 字符串的方法
4.for循环
1.整型
- python3:全部是整形
- python2:整形,长整型long
- 用于计算和比较
2进制 - 10进制
0 * 2 ** 0 + 1 * 2 ** 1 +1 * 2** 2+ 1 * 2 ** 3 +…
10进制 -2进制(断除法)
2.布尔值
- 布尔值、整形、字符串转换
- 整型中只要是非零的就是True
- 布尔值 0 – False 1 – True
- 字符串中只要没有内容就是False
3.字符串
python中只要是引号引起来的就是字符串
字符串:用于数据存储,存储少量数据
字符串中每一个字符或者字母都成为元素
索引(下标)
"name"
0123
-4-3-2-1
#从左往右排,一一对应,通过下标读取数据,从0开始
a = 'yi_yi_dui_ying'
print(a[5])
print(a[6])
...
#索引的时候不能超出最大索引值
切片步长
# [索引值] [起始位置(包含):终止位置(不包含)]
a = 'yi_yi_dui_ying'
print(a[1:2])
print(a[-1:])
# print(a[:]) [(默认从最开始):(默认到最后)]
# 步长决定查找的方向 1是从左往右,-1是从右往左
练习
a = 'weixin,teng,腾讯,百度,阿里'
# 1.腾讯
print(a[12:14])
# 2.ii
print(a[2:6:2])
# 3.阿度
print(a[-2:-5:-2])
# 4.整体反转
print(a[::-1])
字符串方法
字符串是不可变数据类型,字符串是有序的
# name = "qwer"
# a = name.upper() # 全部大写
# print(a)
# print(name)
# name = "WQEW"
# a = name.lower() # 全部小写
# print(name)
# print(a)
# name = "qwer"
# print(name.startswith('e',2,3)) # 以什么开头 -- 返回的是布尔值
# print(name.endswith('l',0,2)) # 以什么结尾 -- 返回的是布尔值
# name = "alexwusirtaibIa"
# print(name.count("i")) # 统计,计数
user = input("user_name:").strip() # 去两边的空格制表符\n,换行符\t
# name = "xu_yu_wei"
# a = name.split("_") # 分割(默认空格,换行符\n,制表符\t)
# print(a) # ['xu','yu','wei']
# name = "alex,wusir,ta,i,b,a,i"
# a = name.replace(",",".") # 全部替换
# print(a)
# a = name.replace(",",".",4) # 可以指定替换的次数
# print(a)
# 字符串格式化(字符串的方法)
# name = "{}今年:{}".format("佳成",18) # 按照位置顺序进行填充
# print(name)
msg = "QWer"
# print(msg.isdigit()) # 判断字符串中的内容是不是全都是数字(阿拉伯数字)
# print(msg.isdecimal()) # 判断是不是十进制数
# print(msg.isalnum()) # 判断是不是数字,字母,中文
# print(msg.isalpha()) # 判断是不是字母,中文
# 总结:
# upper 全部大写
# lower 全部小写
# startswith 以什么开头
# endswith 以什么结尾
# count 计算出现的次数
# strip 去空格
# split 分隔符
# replace 替换符
# format 填充占位符
# isdecimal() 判断是不是十进制数
# isalnum() 判断是不是数字字母和中文
# isalpha() 判断是不是字母、中文
# isdigit() 判断字符串中的内容是不是全都是数字(阿拉伯数字)
4.for循环
# for 关键字
# i 变量名(可以任意修改)
# in 关键字
# msg 可迭代对象
# 可迭代对象: Python数据类型中 除了int,bool其余都可以迭代
msg = "文能提笔安天下,无能马上定乾坤"
for a in msg:
print(a)
print(a)
第四章
今日内容
- 列表
- 元组
- range
列表
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,是一种可变的数据类型
64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值
1.列表的增加
lst = ['q','w','e','r',5,9]
lst.append(10) #追加,在最末尾的地方进行添加
lst.insert(2, 's') #插入,在指定的索引值进行添加
lst.extend([1,2,3,4]) #迭代添加,把迭代的元素一个一个添加进列表
for i in [1,2,3,4]:
lst.append(i) # 把数据一个一个添加进列表
2.列表的修改
lst = [1,3,4,5,6,34]
lst[1] = 99 #通过索引值删除
lst[1:3] = "20" #通过切片进行修改,默认步长是1,必须是可迭代对象,修改的内容可多可少
lst[1:5:2] = 1000,100 #步长不为1的时候,必须一一对应
3.列表的删除
lst = ['q','w','e','r']
print(repr(lst.pop(2))) #默认删除最后一个元素并返回,repr()查看当前数据的原生态
lst.clear() #清空列表
del lst[2]
del lst[0:2] # 通过切片删除
del lst[1:4:2] # 通过步长删除
4.列表的查
lst = [1,1,8,7,9]
for循环
for i in lst:
print(i)
索引
lst[索引下标]
5.列表的嵌套
lst = ['one','two',['basketball',['dance','apple'],['score','qwer']],
['a','three','wqer']]
通过索引下标随便指定并取出
basketball
print(lst[2][1])
元组
tuple不可变数据类型,只支持查询
元组的方法
- 获取索引
- 统计
tu = (1,2,3,4,5,6,7,8,9)
print(tu.count(1))
print(tu.index(2)) # 通过元素查询索引
range
range的诞生是为了解决不能循环数字
for i in range(2,10,2):
print(i)
for i in range(100):
print(i)
range(1,10) # [起始位置:终止位置] 顾头不顾尾
range(1,10,2) # [起始位置:终止位置:步长] 默认为 1
range(10) # 10代表的是终止位置,起始位置默认为 0
range是一个可迭代对象
第五章
今日内容
- 字典
字典
语法:{
'key1':1,'key2':2}
注意:dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表 不是连续的. 所以不能进⾏切片⼯作. 它只能通过key来获取dict中的数据
列表可以存储大量的数据类型,但是只能按照顺序存储,数据与数据之间关联性不强。为了解决这一问题,就需要用字典。字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成
在dict中key是 唯⼀的.在保存的时候, 根据key来计算出⼀个内存地址. 然后将key-value保存在这个地址中.
这种算法被称为hash算法,key必须是可hash的
已知的可哈希(不可变)的数据类型: int, str, tuple, bool 不可哈希(可变)的数据类型: list, dict, set
注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
注意:dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表 不是连续的. 所以不能进⾏切片⼯作. 它只能通过key来获取dict中的数据
dict = {
1:1,2:2,3:'3',4:'5'}
print(dict[1]) # 1
print(dict[4]) # '5'
注意:dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表 不是连续的. 所以不能进⾏切片⼯作. 它只能通过key来获取dict中的数据
1.字典的增
dic = {
}
dic['name'] = '徐'
dic['age'] = 19
print(dic) # {'name': '徐', 'age': 19}
# 如果dict中没有出现这个key,就会将key-value组合添