要素7:输入/输出

1、python解释器提供了3种标准文件对象,分别为标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin、sys.stdout和sys.stderr形式提供;

2、python的print语句实现打印--一个对程序员友好的标准输出流接口;

3、从技术角度来讲,print是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流;

(1)在python中,打印与文件和流的概念联系紧密;

文件写入方法是把字符串写入到任意文件;

print默认把对象打印到stdout流,并添加了一些自动的格式化。

(2)实质上,print语句只是python的人性化特性的具体实现,它提供了sys,stdout,write()的简单接口,再加上一些默认的格式设置;

(3)print接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后一个元素后添加逗号。


要素7:输入/输出

print "String %format1 %format2 ..." %(variable1,variables,...)

字符                                                             输出格式

d,i                                                             十进制整数或长整数

u                                                                  无符号整数或长整数

o                                                                  八进制整数或长整数

x                                                                  十六进制整数或长整数

X                                                                 十六进制整数(大写字母)

f                                                                   浮点数,如[ - ]m.ddddd

e                                                                  浮点数,如[ - ]m.ddddde±xx

E                                                                  浮点数,如[ - ]m.dddddE±xx

g,G                                                            指数小于-4或更高精度时使用%e或%E,否则使用%E

s                                                                   字符串或任意对象。格式化代码使用str()生成字符串

r                                                                   同repr()生成字符串

c                                                                  单个字符

%                                                                字面量%

格式化输出:

print "String %format1 %format2 ..." %(variable1,variables,...)

变量variable1由格式format1来表示

变量variable2由格式format2来表示

显示为什么由格式符format决定

如果有多个变量,可以将数值变现为元组来定义

如果有两个格式符(%d和%f),那么后面就要有两个数值变量进行显示

这里也可以用3.1代替num2,即对应的数据可以从变量中引用的,也可以是直接给定的数值

系统会自动把s替换为所指定的字符串本身(name)

如果变量本身不是字符串,比如num的引用对象是数值,这里也会把7.9转换为字符串进行显示,而不是7.90000这样的数值,即不是数值类型float,但是type(num)的类型依然时float

数据类型的转换过程:尤其是使用两种互相不兼容的类型进行操作时,

显示

隐式

dir(__builtin__)  //可以查看内部的函数,这是一个内置模块,python解释器启动时,这个模块会被自动导入import

help(str)                //获取内键帮助命令


要素7:输入/输出

1、%后面可以使用的修饰符,(如果有,则只能按如此顺序)

%[(name)][flags][width][.precision]typecode

  • 位于括号中的一个属于后面的字典的键名,用于选出一个具体项
  • 下面标志中的一个或多个  --> flags
  • -:表示左对齐,默认为右对齐;
  • +:表示包含数字符号,正数也会带“+”;
  • 0:表示一个零填充。
  • 一个指定最小宽度的数字
  • 一个小数点,用于按照精度分割字段的宽度
  • 一个数字,指定要打印字符串中的最大字符个数,浮点数中小数点之后的位数,或者整数的最小位数;
  • 例子:
  • d={'x':32, 'y':27.49023, 'z':65}
  • print "%(x)-10d %(y)0.3g" % d

指定宽度

指定要打印字符串中的最大字符个数


字典:

kv(键值对)集合,使用冒号:分割

字典也是可变对象

例:{“a”:31,“b”:545}

引用d1中的键a的值(使用%(a)),而且让31转换显示为浮点数(使用f) ,此时使用如果键使用数值可能不行


要素8:函数的创建与调用

1、函数是实现模块化编程的基本组件;

2、python使用def语句定义函数;

3、函数可以参数化,通过传递不同的参数来调用;

4、每个python函数都有一个返回值,默认为None,也可以使用"return value"明确定义返回值;

5、def语句创建一个函数对象,并同时创建一个指向函数的对象引用:

  • 函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其他函数;
  • callable()可用于测试函数是否可调用

def functionsName(arguments):

suite             //函数体,主体部分

arguments   //参数

使用def语句定义函数,显示变量的值

printName                          //函数名

def printName                    //这里是先使用def定义一个函数名printName

name                                  //传递的参数

print name                          //定义主题部分,这里自动缩进,一般为4个字符

printName('Tony')               //把传递的内容(Tony)传递给参数name,name接收到内容Tony后,然后由函数主体print name进行执行

tony                                    //函数主题执行结果

()                                        //指对可调用对象的调用

任何一个对象的内置方法决定了这个对象可以参与的运算,而()就是调用运算符

In [9]: name.__call__()      //如果name没有这个方法,那么name()就会报错

help(str)                            //可以获取内置方法,但这里没有

每个模块都有一个名为__name__的内建变量,此变量值会根据调用时

  • 如果模块被导入,__name__的值是模块的名字
  • 如果模块被直接执行,__name__的值是“__main__”

把name的指向对象也指向test所指向的对象,传递了引用的指针


要素8:函数的创建与调用

1、python有众多内置函数

2、python标准库拥有众多内置模块,这些模块拥有大量函数

  • python模块实际上就是包含python代码的.py文件,其拥有自定义的函数与类及变量等;
  • 导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py)
  • 导入一个模块后,可以访问其内部包含的任意函数、类及变量

dir(__builtin__) 可以查看内部的函数,这是一个内置模块,python解释器启动时,这个模块会被自动导入import

dir(__builtin__)    内置函数:dir(), id(), type(),str(),help(),len(),callable()


python编程基础及编程风格

1、语句和语法

2、标识符

3、基本编程风格

语句和语法

1、注释

#:可以从一行的任何地方开始

三个单引号(''')或三个双引号(""")是实现多行注释的

2、续行

  • \:
  • ‘’‘:闭合操作符,单一语句跨多行

3、代码组

  • 缩进相同的一组语句构成的一个代码块
  • 首行以关键字开始,如if、while等,以冒号结束
  • python使用缩进来分割代码组,同一个代码组的代码行必须严格左对齐,否则会造成语法错误。

4、同一行放置多个语句

  • ; 以分号作为分隔符

5、模块

  • 每一个python脚本文件都可以被当成一个模块
  • 模块里的代码可以是一段直接执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import)

模块名称就是脚本文件的名称

#vim mod.py

#vim b.py

      

因为mod.py定义的是在家目录下,所以这里导入时也是在家目录下,因该特定路径下 模块里面的代码可以是一段可以直接执行的脚本,导入时就直接执行了,但一般并不期望这种结构,

所以一般模块中应是可调用的代码段,而不是可以直接执行的代码。


标识符

1、标识符是计算机语言中允许作为名字的有效字符集合

  • 其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其他用途;
  • python还有称为“内建”的标识符集合,虽不是保留字,仍不推荐使用这些特别的名字;

2、python标识符

  • 第一个字符只能使用子母或下划线
  • 余下的字符可以使用字母、数字或下划线
  • 区分字符大小写

python3的关键字


python基本编程风格

1、注释

  • 既不能缺少注释,亦要避免过去注释

2、文档

  • python允许通过__doc__动态获得文档字串

In [60]: print str.__doc__
str(object='') -> string

Return a nice string representation of the object.
If the argument is a string, the return value is the same object.

3、缩进

  • 统一缩进4个字符串

4、标识符名称

  • 见名知意

查看某个內键命令的文档

print *.__doc__


python命名惯例

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

2、前后有下划线的变量名(__x__)是系统变量名,对解释器有特殊意义;

3、以两个下划线开头、但结尾没有下划线的变量名(__x)是类的本地变量;

4、交互式模式下,只有单个下划线的变量名(_)用于保存最后表达式的结果。

a+b的实质是解释器通过去装载a字符串中的add方法或者连接方法把二者加起来的

x+y就相当于调用对象的內键方法


python文件结构

对于模块文档,头一行使用 “” 引起来,如果是多行,则用三个单引号或者双引号引起来,其中写的信息都可以使用doc直接调用

foo = FooClass()             //把类进行实例化(实例化:调用类的名称,传递对象),创建一个自定义类型的对象

类就是用户的自定义类型,

实质上任何一种类型就是实例化了一个特定的对象

例如:hello就是 str 这个类的实例化出来的对象,具体的把str这种类型做了具体化。

表示把字符串实例化成abc

16和17是相同的原因是str是内置类型,所有内置类型可以直接进行简化的方式调用

str是个內键的类,这个过程就是把这个內键的类(str)真正造出来一个符合这个內键类的要求的对象(xy)。

一个类的方法在实例化出一个对象之后,可以对此对象直接执行这个方法

使用对象引用的方式,调用islower方法(属于str这个內键类的方法),判断a中的字符串是不是小写

调用str这个内建类的方法islower直接施加在对象a上。

自定义类就是自己定义一个类型的格式,就是使用一种特定结构去组织了数据。

有数据之后还要对数据进行操作,所以类里面还包括了对数据进行操作的方法,所以类就是自定义类型


python文件主程序

1、主程序

  • 无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码

2、注意:所有的模块都有能力执行代码

  • 最高级别的python语句(没有缩进的)在模块被导入时就会执行,无论是否真的需要执行;
  • 妥当的做法:除了那些真正需要执行的代码以外,所有的功能代码都通过函数建立,因此:
  • 仅在主程序模块中编写大量的顶级可执行代码
  • 用于被导入的模块只应该存在较少的顶级执行代码

3、__name__指示模块应该如何被加载

每个模块都有一个名为_name_的內键变量,此变量值会根据调用此模块的方式发生变化:

  • 如果此文件被作为模块导入,则__name__的值作为模块名称
  • 如果此文件被直接执行,则__name__的值为“__main__” 

2、Python快速入门(0529)的更多相关文章

  1. 1、Python快速入门(0529)

    学习来自马哥教育的视频,感谢马哥 编程语言: 用户: 问题空间 计算机:解决问题 解空间 抽象: 机器代码-->微码编程-->高级语言 (语言的高下级的是根据语言是否被人类容易理解或者更接 ...

  2. Python快速入门

    Python快速入门 一.基础概要 命名:h.py Linux命令行运行:python h.py 注释.数字.字符串: 基本类型只有数字与字符串 #python注释是这样写的 ''' 当然也可以这样 ...

  3. python快速入门及进阶

    python快速入门及进阶 by 小强

  4. Python快速入门PDF高清完整版免费下载|百度云盘

    百度云盘:Python快速入门PDF高清完整版免费下载 提取码:w5y8 内容简介 这是一本Python快速入门书,基于Python 3.6编写.本书分为4部分,第一部分讲解Python的基础知识,对 ...

  5. Python快速入门之与C语言异同

    代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同. ...

  6. python快速入门——进入数据挖掘你该有的基础知识

    这篇文章是用来总结python中重要的语法,通过这些了解你可以快速了解一段python代码的含义 Python 的基础语法来带你快速入门 Python 语言.如果你想对 Python 有全面的了解请关 ...

  7. Python与C语言基础对比(Python快速入门)

    代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3 如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同 ...

  8. 第02章 Python快速入门

    007.快速入门,边学边用 008.变量类型 print(type(变量))    查看变量的了类型     现在常用的变量的类型有整型.浮点型.字符型 009.List基础模块 类型转换:str(8 ...

  9. 「数据挖掘入门系列」Python快速入门

    Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...

随机推荐

  1. 第k小数据

    给定两个整型数组A和B(未排序).我们将A和B中的元素两两相加可以得到数组C. 譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6]. 现在给你数组A和B, ...

  2. 后缀名htm与html的区别

    前者是超文本标记(Hypertext Markup) 后者是超文本标记语言(Hypertext Markup Language) 可以说 htm = html 同时,这两种都是静态网页文件的扩展名,扩 ...

  3. http形式的webservice

    import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import ...

  4. PAT 1021 Deepest Root[并查集、dfs][难]

    1021 Deepest Root (25)(25 分) A graph which is connected and acyclic can be considered a tree. The he ...

  5. word2vec原理(一) CBOW+Skip-Gram模型基础

    word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系.本文的讲解word2vec原理以Githu ...

  6. Filter—过滤器

    过滤器的作用是什么? 1.拦截传入的请求和传出的响应,能拿到请求和响应中的数据 2.监视,修改,或处理正在客户端和服务器之间交换的数据流 3.利用过滤器的执行时机,实现Web程序的预处理,和后期的处 ...

  7. MySQL从删库到跑路(六)——SQL插入、更新、删除操作

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录的值. IN ...

  8. 【Redis学习之九】Redis集群:Twemproxy和HA

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-3.0.4 主从模式对写压力没有分担,解决思路就 ...

  9. Java设计模式应用——策略模式

    对于相同类型相同类型的输入输出,在不同场景下需要使用不同的逻辑处理,则可以使用策略模式. 比如排序算法有堆排序,快速排序,冒泡排序,选择排序等.为了保证排序效率,需要在不同场景下选择不同排序算法,这时 ...

  10. Linux基础命令---hwclock

    hwclock   hwclock是一种访问硬件时钟的工具,可以显示当前时间,将硬件时钟设置为指定的时间,将硬件时钟设置为系统时间,以及从硬件时钟设置系统时间.您还可以定期运行hwlock以插入或删除 ...