【Python3入坑】【持续更新中】初识Python(v3.9)【初学のday3发起】
初识Python(v3.9)
【——主要针对有C\C++语言基础的Coder吼i】
[by_041]
文章目录
Tips
-
在Python中
''
和""
含义一样 -
注释:
# 行注释 ''' 语段注释 '''
-
Python对空格、回车和Tab十分敏感,格式要注意了
- 空格和Tab直接代替了
{}
行首的缩进情况表示层次,同一个层次中的语句相当于C\C++中被{}
括号括起来了
- 空格和Tab直接代替了
-
实践证明:精度损失依然存在!!但是,其用了某种方法【我猜是数据扰动】减小了在运行中精度损失对整体的影响
输入输出
输出
-
print()
:输出所有参数,最后换行 - 参数表:
参数 | 含义 | 默认 | 注意 |
---|---|---|---|
end=’’ | 输出结尾=’’ | 回车 | 只能在末尾加入【不包括同类标识符,下同】 |
sep=’.’ | 参数间间隔=’.’ | 空格 | 只能在末尾加入 |
-
还有格式化输出:
#(类似C的printf) print("格式化字符串"%变量) print("格式化字符串"%(变量1,变量2,…)) # 有点C++的cout流的味道 print("这是变量1:{}\n这是变量2:{}\n这是变量3:{}\n".format(a1, a2, a3)) print("{:.6f}".format(float(a)))
格式化字符 含义 %c 字符 %s 字符串,通过str()字符串转换来格式化 %i 有符号十进制整数 %d 有符号十进制整数 %u 无符号十进制整数 %o 八进制整数 %x、%X 十六进制整数 %e、%E 索引符号 %f 浮点实数 %g、%G %f、%e的简写 %% 输出百分号,%.2f%%
输入:
-
input()
:输出()
中的内容(只允许存在一个参数),然后读取一行字符返回其组成的字符串同行输入:
a,b=map(int,input().split())
如果有多个变量只需:
a,b,c=map(int,input().split())
用逗号隔开:
a,b,c=map(int,input().split(','))
基本语法
下面的内容基本上就是相较于C\C++的观点
其中C\C++的基本运算符大都被Python很好的保留甚至优化了
不同点有以下:
内容 Before After 真假常数 true
、false
True
、False
或None
逻辑运算 &&
、||
、!
and
、or
、not
无返回值类型 void NoneType
数据类型相关
-
Python中的变量十分灵活
- 类型:
- 主要有:整数(int)、实数(float)、字符串(str)、列表(list)
- 还包括:
- 等差参数(range):相当于用逗号隔开的一个参数集
- 无返回型(NoneType)
- 支持直接赋值:
a=1
、s=''
- 支持递增操作:
s+='.'
- 类型:
-
序列很强大!!!!
- eg.套娃:
[1,2,3,4,[1,2,3,4,[1,2,3,4],5],5]
- eg.套娃:
-
相关操作:
- 返回变量类型:
type(a)
- 强制类型转换:
int(a)
、float(a)
、str(a)
、list()
- 返回变量类型:
-
对象内存地址:
id(a)
-
运算符号:
-
字符串str类型可以进行
s1+s2
(在s1末尾追加s2的串)、s*a
(s重复a次的串)还有>\<\=\<=\>=
(字典序比较)操作 -
a**b
:次方,a的b次幂 -
a//b
:整除,向下取整 -
赋值运算符:
**=
、//=
[相较与C\C++增添的,++
、--
失效] -
成员运算符:
in
[a in b
返回a是否在序列b的元素中]、not in
-
身份运算符:
is
[id(a)==id(b)
是否引用了同一对象]、is not
-
运算符优先级:
运算符 描述 ** 指数(最高优先级) *、/、%、// 乘、除、取模、取整除 >>、<< 右移、左移(位运算) & 位’AND’ ^、| 位运算符 <=、<、>、>= 比较运算符 [没有<>、]==、 != 等于运算符 =、%=、/=、//=、-=、+=、*=、**= 赋值运算符 is、is not 身份运算符 in、not in 成员运算符 and、or、not 逻辑运算符
-
-
字符串:
-
表示:[
''
或""
、'''...'''
或"""..."""
,其中'
和"
符号成对基本等价]-
和C\C++相同,用
""
括起来,或用和""
基本等价''
括起来# 差异在: print("I'm GOOD !") print('I\'m GOOD !') # 上面俩句等价,且只能这么写 print('I said "yes" ') print("I said \"yes\" ") # t同样,这个也是
-
新增
'''间隔几行'''
或"""间隔几行"""
,表示多行字符串print('''这里是第一行的内容 中间的内容1 中间的内容2 这里是最后一行''') print(‘End_by_041’) # 输出: # 这里是第一行的内容 # 中间的内容1 # 中间的内容2 # 这里是最后一行 # End_by_041 # [Finished in 0.1s]
-
常用的转义字符:
转义字符 描述 (在行尾时) 续行符 \ \ 反斜杠 \ ’ 单引号 \ " 双引号 \a 响铃 \b 退格(BackSpace) \000 空 \n 换行 \v 纵向制表 \t 横向指标 \r 回车 \f 换页 \oyy 八进制数,yy代表的字符,换行 \xyy 十六进制yy代表字符,例如\x0a代表换行 \other 其他的字符以普通格式输出
-
-
-
序列/列表重点讲一下,存储方式有点像链表
- 添加:
-
a.append(b)
:在列表a尾添加元素b -
a.insert(f,b)
:在列表a的f位置添加元素b,原来的f位置以及后面的元素后移
-
- 删除:
-
del a[b]
:删除列表a的第b号元素 -
a.pop(b)
:删除列表a的第b号元素,并返回a[b]的值 -
a.remove(b)
:删除列表a中值为b的第一个元素,不存在则啥也不干,甚至会报错,记得判断
-
- 排序:
-
a.sort()
:对列表a进行永久性排序,按照字母顺序 -
a.sorted()
:对列表a进行临时性排序 -
a.reverse()
:对列表a反转排序
-
- 属性:
-
a.len()
:确定长度
-
功能强大的体现
# 代码 a=[[v for v in range(3)],10,(1,2),[[101],[123,321,[12,12]]]] for i in a: print(i) # 运行结果: # [0, 1, 2] # 10 # (1, 2) # [[101], [123, 321, [12, 12]]] # [Finished in 0.1s]
- 添加:
-
元组
控制语句注意上层语句后的’:’
判断
-
if
if ???: ... elif ???: ... else: ...
循环
Python中的while()和for的功能就区分的很明确了
break、continue语句仍然适用
然后Python还多了一个占位语句(空语句)操作:
pass
然后循环之后可以加一个同一层次的**
else:
**以至少运行一次!!且比do-while好用也好理解多了!
-
while(条件循环)
i=1 while i<=10: print(i) i+=1 else: print(i) # 存在的意义:至少运行一次!!且比do-while好用也好理解多了!
-
for(遍历循环,按照下标)
# for的遍历,很像C++11的auto for i in range(5): # 遍历[0,,4] print(i) for a in [1,2,3,4]: # 遍历列表,a的类型是各个元素的类型 print(a) for c in "Hello!": # 遍历字符串,c的类型时str,是子串! print(c) # 因为是按照下标的 isp=list(range(11)) for a in isp: print("now :",a) if a*2 in isp: isp.remove(a*2) print('\tremove(%d)'%(a*2)) else: print(a) print('') for a in isp: print(a,end='') # 运行结果: # now : 0 # remove(0) # now : 2 # remove(4) # now : 3 # remove(6) # now : 5 # remove(10) # now : 7 # 7 # now : 8 # 8 # now : 9 # 9 # # 1235789 # [Finished in 0.1s]
进阶操作(大多与列表list有关!)
min(a,b,...) # 最小值
max(a,b,...) # 最大值
sum(a,b,...) # 求和,只针对数
# 当list中的俩俩元素类型相同时可以直接在括号中写列表名求相应值
# 链表的切片,这部分的a、b都是大等0的整数
list_name[a:b] # 下标在[a,b]的元素组成的子序列
list_name[a:] # 下标a以及其之后的元素组成的子序列
list_name[:b] # 下标b以及其之前的元素促成的子序列
list_name[-a:] # 列表中的倒数a个元素所组成的子序列
list_name[:] # 同样表示列表中的所有元素组成的序列
range(begin,end,step) # 步长为step在[begin,end)的等差数列,参数一定要是整数(int),可正可负
range(begin,end) # 默认步长为1在[begin,end)的等差数列
range(a) # 从0开始的a个整数,[0,,a-1]!!
list(range(a)) # 生成[0,a)的整数列表
# 列表的解析:下面的例子是制作1~9的平方表
squares = [ value**2 for value in range(1,11) ]
# 相当于
# numbers = list(range(1,11))
# squares = []
#
# for number in numbers:
# squares.append(number**2)
# print(squares)
# =======================================
# 调库!!!以下是需要导入库的内容:
import random # 引入随机数库
x=random.randint(0,100) # 返回[a,b]范围内的随机整数,天生就是随机数呢!!
from time import perf_counter
print(perf_counter()) # 输出程序运行时间
import
-
导入整个模块,或者将某个模块中的一个或多个函数导入:
import some_module from some_module import some_function from some_module import func_1,func_2,...
安装插件
-
在cmd命令窗输入:
安装: pip install 库名 更新 pip install --upgrade 库名
-
博主已安装:
lxml、 pyOpenSSL 、 Twisted 、pywin32、scrapy pillow√,matplotlib√,numpy√,pandas√,jieba√,wordcloud√,imagecodecs√ 等等一堆(漫长)
发文时才接触三天python,有不当之处请在评论区指出ha~
可能要过比较久了下次更新的关键词:元组、字典、函数相关
借鉴:CSND网址
本文地址:https://blog.csdn.net/qq_42710619/article/details/110853180