我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python学习笔记整理(九)Pytho

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python学习笔记整理(九)Pytho

赋值语句,表达式语句,打印

一、赋值语句

赋值语句给对象命名,基本形式是在等号左边写赋值语句的目标,右边写赋值的对象。左边可以是变量名或对象元素,而右侧的对象可以是任何会计算得到的对象表达式 。

1、赋值语句的特性

* 赋值语句建立对象引用值。建立变量到对象的应用。

* 变量名在首次赋值时会被创建。

当这个变量名出现在表达式中,就会被其所引用值取代

*变量名在引用前必须先赋值。也就是必须建立变量名到对象的引用关系。

* 隐式赋值语句

import、from、del、class、for、函数参数。等模块导入,函数和类的定义,for循环变量以及函数参数都是隐式赋值运算。

2、赋值语句的形式

运算                    解释

diege='diege'   基本形式

diege,lily='yum','wang' 元组赋值运算(位置性)

[diege,lily]=['yum','YUM'] 列表赋值运算(位置性)

 a,b,c,d='dieg'

序列赋值运算,通用性 #MS不行,数量要一致。

name=uname='diege' 多目标赋值运算

diege += 43 增强赋值运算(相当于diege=diege+43)

* 元组及列表分解赋值

第二,第三种形式是相关的,当在“=”左边编写元组或列表时,Python会按照位置把右边对象和左边的目标从左到右相配对。

* 序列赋值语句

在新的Python版本,元组和列表赋值语句已统一为现在所谓的序列赋值语句的实例。--任何变量名的需里都可以赋值给任何值的序列。而Python会按位置一次赋值一个元素。如第四行。把变量名的元组和字符串的字符对应起来。

*多重目标赋值

如第五行,赋值相同对象给右边所有目标。

*增强赋值语句

以简洁的方式结合表达式和赋值语句的简写形式 。增强形式输入比较少,运行更快。在Python中,每个二元表达式运算符的都有增强赋值语句。

3、序列赋值

1)、基本

>>> nudge=1

>>> wink=2

>>> A,B=nudge,wink

>>> A,B

(1, 2)

>>> [C,D]=[nudge,wink]

>>> C,D

(1, 2)

右侧可以是任何类型的序列,包括变量。只要长度相等即可

2)、高级序列赋值语句模式

注意:虽然可以在“=”符号两侧混合和匹配序列类型,右边元素的数目还是要左边的变量的数目相同,不然会产生错误。

想要更通用的话,就需要使用分片了

>>> string='diege'

>>> a,b,c=string[0],string[1],string[2]

>>> a,b,c

('d', 'i', 'e')

>>> a,b,c=list(string[:2])+[string[2:]]

>>> a,b,c

('d', 'i', 'ege')

可以赋值嵌套序列

>>> ((a,b),c)=('DI','GE')

>>> a,b,c

('D', 'I', 'GE')

4、多目标赋值语句

>>> a=b=c=d='diege'

>>> a,b,c,d

('diege', 'diege', 'diege', 'diege')

多目标赋值以及共享引用

上面一个对象,四个变量共享(全指向内存同一对象),这种对于不可能变的类型而言没有问题,如果是可变的类型就需要小心。

5、增强赋值语句

x+=y x-=y x*=y x/=y x&=y x|=y x^=y x%=y x>>=y  x<<=y x**=y x//=y

 增强赋值以及共享引用

>>> L=[1,2]

>>> M=L

>>> L=L+[3,4] #指向新的对象

>>> M,L

([1, 2], [1, 2, 3, 4])

>>> L=[1,2]

>>> M=L

>>> L+=[3,4] #修改了原来的对象

>>> M,L

([1, 2, 3, 4], [1, 2, 3, 4])

这只对列表和字典这类可变对象才重要,而且相当罕见的情况。如果你需要打破共享引用值的结构,就要对可便对象进行拷贝。

二、变量命名规则

语句:(下划线或者字母)+(任意数目的字母,数字或下划线)

注意:

区分大小写,DIEGE和diege不同。Python程序区分大小写

1、禁止使用保留字

2、命令习惯

* 以单一下划线开头的变量名(_X)不会被from module import *语句导入的。

* 前后有下划线的变量名(__X__)是系统定义的变量名,对解释器有特殊意义。

* 以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。

* 通过交互模式运行时,只有单个下划线变量(_)会保存最后的表达式结果。

3、变量名没有类型,但对象有

 

三、表达式语句

1、表达式语句介绍

在Python中可以使用表达式作为语句 (本身只占一行)。但是,因为表达式结果不会被存储,只有当表达式工作并作为附加的效果,这样才有意义。通常在两种情况下表达式用语句。

*调用函数和方法

有些函数和方法会做很多工作,而不会返回值,这种函数在其他语言中有时称为流程。因为他们不会返回你可能想保留的值,所以你可以用表达式语句调用这些函数。

*在交互模式提示符下打印值

Python会在交互模式命令行中响应输入的表达式的结果,从技术上讲,这些也是表达式语句,作为输入print语句的简写方法。

常见的python表达式语句

运算                解释

spam(eggs,ham) 函数调用

spam.ham(eggs)  方法调用

spam                在交互模式解释器内打印变量

spam < ham and ham != eggs 符合表达式

spam < ham < eggs 范围表达式

注意:虽然表达式在python中可以作为语句出现,但语句不能作为表达式。例如python不让你把赋值语句(=)嵌入其他表达式中。这样做的理由是为了避免常见的编码错误。当用“==”做相等测试时,不会打成“=”而意外改变量的值。

2、表达式语句和在原处修改

>>> L=[1,2]

>>> L.append(3)

>>> L

[1, 2, 3]

注意不要写成来L=L.append(3)

 赋值语句

对列表调用append,sort,reverse这类在原处修改的元算,一定是对列表在原处的修改,但这些方法在列表修改后并不会把列表返回。

 

四、打印语句

1、打印语句

print语句可以实现打印—只是对程序员友好的标准输出流的接口而已。技术上讲,这是把对象转换为其他文本表达式形式,然后发送给标准输出。

标准输出流与C语言的stdout类似,通常对应到启动Python程序所在的窗口(除非shell上重定向到了文件或管道中)

print 语句形式

运算                解释

print 'diege,test'

 把对象打印至sys.stdout,在元素之间增加一个空格,以及在末尾增加换行符。

print 'diege,test'

 一样,但是在文本末尾没有加换行符字符。

>>> myfile=open('/tmp/pydata','w')

>>> print >> myfile, "diege,test"

  把文件传给myfile.write,而不是sys.stdout.write

注意:print的内容是字符串一定要用引号扩起来。

可是使用字符串合并和格式化工具,自己创建输出的的字符串,之后再一次打印出字符串。

>>> x='hello'

>>> y='world'

 >>> print '%s,%s' % (x,y)

 

hello,world

2、重定向输出流

print x

等价于

import sys

sys.stdout.write(str(x)+'\n')

可以把sys.stdout重新赋值给标准输出流意外的的东西,这种等效的方式提供了一种方法,可以让print语句将文字传送到其他地方。

>>> import sys

>>> sys.stdout=open('/tmp/python.log','a',0)

>>> x,y,z=1,2,3

>>> print x,y,x

>>> print x,y,z

$ tail -f /tmp/python.log

事实上可以将sys.stdout重设为非文件的对象。只要该对象有预期的协议(write方法)。当该对象是类时,打印的文字可以定位并通过任意方式进行处理。

不过,为了基于print的程序重定向,sys.stdout重设提供了修改每个print语句以外的便利方式。或者使用系统shell重定向语法。

上面有一个问题,打印到文件后需要切换回来。不然所有的print输出都打印到文件来了

>>> import sys

>>> temp=sys.stdout

>>> sys.stdout=open('log.txt','a')

>>> print 'diege'

>>> print 1,2,3

>>> sys.stdout.close()

>>> print 1,2,3

Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

ValueError: I/O operation on closed file

>>> sys.stdout=temp

>>> print 1,2,3

1 2 3

网络上有一个比较好的范例说明

http://www.cnblogs.com/MikeZhang/archive/2012/01/19/ioRedirect.html

这样的方式太麻烦。因此增加了print的扩展功能,从而没有必要非得这么做

当print 语句以>>开始,后面再跟着输出的文件对象(或其他对象)时,该print语句可以将文字传给该对象的write方法,但是不用重设sys.stdout。因为这种重定向是暂时的。普通的print语句还是会继续打印到原始的输出流的。

>>> log=open('log.txt','a',0)

>>> x,y,z=10,11,12

>>> print >> log,x,y,z

>>> diege='diege test'

>>> print >> log,diege

>>> print 123

123

>>> log.close()

>>> print 123

123

如果需要在同一个程序中打印到文件以及标准输出流。print的>>形式就很方便,然而,如果你使用这种形式,需要提供一个文件对象(或者和文件对象一样有write方法的对象),而不是文件名字符串。

这种print的扩展形式通常也用于把错误信息打印到标准错误流sys.stderr.可以使用文件write的方法愿意及自动设置输出的格式,或者重定向语法打印:

>>> import sys

>>> sys.stderr.write(('Bad!'*8)+'\n')

Bad!Bad!Bad!Bad!Bad!Bad!Bad!Bad!

>>> print >> sys.stderr,'Bad!'*8

Bad!Bad!Bad!Bad!Bad!Bad!Bad!Bad!

 

在ptyhon3.0中 ,print语句将变为内置函数,功能相同,但语法稍有不同。目标文件和列结尾行行为是由关键词参数赋值的。例如,语句 print x,y会调用print(x,y),而print >> f,x会变成print (x,file-f,end='').
 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python学习笔记整理(九)Pytho

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python学习笔记整理(九)Pytho

赋值语句,表达式语句,打印一、赋值语句赋值语句给对象命名,基本形式是在等号左边写赋值语句的目标,右边写赋值的对象。左边可以是变量名或对象元素,而右侧的对象可以是任何会计算得到的对象表达式 。1、赋值语句的特性* 赋值语句建立对象引用值。建立
2023-01-31

Python学习笔记整理(六)Pytho

一、字典介绍字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。1、字典的主要属性*通过键而不
2023-01-31

Python学习笔记整理(七)Pytho

一、元组介绍元组(tuple)是无法修改的其他对象的结合.元组由简单的对象构成,元组与列表类似,不过元组不能在原处修改。通常写成圆括号中的一系列项。1、元组的属性*任意对象的有序集合与字符串和列表类似,元组是一个位置有序的对象集合。与列表相
2023-01-31

Python学习笔记整理(四)Pytho

字符串是一个有序的字符集合,用于存储和表现基于文本的信息。常见的字符串常量和表达式T1=‘’ 空字符串T2="diege's" 双引号T3="""...""" 三重引号块T4=r'\temp\diege' Raw字符串 抑制(取消)转义,完
2023-01-31

Python学习笔记整理(五)Pytho

列表和字段,这两种类型几乎是Python所有脚本的主要工作组件。他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套。一、列表列表的主要属性:*任意对象的有序集合从功能上看,列表就是收集其他对象的地方,可以把它看
2023-01-31

Python学习笔记整理(十)Pytho

if语句是选取要执行的操作.一、if语句1、通用格式形式是if测试,后面跟着一个或多个可选的elif(else if)测试,以及一个最终选用的else块。测试和else部分可以结合嵌套语句块,缩进列在行首下面。Python会执行第一个结算结
2023-01-31

Python学习笔记整理(二)pytho

一、Python的数字类型1、数字常量python数字类型在程序中如何显示(换句话说,作为常量)数字            常量1234,-23,0        一般整数99999999999L        长整型数(无限大小)1.23
2023-01-31

Python学习笔记整理(一)pytho

Python对象类型说明:python程序可以分解成模块,语句,表达式以及对象。1)、程序由模块构成2)、模块包含语句3)、语句包含表达式4)、表达式建立并处理对象一、使用内置类型除非有内置类型无法提供的特殊对象需要处理,最好总是使用内置对
2023-01-31

Python学习笔记整理(八)Pytho

程序由模块构成模块包含语句语句包含表达式表达式建立并处理对象一、Python语句语句角色列子赋值创建引用a,b,c='good','bad','ok'调用执行函数log.write('diege,test\n')print打印对象print
2023-01-31

Python学习笔记 --- pytho

对于python操作scp不输入密码还有一个很好的解决方案:就是利用python中的 pexpect ,类似于linux下expect这个包。使用方式如下:上面的file_transfer()就是使用了免密的方式。想看源码,请访问我的Git
2023-01-31

python学习笔记(1)--pytho

Python 语言概述面向对象、解释型计算机程序设计语言。语法简洁、清晰、丰富和强大的类,能够把用其他语言(如c++/c)制作的各种模块很轻松的连接起来(胶水语言)。是纯粹的自由软件,源代码和解释器Cpython均遵循GPL(General
2023-01-31

Python学习笔记(29)-Pytho

一,简介上一篇已经介绍了python-docx模块的安装和导入,本篇直接介绍如何创建并写入word文档,需要注意的是:创建word并写入之后,操作的都是内存中的对象,最后需要保存到文件,才能看到真实的文件。二,代码演示非常简单,直接演示代码
2023-01-31

Python学习笔记—第一章—Pytho

书目:Python(Unix和Linux系统管理指南)学习日期:20120627知识点总结:Python的优势:既简单易学,也可以完成任何复杂任务可读性好(严格的代码缩进格式)支持面向对象编程(OOP)强大的Python社区强大的Pytho
2023-01-31

python学习笔记1——安装pytho

python学习笔记1——安装pythoncentos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/17673251、查看当前python版本并且[root@l
2023-01-31

python学习笔记(九)、模块

1 模块  使用import 语句从外部导入模块信息,python提供了很大内置模块。当你导入模块时,你会发现其所在目录中,除源代码文件外,还新建了一个名为__pycache__的子目录(在较旧的Python版本中,是扩展名为.pyc 的文
2023-01-31

Python学习笔记-打包发布Pytho

Python模块、扩展和应用程序可以按以下几种形式进行打包和发布: python setup.py获取帮助的方式    python setup.py --help    python setup.py --help-commands 所有
2023-01-31

Python第九周 学习笔记(1)

get(self, instance, owner)访问属性时调用set(self, instance, value)当对属性赋值时调用delete(self, instance)删除属性时调用self指代当前实例instance是owne
2023-01-31

python学习笔记(九)之语句1

python学习笔记(九)之语句1printpython2中,print是一个语句,python3中它是一个函数。实例1:print "hello,world!"hello,world!print "hello","world!"hello
2023-01-31

Python学习笔记整理(十一)pyth

while语句,提供了编写通用循环的一种方法,而for语句是用来遍历序列对象内的元素,并对每个元素运行一个代码块。break,continue用在循环内,跳出整个循环或者跳出一次循环。一、while循环1、一般格式格式:首行以及测试表达式,
2023-01-31

Python学习笔记整理(十二)Pyth

一、函数基础函数可以计算出一个返回值。作用:最大化代码重用,最小化代码冗余,流程的分解1、函数相关的语句和表达式语句        例子Calls        myfunc(‘diege','eggs',meat=lit) #使用函数de
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录