《假如爱有天意》

  当天边那颗星出现,你可知我又开始想念,有多少爱恋只能遥遥相望,就像月光洒向海面,年少的我们曾以为,相爱的人就能到永远,当我们相信情到深处在一起,听不见风中的叹息,谁知道爱是什么,短暂的相遇却念念不忘,用尽一生的时间,竟学不会遗忘,如今我们已天各一方,生活的像周围人一样,眼前人给我最信任的依赖,但愿你被温柔对待,多少恍惚的时候,仿佛看见你在人海川流,隐约中你已浮现,一转眼又不见,短暂的相遇却念念不忘,多少恍惚的时候,仿佛看见你在人海川流,隐约中你已浮现,一转眼又不见,当天边那颗星出现,你可知我又开始想念,有多少爱恋今生无处安放,冥冥中什么已改变,月光如春风拂面。

  最想听又不敢听的一首歌。

一、Python的全局函数

  全局函数这一点和js比较像,用起来很方便,不需要引入额外的模块,直接就可以使用它的方法。

二、全局方法详解

  Python的全局方法有很多,详见官网文档:https://docs.python.org/3/library/functions.html。有些方法用的很频繁,需要记住用法,有些方法不经常用,大致有个印象就可以了,等到想用的时候再去找,不至于自己重新实现,下面是全局函数列表:

  全局函数  
abs():求绝对值
dict():创建字典对象 help():调用内置帮助系统 min():求最小值 setattr():设置对象某个属性的值
all():判断是否为空或所有元素为True dir():返回对象列表 hex():整数转成16进制字符串 next():返回迭代器下一个元素 slice():返回一个slice对象
any():判断是否有一个元素为True divmod():求除数 id():返回对象的标识 object():返回一个新的无特征的对象 sorted():排序
ascii():返回转义后的字符串 enumerate():返回枚举对象 input():获得输入内容 oct():整数转八进制字符串 staticmethod():返回function的一个静态方法
bin():整数转二进制字符串 eval():执行代码 int():字符串转int open():打开一个文件 str():返回object的str版本
bool():返回boolean值 exec():动态执行Python代码 isinstance():判断是否是指定类型 ord():字符转Unicode sum():求和
bytearray():返回新的字节数组 filter():过滤元素 issubclass():判断是否是其子类 pow():求一个数的几次方 super():返回一个代理对象
bytes():返回一个字节对象 float():字符串转换float iter():返回一个迭代器对象 print():打印 tuple():返回一个tuple
callable():判断是否是可调用的 format():格式化 len():返回对象长度(元素个数) property():返回一个property 属性 type():返回对象的类型
chr():返回Unicode表示的字符串 frozenset():返回frozenset对象 list():返回list range():返回区间 vars():返回对象的__dict__属性
classmethod():将函数包装成类方法 getattr():获得对象指定属性的值 locals():更新和返回当前局部符号表的dict repr():返回对象字符串表示 zip():创建一个迭代器
compile():编译代码对象 globals():返回全局符号的dict map():把迭代器每一个对象的应用指定方法 reversed():返回一个反向iterator __import__():不建议使用的方法
complex():解析复数 hasattr():判断对象是否有属性 max():求最大值 round():返回一个浮点型 近似值  
delattr():删除对应属性 hash():返回对象的hash值 memoryview():返回给定参数的“内存视图” set():返回一个新的set 对象  

  首先熟知几个最常用的。

2.1 print()

  这个方法可以说最常用了,和Java的System.out.println()一样经典,用来在控制台打印输出的,当然实际生产的时候还是要用日志框架的。

print(12)
print('abc')
print('hello','world')

  控制台输出:

12
abc
hello world

  用来立即显示结果给人看滴。

2.2 input()

  这个方法我觉得应该定义为初学者方法,用来在请求用户输入数据的,初学某个语言的时候用的比较多,实际生产的时候基本不用,需要的变量基本都会去读配置文件:

name=input();
print('hello',name)

  运行的时候会停住,等待用户输入,输入yiwangzhibujian,就会打印出hello语句,控制台输入输出如下:

yiwangzhibujian
hello yiwangzhibujian

  注意:input接收的都是字符串,即便输入的是1,如果需要数字还要进行转换。

2.3 int()/float()

  这两个方法用的也比较多,就是将字符串转换成整型或者浮点型的方法。

num=int('')
print(num+1)

  字符串和数字相加是会报错的,所以需要转换。

2.4 isinstance()

  这个方法在定义方法的时候用的比较多,因为Python定义变量的时候不会指定类型,但是用错了类型还是会报错的,所以可以使用这方法来判断变量的类型:

x=123
isNum=isinstance(x, int)
print(isNum)

  如果想要定义一个强壮的函数,还是需要多多使用这个方法的。如果想判断属于多个类型中的一个,可以传入一个tuple:

x=123
isNum=isinstance(x, (int,float))
print(isNum)

  这样,当类型输入其中一种时将会返回True。

2.5 len()

  这个方法用来返回一个对象元素的个数,或者集合元素的个数,文档解释也很清楚

Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

  最常用的已经介绍完了,其他的全局方法可以都去熟悉一遍,等用到的时候再去查看详细定义也是可以的。

2.6 dir()

  初学用不到,但是中级开发者用的比较多,不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。简单例子如下:

name='yiwangzhibujian'
def hello():
print(name)
print(dir())
=======控制台输出=======
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'hello', 'name']

  可以看出dir()方法将当前范围的方法和属性都输出来,这样根据名字可以大致知道用法,再结合注释和测试就可以快速熟悉一个模块。比如常见的sys系统模块:

import sys
print(dir(sys))
=======控制台输出========
['__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_enablelegacywindowsfsencoding', '_getframe', '_home', '_mercurial', '_xoptions', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_wrapper', 'getallocatedblocks', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'set_asyncgen_hooks', 'set_coroutine_wrapper', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'version', 'version_info', 'warnoptions', 'winver']

  是不是可以看到好多方法,这都是可以使用的。至于用法可以查看文档或者百度,当然百度更快一些。

2.7 help()

  这个函数主要用来获得帮助滴,使用方法是:

  • help():获得Python的帮助
  • help(‘模块名’):获得模块名的帮助
  • help(‘模块名.方法名’):获得模块下某个方法的帮助

  在对一个模块或者方法不了解的情况下,多使用help还是有必要的。

三、全局变量

  Python中同样有一些全局变量。现在还没有接触,后续会补上。

3.1 __name__

  两个双下划线中间带有一个name。这是一个Python脚本的全局变量,当执行该脚本的时候,__name__值等于__main__,当引入该脚本的时候,该脚本就是脚本的名称(不带后缀名,py),例如定义一个test.py的脚本并执行:

print(__name__)
=====控制台输出=======
__main__

  但是当另一个脚本引入该脚本的时候,比如新建另一个test2.py,引入刚才新建的脚本(先记得引入一个脚本的时候会执行该脚本):

import test
========控制台输出=======
test

  这个的一个用途就是,方便测试,且别的脚本引入时不会执行:

def isNull(string):
if string is None:
return True
if len(string.strip())==0:
return True
return False if __name__ =='__main__':
print(isNull(None))
print(isNull('abc'))
print(isNull(' '))

  如果没有__name__的话,测试完就要注释掉测试代码,不然别的脚本引入你的脚本就会又执行一遍测试代码,当然规范一点的做法还是写专门的测试脚本。

【Python】Java程序员学习Python(四)— 内置方法和内置变量的更多相关文章

  1. 【Python】Java程序员学习Python(五)— 函数的定义和使用

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  2. 【Python】Java程序员学习Python(二)— 开发环境搭建

    巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...

  3. 【Python】Java程序员学习Python(六)— 流程控制、异常处理

    和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...

  4. 【Python】Java程序员学习Python(三)— 基础入门

    一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...

  5. 【Python】Java程序员学习Python(十)— 类、包和模块

    我觉得学习到现在应该得掌握Python的OOP编程了,但是现在还没有应用到,先留一个坑. 一.类和对象 说到类和对象其实就是在说面向对象编程,学完Java以后我觉得面向对象编程还是很不错的,首先封装了 ...

  6. 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)

    如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她 任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串. 官方文档:https://docs.pyt ...

  7. 【Python】Java程序员学习Python(一)— 为什么学习Python

    现在是6月份,毕业快3年了,虽然不能说对Java掌握的程度达到了如火纯青的地步,但是依然感觉到了瓶颈期,Java用的多了,也到了随心所欲的地步了,所以学第二门语言的想法一直在我脑海里闪现,有想法了就要 ...

  8. 【Python】Java程序员学习Python(十一)— IO

    一.前言 io的内容其实还是有很多的,现在我也只是了解初步用法,当然详细内容还是应该参照官方api的: 官方api:https://docs.python.org/3/library/os.html. ...

  9. 【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)

    集合是一门语言最重要的一个特性,对集合支持的程度越好,使用起来越方便 一.表现形式 1.1 list list的基本用法: 使用中括号包裹,[1,2,3] 元素类型可以是任意类型,同样可以是list ...

随机推荐

  1. javaWeb知识点学习(一)

    1.静态页面的传递过程 在静态WEB程序中,客户端使用WEB浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需 ...

  2. Android 手势识别—缩放

    上一篇讲解了手势识别中的点击和双击事件的识别,用到的是GestureDetector类和GestureDetectorCompat类,用于监听用户触摸屏幕中的简单动作. 缩放 基本用法如下,可以通过缩 ...

  3. CentOS7 配置 Redis Sentinel主从集群配置

    Redis Sentinel主从集群 环境.准备 slave配置 sentinel配置 测试 C#连接Redis Sentinel 1.环境.准备 单实例3台CentOS7服务器,IP地址.: 192 ...

  4. Exception message: /bin/bash: line 0: fg: no job control

    这个错误是 我本地idea 远程调试hadoop集群出现的 Diagnostics: Exception from container-launch. Container id: container_ ...

  5. 【数组】Minimum Path Sum

    题目: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right w ...

  6. SpringMVC路径匹配规则AntPathMatcher

    前言 本文是基于Spring Framework 4.3.3分析. 正文 SpringMVC的路径匹配规则是依照Ant的来的. 实际上不只是SpringMVC,整个Spring框架的路径解析都是按照A ...

  7. Android 开发服务类 03_ServletForGETMethod

    接收并处理用户通过 GET 方式上传的数据,一般小于 2K,并且安全性要求不高. package com.wangjialin.internet.servlet; import java.io.IOE ...

  8. Apache Hadoop 源码阅读(陆续更新)

    不多说,直接上干货! 总之一句话,这些都是hadoop-2.2.0的源代码里有的.也就是不光只是懂理论,编程最重要,还是基本功要扎实啊.... 在hadoop-2.2.0的源码里,按Ctrl + Sh ...

  9. 【Express系列】第2篇——主程序的改造

    上一篇对项目的目录结构和 app.js 等一些文件做了一些改造,然而那只是开始. 接下来将做进一步的改造和完善. 我们先看看几个主要的脚本文件,下面的代码是我稍微修改过并添加注释的,方便理解每句代码的 ...

  10. 国内maven仓库地址资源汇总

    国内maven仓库地址:阿里云maven仓库,网易163maven仓库,以及其他maven仓库地址. 国内下载maven一般速度都很慢,下载需要很久时间.这里汇总了一些国内的镜像资源 附带pom文件中 ...