【Python】Java程序员学习Python(四)— 内置方法和内置变量
《假如爱有天意》
当天边那颗星出现,你可知我又开始想念,有多少爱恋只能遥遥相望,就像月光洒向海面,年少的我们曾以为,相爱的人就能到永远,当我们相信情到深处在一起,听不见风中的叹息,谁知道爱是什么,短暂的相遇却念念不忘,用尽一生的时间,竟学不会遗忘,如今我们已天各一方,生活的像周围人一样,眼前人给我最信任的依赖,但愿你被温柔对待,多少恍惚的时候,仿佛看见你在人海川流,隐约中你已浮现,一转眼又不见,短暂的相遇却念念不忘,多少恍惚的时候,仿佛看见你在人海川流,隐约中你已浮现,一转眼又不见,当天边那颗星出现,你可知我又开始想念,有多少爱恋今生无处安放,冥冥中什么已改变,月光如春风拂面。
最想听又不敢听的一首歌。
一、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(四)— 内置方法和内置变量的更多相关文章
- 【Python】Java程序员学习Python(五)— 函数的定义和使用
不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...
- 【Python】Java程序员学习Python(二)— 开发环境搭建
巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...
- 【Python】Java程序员学习Python(三)— 基础入门
一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...
- 【Python】Java程序员学习Python(十)— 类、包和模块
我觉得学习到现在应该得掌握Python的OOP编程了,但是现在还没有应用到,先留一个坑. 一.类和对象 说到类和对象其实就是在说面向对象编程,学完Java以后我觉得面向对象编程还是很不错的,首先封装了 ...
- 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)
如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她 任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串. 官方文档:https://docs.pyt ...
- 【Python】Java程序员学习Python(一)— 为什么学习Python
现在是6月份,毕业快3年了,虽然不能说对Java掌握的程度达到了如火纯青的地步,但是依然感觉到了瓶颈期,Java用的多了,也到了随心所欲的地步了,所以学第二门语言的想法一直在我脑海里闪现,有想法了就要 ...
- 【Python】Java程序员学习Python(十一)— IO
一.前言 io的内容其实还是有很多的,现在我也只是了解初步用法,当然详细内容还是应该参照官方api的: 官方api:https://docs.python.org/3/library/os.html. ...
- 【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)
集合是一门语言最重要的一个特性,对集合支持的程度越好,使用起来越方便 一.表现形式 1.1 list list的基本用法: 使用中括号包裹,[1,2,3] 元素类型可以是任意类型,同样可以是list ...
随机推荐
- javaWeb知识点学习(一)
1.静态页面的传递过程 在静态WEB程序中,客户端使用WEB浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需 ...
- Android 手势识别—缩放
上一篇讲解了手势识别中的点击和双击事件的识别,用到的是GestureDetector类和GestureDetectorCompat类,用于监听用户触摸屏幕中的简单动作. 缩放 基本用法如下,可以通过缩 ...
- CentOS7 配置 Redis Sentinel主从集群配置
Redis Sentinel主从集群 环境.准备 slave配置 sentinel配置 测试 C#连接Redis Sentinel 1.环境.准备 单实例3台CentOS7服务器,IP地址.: 192 ...
- Exception message: /bin/bash: line 0: fg: no job control
这个错误是 我本地idea 远程调试hadoop集群出现的 Diagnostics: Exception from container-launch. Container id: container_ ...
- 【数组】Minimum Path Sum
题目: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right w ...
- SpringMVC路径匹配规则AntPathMatcher
前言 本文是基于Spring Framework 4.3.3分析. 正文 SpringMVC的路径匹配规则是依照Ant的来的. 实际上不只是SpringMVC,整个Spring框架的路径解析都是按照A ...
- Android 开发服务类 03_ServletForGETMethod
接收并处理用户通过 GET 方式上传的数据,一般小于 2K,并且安全性要求不高. package com.wangjialin.internet.servlet; import java.io.IOE ...
- Apache Hadoop 源码阅读(陆续更新)
不多说,直接上干货! 总之一句话,这些都是hadoop-2.2.0的源代码里有的.也就是不光只是懂理论,编程最重要,还是基本功要扎实啊.... 在hadoop-2.2.0的源码里,按Ctrl + Sh ...
- 【Express系列】第2篇——主程序的改造
上一篇对项目的目录结构和 app.js 等一些文件做了一些改造,然而那只是开始. 接下来将做进一步的改造和完善. 我们先看看几个主要的脚本文件,下面的代码是我稍微修改过并添加注释的,方便理解每句代码的 ...
- 国内maven仓库地址资源汇总
国内maven仓库地址:阿里云maven仓库,网易163maven仓库,以及其他maven仓库地址. 国内下载maven一般速度都很慢,下载需要很久时间.这里汇总了一些国内的镜像资源 附带pom文件中 ...