python基本语句及其意思_Python语法基础(1),一

一、Python的对象模型

对象是Python语言中最基本的概率,在Python中处理的一切都是对象。Python中许多内置对象可提供编程者使用,

内置对象可直接使用,如数字、字符串、列表 、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),

随机产生函数random()等;

常用内置对象如下:

c08507d01f7233ec55a3e70f425e4eb8.png

cc28f40d40341a0c52e39cafbcf87670.png

二、Python变量(不需要事先声明变量名及其类型)

>>>x = 3 创建整型变量x,并赋值为3

>>> x = 'hello world. ' 创建字符串变量x,并赋值为‘hello world.’

如果这两个创建是在一起的时候,x的值已经不是3了,改为hello word.

如下:

x = 3

print(x)

x = 'hello world'

print(x)

运行结果:

E:\project\Python\python\python.exe E:/project/Python/Process/Test1/Test.py

3

hello world

Process finished with exit code 0

x = 3

#print(x) (#注释符号)

x = 'hello world'

print(x)

运行结果:

E:\project\Python\python\python.exe E:/project/Python/Process/Test1/Test.py

hello world

Process finished with exit code 0

Python属于强类型编程语言,Python解释器会根据**赋值或运算**来自动推断变量类型。

Python还是一种动态类型语言,变量的类型也是可以随时变化的。

如:

x = 3

print(type(x))

输出结果:

x = 'hello world.'

print(type(x))

输出结果:

x = [1,2,3]

print(type(x))

x = isinstance(3,int)

print(type(x))

输出结果:

课外补充:

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

type() 不会认为子类是一种父类类型,不考虑继承关系。

isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

重点:

如果变量出现在赋值运算符或复合赋值运算符(例如+=、*=等)的左边,则表示创建变量或修改变

量的值,否则表示应用该变量的值。

x = 3

print(x**2) #**2 表示x的二次方

x += 6 #等价于x = x(3)+6

print(x)

x = [1,2,3]

x[2] = 5

print(x) #print 可以直接输出x这个列表

print(x[2])

运行结果:

9

9

[1, 2, 5]

5

**特别注意: 字符串和元组属于不可变序列,不能通过下标的方式来修改其中的元素值

#(tuple)元组:

x = (1,2,3)

print(x)

x[1] = 3

输出结果:

Traceback (most recent call last):

File "E:/project/Python/Process/Test1/Test.py", line 3, in

x[1] = 3

(1, 2, 3)

TypeError: 'tuple' object does not support item assignment

#元组对象不支持不支持项目分配

#(stirng)字符串:

x = 'hello world'

print(x)

x[1] = 3

输出结果:

hello world

Traceback (most recent call last):

File "E:/project/Python/Process/Test1/Test.py", line 3, in

x[1] = 3

TypeError: 'str' object does not support item assignment

#字符串对象不支持项目分配

**在Python中,准许多个变量指向同一个值(**补充:id()函数用于获取对象的内存地址。id(object返回对象的“身份”。这是一个整数(或长整数),在该对象的生存期内,此整数保证是唯一且恒定的。具有不重叠生存期的两个对象可能具有相同的id()值。在CPython实现细节:这是对象在内存中的地址。)

x = 3

print(id(x))

y = x

print(id(y))

**输出结果:**

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

140734928023872

140734928023872

Process finished with exit code 0

如图:

4753fbfa25a01fdbdc521fd6828f902c.png

如果当其中一个变量改值以后,其内存地址将会变化,但这并不影响另一个变量

x = 3

y = x

x += 6

print(x)

print(id(x))

print(id(y))

输出结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

9

140735356760576

140735356760384

Process finished with exit code 0

如图:

eae179bfd689152ebf11787c03fb474d.png

所以我们得出,

Python采用的是

基于值得内存管理方式

,如果为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址。

x = 3

y = 3

z = 3

k = x

j = y

l = z

print(id(x),id(y),id(z),id(k),id(j),id(l))

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

140735356760384 140735356760384 140735356760384 140735356760384 140735356760384 140735356760384

Process finished with exit code 0

31b1942ebf7a4c849727da8a805e119f.png

在我们验证结论过程中,我们使用到了变量的赋值,其实Python变量的赋值与一般的其他语言有一些差别。

Python变量语句的执行过程:

1、首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量指

向这个内存地址。Python中的变量并不直接存储值,而是存储了值得内存地址或者应用,这也是变量类

型随时可以更改的原因

2、同时Python具有自动存储管理功能,对于没有任何变量指向的值,Python自动将其删除,Python跟

踪所有的值,并自动删除不再有变量指向的值。因此,Python程序猿一般情况下不需要太多考虑内存管

理的问题。

3、显示使用del命令删除不需要的值或显示关闭不再需要访问的资源,乃是一个好的习惯,同时也是一个优秀程序员的基本素养之一。

Python变量的定义注意事项:

1、变量名必须以字母或下划线开头,但以下划线开头的变量在Python中有特性含义

2、变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等)

3、不能使用关键字作为变量名,

可以导入keyword模块后使用print(keyword.kwlist)查看所有PythoN

关键字

4、不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会

改变其类型和含义,

可以通过dir(_ builtins_ )查看所有内置模块、类型和函数;

5、变量名对英文字母的大小写敏感,如x与X不是同一个变量。

三、数字

数字的特性:

1、数字是不可变对象,可以表示任意大小的数字

2、整数类型可以分为:十进制(我们平时使用的整数)、十六进制整数(利用十六个数字

(1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)来表示整数,数字前面必须以0x开头,如0xc)、八进制整数(与十六进制类似,必须以0o开头)、二进制整数(必须以0b开头)

3、浮点数(小数)

4、Python内置支持

复数类型

a = 1 + 12j

b = 12 + 1j

c = a + b

print(c)

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

(13+13j)

Process finished with exit code 0

/**使用c.real ---> 查看复数实部

c.imag ----> 查看复数虚数

c.conjugate() ---->返回共轭复数

a*b---->复数乘法

a/b---->复数除法

*/

5、Python3.6.X支持数字中间位置使用单个下划线作为分割来提高数字的可读性,类似于数学上使用逗号作为千分位分隔

符。

>>>x = 1_000_000

>print(x)

1000000

四、字符串

性质:

1、用单引号、双引号或三引号界定的符号系列称为字符串

2、 单引号、双引号、三单引号、三双引号可以互相嵌套, 用来表示复杂字符串 ‘abc’、‘123’、‘中国

‘、“Python”、’’‘Tom said, “Let’s go”’’’

print("janry")

print('seri')

print('xx'"x")

print('''tomm''')

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

janry

seri

xxx

tomm

Process finished with exit code 0

3、 字符串属于不可变序列  空字符串表示为’‘或 “”

4、 三引号’’'或"""表示的字符串可以换行,支持排版较为复 杂的字符串;三引号还可以在程序中表示较长的注

字符串的运算:

1、字符串合并

a = "xiha"

b = "haxi"

c = a + b

d = "hshsh""xjjjx"

print(c)

print(d)

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

xihahaxi

hshshxjjjx

Process finished with exit code 0

#注意 :不准许如此连接字符串

d = ab # 错误 NameError: name 'ab' is not defined

2、字符串格式化

%d、%i转换为带符号的十进制整数

%o转换为带符号的八进制整数

%x、%X转换为带符号的十六进制整数

%e转化为科学计数法表示的浮点数(e 小写)

%E转化为科学计数法表示的浮点数(E 大写)

%f、%F转化为十进制浮点数

%g智能选择使用 %f 或 %e 格式

%G智能选择使用 %F 或 %E 格式

%c格式化字符及其 ASCII 码

%r使用 repr() 函数将表达式转换为字符串

%s使用 str() 函数将表达式转换为字符串

%10d 表示输出的整数宽度至少为 10;

%20s 表示输出的字符串宽度至少为 20。

%m.nf 、 %.nf (对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小 数的

输出精度。精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。

print('%1.3f'%12.22222) #输出数字的编写形式,注意引号的个数

print("%d:%c"%(65,65))#输出字符

#print("%1.3"%12.111)

print("""my name is %s ,and age is 12 %d"""%('xixi',39)) #输出字符串

print()

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

12.222

65:A

my name is xixi ,and age is 12 39

Process finished with exit code 0

3、常用转义字符

ae7ba5b32112949973f6e679356cf4d9.png

转义字符用法

print('hello \n world') #\n转行符

print('\101') #三位八位进制对应的字符

print('\x41') #两位十六进制数对应的字符

print('我是\u5f20\u4e09') #四位十六进制数表示Unicode字符

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

hello

world

A

A

我是张三

Process finished with exit code 0

补充:

字符串界定符前面加字母r或R表示

原始字符串

,其中的特 殊字符不进行转义,但字符串的最后一个

字符不能是\。 原始字符串主要用于正则表达式、文件路径或者URL的场合。

path = 'C :\Windows\notepad.exe' #字符\n被转义为换行符

print(path)

PATH = r'C:\windows\notepad.exe' #原始字符串,任何字符都不转义

print(PATH)

运行结果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

C :\Windows

otepad.exe

C:\windows\notepad.exe

Process finished with exit code 0

继续学习,敬请查看

Python 语法基础(二)

原文链接:https://blog.csdn.net/weixin_43452424/article/details/104519943

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

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

相关文章

什么是隧道技术

隧道技术是一种通过互联网络基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或包,隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送,被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由,…

详解网络数字电视的实现方法与关键技术

1、IPTV的实现方法 宽带网络数字电视,又称IPTV或BTV,即交互式网络电视,是一种利用宽带互联网、多媒体等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。它能够很好地适应当今网络飞速发展的趋势&…

有状态的bean和无状态的bean的区别

有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会…

因为我想在博客园长呆,所以给博客园提一些改进建议

一晃眼我来博客园已经有4个月了,我的排名从9万多上升到9千多,也有不少朋友关注了我,其实对我帮助更大的是博客园的管理团队,他们对我的文章提出了很多很好的改进建议,从而让我的文章水平有了很大的提升。 这里我从用户…

double 二进制 java_C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确...

目前已定位到是因为C#中的byte范围是0到255,而java中byte值为-128到127导致的错误。尝试过使用C#的sbyte来解决:bw1 new BinaryWriter(new FileStream("C:\\Users\\DELL\\Desktop\\SpatialIndex\\ctest1.bin", FileMode.Create));bw2 new Bi…

什么是移动IP

移动代理 (Mobility Agent):又分为归属代理和外区代理两类。归属代理是归属网上的移动代理,它至少有一个接口在归属网上。其责任是当移动节点移动到外区网时,截收发往该点的数据包,并使用隧道技术将这些数据…

Ubuntu中安装nginxError

问题1:出现如下错误: ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCR…

项目经理如何把工作简单化

做一件事有两种方式。其一是把简单的事情复杂化,另外就是把复杂的事情简单化。项目经理应该如何选择呢?恐怕大家会异口同声的说,当然是把复杂的事情简单化。但是,在实际工作中,很少有项目经理能够做到这一点。他们会不知不觉中把…

[luogu P2590 ZJOI2008] 树的统计 (树链剖分)

题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从…

jetty xml解析

1 configure configure为xml的根结点,class指定所配置的对象的类,这个configure会创建一个该类的对象,然后根据该xml对其进行配置。id用来对该对象进行标识,在整个jetty中具有唯一性,相同id的xml configure文件配置的是…

java 歌词_请问吧内有大神用JAVA做过桌面歌词吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼写了个简单的例子给你:public class TextChangePane extends JComponent implements ActionListener {private static final int CYCLE_TIME 10000;private long startTime 0;private long nowTime 0;private float …

组播相对于单播和广播的优势

组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组组播协议。 与现在广泛使用的单播协议的不同之处在于,一个主机用单播协议向n个主机发送相同的数据时,发送主机需要分别向n个主机发送,共发送n次。一个主机用组播协…

安装nginx及fastdfs-nginx-module

1.先了解背景: FastDFS为什么要结合Nginx以及FastDFS原理,请参考文章: FastDFS为什么要结合Nginx以及FastDFS原理 2.准备工作: 安装安装Nginx所需的环境,参考文献:Ubuntu 18.04.1安装Nginx apt install …

如何让自己的内心强大起来

内心强大的人是指一个人的精神境界达到了一定的级别!以至于让人们折服! 世界上有这么一种人,似乎特别得到老天爷的偏爱——他总是有自己的理想,并且总是努力去做,最重要的是,老天爷每一次都会帮他取得成功…

什么是软件工程

软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件…

linux下的静态库与动态库

目录 静态库定义:生成及使用方法:静态库的优缺点动态库定义:生成及使用方法:动态库优缺点:静态库 先说说我们为什么需要库? 当有些代码我们大量会在程序中使用比如(scanf,printf等&a…

esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【阅读笔记】

针对SRGAN提出的几点改进,获得了PIRM2018视觉质量的第一名。首先是使用去掉BN层的Residual in Residual Dense Block作为网络的basic unit。并且使用residual scling 和 smaller initialization帮助训练更深的网络。第二点改进是使用了Relativistic Discriminator来…

PostgreSQL Frontend/Backend protocol (通信协议)

标签 PostgreSQL , protocol , proxy , 通信协议 背景 理解PostgreSQL的通信协议可以更好的开发类似SQL代理,SQL中间件,SQL防火墙,连接池等软件。 学习资料与软件 《PostgreSQL 读写分离代理 - Crunchy Proxy(base on golang)》 Postgres on …

启动FastDFS服务,使用python客户端对接fastdfs完成上传测试

1.启动tracker、storage、nginx服务: 启动fdfs_trackerd:sudo service fdfs_trackerd start 启动fdfs_storaged :sudo service fdfs_storaged start 启动Nginx:sudo /usr/local/nginx/sbin/nginx 注:此处给出重启服务…

软件工程方法学

传统方法学 传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。 面向对象方法学 与传统方法相反,面向对象方…