Python编程语言学习笔记

news2024/9/24 3:24:29

目录

  • 1 书写格式
    • 1.1 程序框架格式
    • 1.1 注释
    • 1.2 保留字
  • 2 数据
    • 2.1 整数类型
    • 2.2 浮点类型
    • 2.3 复数类型
    • 2.4 数值运算符
    • 2.5 数值运函数
    • 2.6 数值类型转换函数
    • 2.7 math 库
    • 2.8 字符串
      • 2.8.1 字符串的表示
      • 2.8.2 字符串的区间访问
      • 2.8.3 字符串操作符
      • 2.8.4 字符串操作函数
    • 2.9 字符串类型的格式化 farmat() 函数
      • 2.9.1 连接不同类型
      • 2.9.2 对齐/填充
      • 2.9.3 千位分隔符
      • 2.9.3 小数精度截取
      • 2.9.4 输出不同进制整数类型
  • 3 程序的控制结构
    • 3.1 关系操作符
    • 3.2 逻辑操作符
    • 3.3 if 语句
      • 3.3.1 单分支语句
      • 3.3.2 二分支语句
      • 3.3.3 多分支语句
    • 3.4 循环语句
      • 3.4.1 for 语句
      • 3.4.2 while 语句
      • 3.4.3 break 和 continue
  • 4 函数
    • 4.1 简单函数
    • 4.2 含参函数
      • 4.2.1 可选参数
      • 4.2.1 可变数量参数
      • 4.2.3 参数的无序写法
    • 4.3 带返回值函数
    • 4.4 全局变量和局部变量
  • 5 组合数据类型
    • 5.1 序列
    • 5.1.1 字符串(str)
    • 5.1.2 元组(tuple)
    • 5.1.3 列表(list)
    • 5.2 集合
      • 5.2.1 集合(set)
    • 5.3 映射类型
      • 5.3.1 字典
  • 6 文件和数据格式化
    • 6.1 文件操作
      • 6.1.1 文件打开关闭
      • 6.1.2 文件读写

1 书写格式

1.1 程序框架格式

说明:Python 采用严格的<缩进>来表明程序的格式框架。

1.1 注释

格式:使用#号、双引号和单引号。
代码示例:

'''
这是一个多行注释
这三个点可以是三个单引号,也可以是双引号加一个单引号
'''
"""
多行注释也可以全是双引号
"""
import turtle   #这是一个单行注释
turtle.setup(650,350,200,200)

1.2 保留字

使用下述代码可以输出打印出python的保留字列表。
代码示例:

print(keyword.kwlist) # 列出保留字
FalseNoneTrueandasassert
asyncawaitbreakclasscontinuedef
delelifelseexceptfinallyfor
fromglobalifimportinis
lambdanonlocalnotorpassraise
returntrywhilewithyield

2 数据

2.1 整数类型

进制种类引导符号
十进制
二进制0b或0B
八进制0o或0O
十六进制0x或0X

代码示例:

a = 10
a = -8
b = 0x5d
c = 0b11001100
d = 0o745621

2.2 浮点类型

代码示例:

e = 10.2
e = 50.0
f = 4.1e-5

注:

  • 浮点数使用必须带有小数部分,小数部分可以是‘0’
  • 浮点数运算,计算机只能提供15位数字的准确性。Python通过标准库 decimal 提供更准确的数字类型Decimal。

2.3 复数类型

定义:就是高中数学中 x2 = -1 求解得出的那个复数。复数类型中,实数部分和虚数部分都是浮点类型。
代码示例:

g = 12.4+4j
h = -3.6+5J
k = g.real # 获取实部
l = g.imag # 获取虚部

2.4 数值运算符

操作符描述
x+y求和
x-y求差
x*y求积
x/y求商
x//yx除以y的整数商
x%yx除以y的余数,模运算
-xx的负数
+xx本身
x**yx的y次幂,即 xy

2.5 数值运函数

函数描述
abs(x)x的绝对值
divmod(x,y)以二元组形式输出(x//y,x%y)
pow(x,y[z])(x**y)%z,[…]表示该参数可以省略
round(x[ndigits])对x四舍五入,保留 ndigits 位小数 ,round(x) 表示返回四舍五入的整数
max(x1,x2,…,xn)求 x1,x2,…,xn的最大值,n没有限制
min(x1,x2,…,xn)求 x1,x2,…,xn的最小值,n没有限制

2.6 数值类型转换函数

函数描述
int(x)将x转换为整数,x可以为浮点数或字符串
float(x)将x转换为浮点数,x可以为整数或字符串
complex(re[,im])生成一个复数,实部为re,虚部为im,re可以是整数,浮点数或字符串,im 可以是整数或浮点数但不能为字符串

2.7 math 库

定义:math 库:包含了 π,e,∞;还包含向上/向下取整、返回x的阶乘、返回小数或整数部分、返回最大公约数、比较相似性等函数和求对数。三角函数运算、高斯误差函数,余补高斯误差函数,伽马函数等。

2.8 字符串

2.8.1 字符串的表示

代码示例:

a = '单引号表示'
b = "双引号表示"
c = '''三引号表示'''

字符串使用的是Unicode编码方式,因此也可以使用Unicode码值输出一些特殊字符。

2.8.2 字符串的区间访问

代码示例:

a = 'Python语言程序设计'
表示输出描述
print(a[0],a[3],a[8])P h 程
print(a[3:8])hon语言
print(a[::-1])计设序程言语nohtyP反向输出
print(a[0:10:2])Pto语程2是步长
print(a[5:])n语言程序设计
print(a[:8])Python语言

2.8.3 字符串操作符

操作符描述
x+y连接两个字符串
x*n复制n次字符串x
x in s如果x是s的子串,返货True,否则返回False
str[i]索引,返回第 i 个字符
str[N:M]切片,返回第N到M个字符串,其中不包含M
x+y
x+y

2.8.4 字符串操作函数

函数描述
len(x)返回字符串的长度
str(x)返回任意类型所对应的字符串形式
chr(x)返回Unicode编码x对应的单字符
ord(x)返回单字符对应的Unicode编码
hex(x)返回整数x对应十六进制的小写形式字符串
oct(x)返回整数x对应八进制的小写形式字符串
str.lower()返回字符串的副本,全部小写
str.upper()返回字符串的副本,全部大写
str.islower()当字符串都是小写时,返回True,否则返回False
str.isprintable()当字符串都可打印的,返回True,否则返回False
str.isnumeric()当字符串都是数字时,返回True,否则返回False

2.9 字符串类型的格式化 farmat() 函数

格式: <模板字符串>.farmat(<逗号分隔的参数>)

2.9.1 连接不同类型

代码示例:

print("{}{}{}{}".format("红豆生南国,","春来发几枝。","愿君多采撷,","此物最相思。"))

运行结果:
输出:红豆生南国,春来发几枝。愿君多采撷,此物最相思。

2.9.2 对齐/填充

代码示例:

x = 'Python'
print("{0:30}".format(x))  #默认左对齐
print("{0:>30}".format(x)) #右对齐
print("{0:^30}".format(x)) #居中
print("{0:-^30}".format(x)) #居中并填充字符-

运行结果:
Python
Python
Python
------------Python------------

2.9.3 千位分隔符

代码示例:

a = 123456789
print("{0:,}".format(a)) 

运行结果:
123,456,789

2.9.3 小数精度截取

代码示例:

x = 12.36547
print("{0:.2f}".format(x)) # 保留两位有效数字,且四舍五入

运行结果:12.37

2.9.4 输出不同进制整数类型

代码示例:

x = 200
print("{0:b}".format(x)) # 二进制
print("{0:c}".format(x)) # Unicode
print("{0:d}".format(x)) # 十进制
print("{0:o}".format(x)) # 八进制
print("{0:x}".format(x)) # 十六进制

运行结果:
11001000
È
200
310
c8

注:由于该函数过于强大,此处不能够一一列举各种用法。

3 程序的控制结构

3.1 关系操作符

和C语言的几个操作符一样~

操作符含义
<小于
<=小于等于
>大于
>=大于等于
==等于
!=不等于

3.2 逻辑操作符

逻辑符含义
X and Y
X or Y
not X

3.3 if 语句

3.3.1 单分支语句

格式:条件不用括号包含,最后注意有个冒号;

代码示例:

x = 200
if x < 100 :
    print("x小于100")

3.3.2 二分支语句

代码示例:

x = 1000
if x <= 100 :
    print("小于100")
else:
    print("x大于100")

3.3.3 多分支语句

代码示例:

x = 63
if x < 60 :
    print("不及格")
elif 60 <= x <70:
    print("及格")
elif 70 <= x <80:
    print("中等")
elif 80 <= x <90:
    print("良好")
elif x >=90:
    print("优秀")

注:上文有一个很神奇地方,它的条件语句可以像数学公式一样写70 <= x < 80

3.4 循环语句

3.4.1 for 语句

格式:
for <循环变量> in <遍历结构>:
····<语句块>

注:遍历结构可以是:字符串、文件、组合数据类型或range()函数等。

代码示例:

for i in range(10) :
    print("当前运行次数:"+ str(i) )

循环和else结合的用法:当循环正常执行完成后才执行else语句块中的内容

代码示例:

for i in range(10) :
    print("当前运行次数:"+ str(i) )
else:
    print("循环正常结束")

3.4.2 while 语句

格式:
while<条件> :
····<语句块>

代码示例:

while x < 5:
    print("当前运行次数:"+ str(x) )
    x = x+1
else:
    print("循环正常结束")

3.4.3 break 和 continue

break 用法和C语言中一致,用来跳出当前最内层循环结构,继续下面的语句代码。
continue 用法和C语言中一致,用来提前结束本次循环,跳过循环体中尚未结束的代码,然后开始下次循环。

4 函数

格式:
def <函数名>(<参数列表>):
····<函数体>
····return <返回值列表>

4.1 简单函数

代码示例:

#定义函数
def happy() :
    print("自定义子函数输出")
happy() # 调用函数

4.2 含参函数

代码示例:

#定义函数
def happy(name) :
    print("祝{}生日快乐!".format(name))
happy("LiMing") # 调用函数

4.2.1 可选参数

代码示例:

#定义函数
def addnum(a,b=5) :
    c = a+b
    return  c
print(addnum(1)) # 运行结果就是6

4.2.1 可变数量参数

代码示例:

#定义函数
def vfun(a,*b) :
    print(type(b))
    for n in b:
        a += n
    return a
print(vfun(1,2,3,5,7)) 
'''
运行结果是:
<class 'tuple'>
18
'''

4.2.3 参数的无序写法

代码示例:

#定义函数
def addnum(a,b) :
    c = a+b
    return  c
print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序

4.3 带返回值函数

代码示例:

#定义函数
def addnum(a,b) :
    c = a+b
    return  c
print(addnum(1,2))
print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序

函数可以返回0个,1个或多个返回值。当返回多个返回值的时候,多个值以元组类型保存输出。
代码示例:

#定义函数
def vfun(a,b) :
    return a,b+a
print(vfun(1,5))
'''
运行结果是:
(1, 6)
'''

4.4 全局变量和局部变量

  • 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变。
  • 简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变。
  • 对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值。
  • 如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。

5 组合数据类型

在这里插入图片描述

5.1 序列

定义:序列类型是一唯元素向量,元素之间存在先后关系,通过序号访问。

5.1.1 字符串(str)

详见 2.8 节

5.1.2 元组(tuple)

定义:一旦创建不能被修改,用于表达固定数据项、函数返回值、多变量同步赋值、循环遍历等;
表示方式:元组使用逗号和圆括号表示。
代码示例:

('cat','dog',123,0x5f)

5.1.3 列表(list)

定义:
  列表是包含0个或多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可自由对列表中的数据项进行增加、删除或替换长度无限制,元素类型多样
  列表可以通过[ ]表示,也可以通过list()函数将元组或字符串转化为列表。
代码示例:

Is = [425,"BIT",(10,"cs"),456]
is2 = list("Python程序设计基础")
print(Is)
print(is2)

运行结果:
[425, ‘BIT’, (10, ‘cs’), 456]
[‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘程’, ‘序’, ‘设’, ‘计’, ‘基’, ‘础’]

5.2 集合

5.2.1 集合(set)

定义:集合与数学概念中的集合类似。包含0个或多个数据项的无序组合。集合中的元素不可重复,元素类型只能是固定的数据类型,例如整数、浮点数、字符串、元组等。列表、字典和集合烈性本身都是可变数据类型,不能作为集合的元素。
代码示例:

s = {425,"BIT",(10,"cs"),456}
print(s)

5.3 映射类型

定义:
  映射类型是“键-值”数据项的组合,每个元素是一个键值对。即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系,源于属性和值的映射关系。
  键(key)表示一个属性,可以理解为一个类别或项目,值(value)是属性的内容,键值对刻画了一个属性和它的值。
  键值对将映射关系结构化,用于存储和表达

5.3.1 字典

格式:
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
键值对的访问使用中括号<值> = <字典变量>[<键>]
代码示例:

dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
print(dcountry["中国"])

代码示例:元素增删

dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
dcountry["英国"]="England" #新增键值对
print(dcountry)
del dcountry["法国"]       #删除键值对
print(dcountry)

输出:
{‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘法国’: ‘France’, ‘英国’: ‘England’}
{‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘英国’: ‘England’}

6 文件和数据格式化

6.1 文件操作

6.1.1 文件打开关闭

格式:
文件打开:<变量名> = open(<文件名>,<打开模式>)
文件关闭:<变量名>.close()

打开模式含义
‘r’只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
‘w’覆盖写模式,文件不存在则创建,存在则完全覆盖
‘x’创建写模式,文件不存在则创建,存在则返回异常FileExistsError
‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式,默认值
‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能

代码示例:

x = open('12.txt','r')
x.close()

6.1.2 文件读写

三种文件读取函数

函数含义
line = fo.read() 读出整个文件的内容
line = fo.readline()读出一行内容
line = fo.readlines()读所有行,每行以元素形成一个列表

代码示例:

fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','rt')
line = fo.read()
print(line)
fo.close()

注:文本的编码方式需要是ANSI,中文才可以在运行窗口正确的显示出来!

三种文件写入函数

函数含义
<文件>.write(s)向文件写入字符串
<文件>.writelines(list)将一个元素全为字符串的列表写入
<文件>.seek(offset)改变文件操作指针位置:0-文件开头;1-当前位置;2-文件结尾

代码示例:

fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','w+')
ls = ["富强 ","民主 ","文明 ","和谐"]
fo.writelines(ls)
fo.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[杂谈]-二进制到十进制转换

二进制到十进制转换 文章目录 二进制到十进制转换1、概述2、十进制计数系统3、二进制计数系统4、二进制到十进制转换示例5、十进制到二进制转换6、二进制数的名称和前缀7、总结 1、概述 二进制数在数字系统和计算机中用于计算数据。 此外&#xff0c;数字系统之间的数据传输或…

【iOS】浅析static,const,extern关键字

文章目录 前言一、staticstatic修饰局部变量static修饰全局变量总结 二、const三、extern声明全局变量声明函数在头文件中使用总结 前言 笔者本周在学习单例模式时&#xff0c;用到了static关键字&#xff0c;特此总结博客记录学习static&#xff0c;const&#xff0c;extern关…

文件名批量重命名与翻译的实用指南

随着电脑使用的普及&#xff0c;我们经常需要处理大量的文件和文件。有时&#xff0c;我们可能希望将文件的名称进行批量修改&#xff0c;并且还希望将这些名称翻译成其他语言&#xff0c;以便更好地管理和查找文件。在这篇文章中&#xff0c;我们将介绍一种实用的技巧&#xf…

【面试经典150 | 数组】删除有序数组中的重复项 II

文章目录 写在前面Tag题目解读题目来源解题思路方法一&#xff1a;原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等…

Hadoop生态圈中的数据同步工具SQOOP

Hadoop生态圈中的数据同步工具SQOOP 一、sqoop的概念二、sqoop的核心功能1、数据导入import2、数据导出export 三、sqoop的底层实现四、sqoop的安装和部署五、sqoop的基本操作1、sqoop查看RDBMS中有哪些数据库2、sqoop查看某一个数据库下有哪些数据表3、通过sqoop执行sql语句 …

SOLIDWORKS有限元分析怎么做?

在许多专业领域中&#xff0c;尤其是在机械行业&#xff0c;为了缩短开发周期&#xff0c;设计完成后通常需要进行仿真分析。通常情况下&#xff0c;大家会使用专业的有限元仿真软件如ANSYS进行仿真分析。但其实&#xff0c;SOLIDWORKS软件因其简单易用的制图功能以及内置的专用…

bigcache

bigcache 介绍 借用下图片&#xff0c;实际上&#xff0c;这张图还不太全&#xff0c;queueItem 中&#xff0c;entrydata的最前端 8 字节是时间戳&#xff0c;用来计算过期时间的。 bigcache 的思想主要有以下几点&#xff1a; 大并发下&#xff0c;尽量减少同步带来的时…

3 分钟,带你了解低代码开发

一、低代码平台存在的意义 传统软件开发交付链中&#xff0c;需求经过3次传递&#xff0c;用户→业务→架构师→开发&#xff0c;每一层传递都可能使需求失真&#xff0c;导致最终交付的功能返工。 业务的变化促使软件开发过程不断更新、迭代和演进&#xff0c;而低代码开发即是…

2023!6招玩转 Appium 自动化测试

Appium是个什么鬼 Appium是一个移动端的自动化框架&#xff0c;可用于测试原生应用&#xff0c;移动网页应用和混合型应用&#xff0c;且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用&#xff0c;移动网页应用是指网页…

合约谈崩,3大汽车厂工人集体罢工 | 百能云芯

周五&#xff0c;美国联合汽车工会&#xff08;UAW&#xff09;在底特律三大汽车制造商通用汽车、福特汽车和克莱斯勒母公司Stellantis旗下的各一家工厂同步举行了罢工&#xff0c;可能因工资和就业保障问题引发一场代价高昂且长时间的对峙。 协商签订新劳资协议的最后期限已过…

【多线程】死锁 详解

死锁 一. 死锁是什么二. 死锁的场景1. 一个线程一把锁2. 两个线程两把锁3. N 个线程 M 把锁 三. 死锁产生的四个必要条件四. 如何避免死锁 一. 死锁是什么 死锁是这样一种情形&#xff1a; 多个线程同时被阻塞&#xff0c;因为每个进程都在等其他线程释放某些资源&#xff0c;…

在波卡区块链学院学习 Web3 是种什么体验?

成立于 2022 年的 Polkadot Blockchain Academy&#xff08;波卡区块链学院&#xff0c;以下简称 PBA&#xff09;是由波卡生态成立的一个深入的、开创性的区块链课程&#xff0c;致力于帮助 Web3 创新者和未来的顶级编程人员实现他们的想法和抱负。 波卡区块链学院由波卡创始…

LeetCode 1222. 可以攻击国王的皇后【数组,模拟】1391

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

Yakit学习

Yakit下载 下载地址&#xff1a; yaklang/yakit: Cyber Security ALL-IN-ONE Platform (github.com) MITM交互式劫持 这个模块相当于burpsuite的proxy模块&#xff0c;MITM 操作台可百分百替代 BurpSuite执行所有操作(下载并安装证书、劫持请求、响应、编辑劫持到的数据包等)。…

Datax 数据同步-使用总结(二)

一、前言 这部分主要记录 datax 实现增量同步的方案。 二、核心思路 结合datax 提供的preSql、 postSql以及占位符&#xff0c;外加另外一张表同步日志表来记录相关同步信息。 三、版本迭代 3.1 初版本 where tbq.opera_date > cast(date_format(DATE_SUB(NOW(), inte…

图论第四天|127. 单词接龙、841. 钥匙和房间、463. 岛屿的周长

127. 单词接龙 ★ 文档讲解 &#xff1a;代码随想录 - 127. 单词接龙 状态&#xff1a;开始学习。&#xff08;★&#xff1a;需要多次回顾并重点回顾&#xff09; 思路&#xff1a; 本题需要解决两个问题&#xff1a; 图中的线是如何连在一起的 题目中并没有给出点与点之间的…

【Robotframework+python】实现http接口自动化测试

前言 下周即将展开一个http接口测试的需求&#xff0c;刚刚完成的java类接口测试工作中&#xff0c;由于之前犯懒&#xff0c;没有提前搭建好自动化回归测试框架&#xff0c;以至于后期rd每修改一个bug&#xff0c;经常导致之前没有问题的case又产生了bug&#xff0c;所以需要…

长城汽车,能打“持久战”吗?

文丨智能相对论 作者丨沈浪 百年汽车工业史正在进入一个全新的发展阶段&#xff1a;油改电的变革仍在激化&#xff0c;智能化的探索才刚刚起步&#xff0c;汽车产品将以什么样的面貌展现在世人面前&#xff0c;市场格局又将迎来怎样的变化&#xff1f;无人可知。 然而&#…

【Linix-Day12-线程同步和线程安全】

线程同步 和 线程安全 线程同步 除了信号量和互斥锁&#xff08;互斥锁和条件变量上次介绍过&#xff09;&#xff0c;还有两种方式同步 1.读写锁 当同时对一块内存读写时&#xff0c;会出现下列问题&#xff0c;故而引入读写锁 接口介绍&#xff1a; 1.int pthread_rwloc…