当前位置: 首页 > news >正文

python - 第二天

数字:

        Python 数字数据类型用于存储数值。

        数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间

也就是如果修改了某个变量的值,会重新为该变量分配内存空间,但似乎改变列表(下方的变量b)内的元素,列表的内存空间没有改变,感觉b的存在类似于指针。

例子如下:

a=10;
b=[1,2,3];
print("原本的a的地址:",id(a));
print("原本的b的地址:",id(b));
print("原本的b[0]的地址:",id(b[0]));a=20;
b[0]=4;
print("修改后的a的地址:",id(a));
print("修改后的b的地址:",id(b));
print("修改后的b[0]的地址:",id(b[0]));

运行结果:

从运行结果上来看,列表内的元素的内存地址空间不是连续的,我简单查了一下,既然不连续,那b指向的这个空间存储的是什么,如下:(感觉python存储数据的方式目前很模糊了)

列表 b 的内存块是连续的,存储的是元素的引用(内存地址)。
列表中的元素本身(如整数 1、2、3、4)存储在不同的内存位置,但这些内存地址在列表的内存块中是按顺序排列的

可以使用del语句删除一些数字对象的引用

del语句的语法是:

del var1[,var2[,var3[....,varN]]]

您可以通过使用del语句删除单个或多个对象的引用,例如:

del var
del var_a, var_b

例子如下:

a=[1,2,3];
b=a;del  a[0];
print(b);del  a[-1];
print(b);del a;
print(b);

运行结果:

        python支持三种数值类型:整型,浮点型和复数。

复数的赋值可以直接用  a+bj  形式,比如:1+2j ,或者使用 complex(a,b);a为实部,b为虚部,两者都是浮点型。

        python的数值类型转换

  • int(x) 将x转换为一个整数。(int型是直接截取整数部分,后面全部舍弃,且不能转换复数

  • float(x) 将x转换到一个浮点数。

  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

例子如下:

a=1.6;
b=int(a);
print(b);c=1+2j;
d=int(c);#这个会报错,因为复数不能转换为整型
print(d);

运行结果:

        1 是对 a 进行 int 转换的结果,是 b 的值,后面的报错是因为对复数 c 进行了 int 转换,这个错误信息表明尝试将一个复数(complex)类型转换为整数(int)类型,而这是不允许的。int() 函数只能接受字符串、字节对象或实数(如整数和浮点数)作为参数,不能接受复数

python的数字运算

数字运算和我们日常的使用表达基本一致,比如:1+2,3-5,2*3之类的,这就是表达式,记得 ** 是幂运算, // 是除法中,只保留整数的部分,小数部分丢弃,向下取整(保留的是整数部分,但不一定是整型,结果具体是什么类型,和除数,被除数有关,如果有浮点数,那么结果就是浮点数。)  % 是模运算,取余,结果是除法的余数。

变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误:

除此之外还有各种可以使用的数字函数,太多了,到时候需要了,再去记忆吧。

个人感觉,数字中需要注意的是,有哪些运算可以使用比如幂,取整,取余,不同类型混合运算时系统如何进行的类型转换,有哪些数字函数。

字符串

可以使用单引号或者双引号来创建字符串(英文输入下的)

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用

        访问字符串中的值

可以使用方括号 [ ] 来截取字符串,字符串的截取的语法格式如下:

变量[头下标:尾下标]

字符串中不同位置字符的索引值如图:

eg:

a="hello.world";
b=a[1:3];
c=a[-3:-1];
print(b,c);
print(a[0],a[-1]);
print(a[0:4:2]);#这里0:4:2表示从0开始到4结束,每隔2个取一个元素,但不包括索引值为4的那个字符,即第五个字符

运行结果:

字符串更新和拼接:

在 Python 中,字符串(str)是不可变对象。一旦创建,字符串的内容就不能被修改。任何试图修改字符串内容的操作都会导致 TypeError。

可以截取字符串的一部分并与其他字段拼接;

eg:

a="hello.world";
print(a);
a[0]="H";#字符串是不可变的,这里会报错;
a[-3:-1]="WWW";#同样报错;
print(a);

运行结果:

如果真的想要改变字符串中的值,可以

1,创建一个新的字符串: 
通过字符串切片和连接来创建一个新的字符串。

eg:

a="hello.world";
print(a);
print("原本a的地址:",id(a));
a="H"+a[1:]; #这里通过拼接完成了改变,a[1:],表示从第二个字符开始到最后一个字符
print(a);
print("修改后的a的地址:",id(a));

运行结果:

        这里也说明了,刚刚上面说的如果改变数字数据类型的值,将重新分配内存空间。

2,使用列表进行修改: 
可以先将字符串转换为列表,修改列表后再将其转换回字符串。

a = "".join(b);#将列表b变成字符串,原列表内的元素通过双引号里面的元素连接
a="hello.world";
print(a);
print("原本a的地址:",id(a));
b=list(a);#将a转换成了一个列表,相当于[“h”,”e”,”l”,”l”,”o”,”.”,”w”,”o”,”r”,”l”,”d”]。
b[0]="H";
a=" ".join(b);#将列表转换成字符串,相当于“H”+”e”+”l”+”l”+”o”+”.”+”w”+”o”+”r”+”l”+”d”。#" "这里面有个空格,意思是使用空格连接列表内的这些元素,让其变成字符串print(a);
print(a);
print("修改后的a的地址:",id(a));
a="".join(b);#将列表转换成字符串,相当于“Hello.world”。#这里""里面上面都没有,相当于直接连接列表内的元素,让其变成字符串。,也可以使用其他的符合,比如逗号啥的
print(a);

运行结果如下:

3,格式化字符串: 
使用字符串格式化方法(如 str.format() 或 f-string)来创建新的字符串。(这个暂时不明白,问的ai)

eg:

a = "hello"
a = a[:0] + "H" + a[1:]  # 使用切片和连接
print(a)  # 输出: Hello# 或者使用 f-string
a = "hello"
a = f"H{a[1:]}"
print(a)  # 输出: Hello

还有各种转义字符,也太多了,边用边记忆吧。

字符串运算符:

+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print( r'\n' )
print( R'\n' )
%格式字符串请看下一节内容。

字符串格式化:

最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

eg:

print("my name is %s,and my age is %d."%("guo",100));# %前面是没有逗号的,注意

运行结果:

下面的格式化操作符辅助指令感觉还是要看一下:

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

字符串还有内容,明天补。

http://www.dtcms.com/a/472354.html

相关文章:

  • 罗湖商城网站建设哪家服务周到wordpress快速注册
  • 河北手机响应式网站建设设计创意产品设计及介绍
  • 怎么建立简单网站高端酒店网站模板
  • 网站备案单位查询系统百度推广售后服务电话
  • 企业网站定制网站备案被删除
  • 做付费网站自己的网站怎么做关键词优化
  • 重庆永川网站建设建设网站的申请信用卡分期付款
  • 做报名网站北京网站seo优化推广
  • 社保网站是每月1-6号都是在建设中的吗互联网金融p2p网站建设模板
  • 网站备案准备资料建设一个网站的流程
  • 做网站 视频山东建站管理系统
  • 网站建设域名未拿到目前最流行网站开发软件
  • 企业网站建设的方法有哪些直播软件排行榜2020
  • 提供网站建设小程序制作网站做授权登录
  • 做网站挣钱快吗辽宁省建设工程信息网a类业绩
  • 温州外贸网站建设公司网站需求表格
  • 百度不收录网站文章沙河做网站
  • 好用的快速网站建设平台上海建设摩托车科技有限公司官网
  • 什么是网络营销?它包括了哪些主要环节?北京网站推广优化
  • 可视化信息 网站做网站租服务器一年多少钱
  • Linux系统函数与C++标准库函数在文件操作中的对比分析
  • wordpress名站网站seo优化方案设计
  • 网站首页面设计网站如何优化排名软件
  • 网站怎样防止攻击江门网站如何制作
  • Micro850 控制器实战:功能模块解析与 CCW 组态全流程
  • 网站域名收费吗建设工程招投标网站
  • 怎么上传图片到公司网站php做的网站出现404
  • 百度注册公司网站oppo软件商店手机版
  • 信丰做网站seo广州工作好吗
  • 上线吧做的网站可以备案商城网站建设开发公司