Python学习小手艺总计,Python小技术总计

作者: 韦德国际1946手机版  发布:2019-05-28

安慕希条件决断的3种达成情势

编码

  1. 写入json文件时出现的编码难点和缩进难题
with codecs.open('result.json', 'w', encoding='utf8') as json_file:
            json_file.write(json.dumps(item, ensure_ascii=False, indent=2))

python方面

  • python中一向不花括号,是靠缩进来代替花括号,语句结尾无需加;

  • python证明变量的时候无需代变量类型,var一 = '值'

  • UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
    0: ordinal not in range(12八) 难题解决办法

    • 更动系统一编写码(Python 暗许脚本文件都是 UTF-八 编码的)

    1.import sys

    2.reload(sys) # Python贰.伍 发轫化后会删除 sys.setdefaultencoding 那么些点子,大家供给重新载入

    3.sys.setdefaultencoding('utf-8')

  • sys模块

    • sys.argv 获取命令台输入的参数
      如python test.py 则sys.argv为['test.py]
      如python test.py hello 则sys.argv为['test.py','hello']
  • 取名标准:

    • 变量名,函数名,模块名全副都小写并用下划线_链接。如:is_true = False
    • 类名:英文单词首字母全大写 如:class FileManager:
  • 使用str.join(元组恐怕字典)进行字符串链接,通过str.split(字符串)举办字符串的剪切
    li = ['my','name','is','bob'] '_'.join(li) 'my_name_is_bob'

['my..name..is..bob'] b.split("..") ['my', 'name', 'is', 'bob']

  • if name == "main"

    if__name__=="__main__"
      当模块被直接运行的时候会调用这里面的代码
    else
      当模块是被引用调用的时候就调用这里的代码
    
  • python通过import导入模块的时候,倘使模块中有试行函数大概有出口语句,也会在导入的时候推行,所以假诺在导入模块的时候要专注是或不是会有震慑

  • 异常
try: 
  fh = open("testfile", "w") 
  fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
   print "Error: 没有找到文件或读取文件失败"
else:
   print "内容写入文件成功" fh.close()
  • 时刻相关的操作:

    • 仿照效法网址
    • 岁月相减能够对时间戳来进展
    • 计量时间差网站
  • platform模块:

    • 决断操作系统:platform.system(),windows系统下再次来到Windows,linux下回到Linux,苹果系统和linux的不平等
  • 输出和输入:

    • 输出:print "hello world"
    • 输入:str = raw_input("请输入:");

      • raw_input()普通话乱码化解格局:linxu下都是用utf-八而windows用的是gbk,编码不一样,要依附系统来决定编码
          # encode为根据系统求出来的编码
          user_name=raw_input(u"输入名字首字母缩写按enter键结束:".decode('utf-8').encode(encode))
      
  • 文本操作:

    • 展开文件:
      • file fo= open(file_name [, access_mode][, buffering])(用完要close())
      • with open(file_name) as fo: (会自行帮你close,推荐介绍用那个)
    • 读取 fo.read([count]) str = fo.read(拾); 从fo的公文里读取十三个字符
    • 写入 fo.write(string)

    read和wirte方法会移动文件指针所指地点

    • 固定 fo.tell()告诉文件指针所在地方

      fo.seek(0,0)定位到起来 第一个是岗位,第四个是偏移量

  • getpass模块:

    • 获取当前报到用户名:sys_user = getpass.getuser()
  • os模块:

    • 重命名文件test一.txt到test2.txt。os.rename( "test一.txt", "test二.txt" )
    • 去除一个壹度存在的文书test二.txt。os.remove("test二.txt")
    • 在当前目录下成立文件夹。os.mkdir("newdir")
    • 改换所在文件夹(约等于cd命令)。os.chdir("newdir")
    • 展现当前工作目录。os.getcwd()
    • 删去目录。os.rmdir( "/tmp/test" )
    • 获得运维时脚本所在文件夹名字以及脚本的文书名:dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
    • 做客某文件夹下全部文件:os.listdir()
    for filename in os.listdir('foldName'):    
         print filename
    
    • file回到当前剧本名字
    • os.path.abspath(file)重回当前脚本相对路线
    • os.path.abspath(sys_arvgc[0])再次回到当前脚本相对路线
    • os.path.join(current_file_path, "config.cfg") 依照系统生成路线
  • re模块:(用来相称字符,能够插入正则表明式)

    • os.dirname()获取路线中的文件夹名
    • os.dirname(os.path.abspath(file))获取脚本所在文件夹名
    • os.access(path,mode),查看文件有未有mode的权柄,mode可以为os.X_ok可执行,等等
    • os.unlink() 删除文件,假如文件为目录则赶回三个张冠李戴
    • os.walk(dirpath) 遍历文件夹
    • os.makedirs(path,mode) 以mode的样式递归成立目录
    • os.path.isdir(path) 推断是还是不是是文件夹
    • re.match函数
      • 尝试从字符串的胚胎地方匹配3个形式,借使不是开局地点匹配成功的话,match()就重回none
    • Python学习小手艺总计,Python小技术总计。re.search函数。re.search 扫描整个字符串并回到第一个成功的同盟

    re.search(pattern, string, flags=0)

    • re.findall(),重临找到的全方位
  • group() 把相称成功的字符串作为元组重回:

    • 骨干用法:选用下标,group(0)

        file_name = '2016-01-15.log
        regex = r'd{4}-d{1,2}-d{1,2}'
        match = re.search(regex, file_name)
        if match:
            start_date = {u"start_date": match.group(0)}
            return start_date
        else:
            print "didn't find date"
            return ERRORNO
        match.group(0)为2016-01-15
      
    • 高端用法:选取小名,(?P<外号>相称情势),给这几个相配形式匹配到的剧情都以以此小名里的值,通过.group('别名获取')

       regex = r'(?P<fail>d ), success: (?P<success>d ), no_return: (?P<no_return>d ), total: (?P<total>d )'
      match = re.search(regex, file_content)
      if match:
          fail = match.group('fail')
          success = match.group('success')
          no_return = match.group('no_return')
          total = match.group('total')
          fail_reason = extract_fail_reason.get_fail_reason(file_content)
          number_dictionary = {u'fail': fail, u'success': success, u'no_return': no_return, u'total': total,
                               u'fail_reason': fail_reason}
          return number_dictionary
          ```
      
  • 命令台相关操作:OptionParser()用来解析命令台输入的下令

    • 导入:from optparse import OptionParser
    • 声明:optParser = OptionParser()
    • 增添命令:optParser.add_option("--daily","-d",default=True,action="store_true", dest="is_daily",help=u"暗中认可按天张开日志剖析,能够跟格式为YYYY-MM-DD的日期")
      • 参数表达:
        • "--daily","-d"为命令选项,d为缩写
        • default=True表示这一个选项是暗中同意的
        • action='store_true'代表存放成bool形
        • dest:操作的小名
        • help扶助文书档案
    • 解析命令:(options, args) = optParser.parse_args()
    • 通过options.is_daily
    • args为参数
  • 子进度subprocess.波普n(),展开1个历程并且实行调控台命令

    import subprocess
    #command为命令如command = "git push origin %s:%s" %    (new_branch_name, new_branch_name)
    def get_process_output(command):
    process = subprocess.Popen([command], stdout=subprocess.PIPE,shell=True)
    ensure_process_right(process, command)
    if process.wait() == 0:
        output = process.stdout.readline().strip()
        return output       
    def ensure_process_right(process, command):
    if process.returncode: #returncode为返回码,如果执行错误会有值
        print (u'执行 '   command   u'命令时发生错误,退出程序')
        exit(0)
    
  • python图形库:pygal

安装pip easy_install pip

安装 pygal easy_installinstall pygal

pygal使用参考网站

代码分析:

titile是图表的标题
x_labels是横轴的数据
剩下的是主数据
通过add('数据名',[值])
import pygal
line_chart = pygal.Line()
line_chart.title = 'Browser usage evolution (in %)'
line_chart.x_labels = ['2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012']
line_chart.add('Firefox', [1, 2, 0, 16.6,   25,   31, 36.4, 45.5, 46.3, 42.8, 37.1])
line_chart.add('Chrome',  [3, 2, 5, 77, 43, 22,    0,  3.9, 10.8, 23.8, 35.3])
line_chart.add('IE',      [85.8, 84.6, 84.7, 74.5,   66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])
line_chart.add('Others',  [14.2, 15.4, 15.3,  8.9,    9, 10.4,  8.9,  5.8,  6.7,  6.8,  7.5])
line_chart.render()
import os
f=open('aaa.html','w')
f.write(line_chart.render())
f.close()
  • xlwt编写excel文件

用法:

1.import xlwt导入xlwt模块

2.通过:excel_file = xlwt.Workbook() # 创设专门的学问簿

3.通过sheet = excel_file.add_sheet(u'log', cell_overwrite_ok=True)生成sheet

4.sheet.write(行坐标,列坐标,值,样式)插入值

如:sheet.write(0, i, title[i], set_style('Times New Roman', 200, True))

5.通过excel_file.save("log9.xlsx") 保存


(一)笔者(非初学者)学Python的办法
  在正文开首在此以前,笔者先说说自身学Python的点子。接触了广大言语了,但自个儿写的代码九成都以C,加上有个别Computer的基础知识,所以我那个东西也就勉强算是个非初学者吧。作者那边说的,就是指向非初学者学习Python的艺术,只怕说也可以放大为非初学者学习壹门新语言的不二等秘书籍了,嘿嘿,咱写程序的,抽象技术得好是不?闲话非常少说。首先,得找一本python入门的经文书,在网络搜搜,小编读书,只读特出。小编选的是《Beginning Python From Novice to Professional 贰nd 艾德ition》。然后,看书,先看前言,要先明了本书的指向人群以及一些版块的坚守,还有壹对就学格局,增加资料等。一本书的序文很轻易被人忽略,但神迹前言中会包蕴一些很要紧的音讯,有一些像磁盘的分区表,路由器的转发表之类的。
  接着,正是阅读本文了(这里谢谢一下腾讯网团队教我的用七个全角空格排版的不二秘技,特其他实用)。入门级的图书一般都以针对未有言语的初学者设计,既然大家不是初学,有那几个答辩已经知道,比方变量啊,数据类型什么的,那么些事物就没须求细看了。大家所关注的应有是:语法,常用数据结构,还会有部分Python语言相比卓绝的地点。小编的秘籍正是,直接略过文字,看例子程序,如果能够看懂,就在机械上对例子程序开始展览变幻,试试结果,没难题就一连看,借使例子程序没看懂可能程序结果和本身想的区别等,再停下来看文中的描述。这样通看全书例子作者觉着有多少个便宜:一.不漏掉一些尽管轻便不过很珍视的语言细节。譬喻  1,二  是宣称一个元组,但print 一,二却会打字与印刷出1 贰.在先本人就吃过那样的亏,花了四分钟看完了shell的语法,然后就去看小的project,结果在成千上万地点卡住,随地找材料,结果却开采好些个题材都是中央的语法难题,在书中的例子中都反映的很理解。即便通看全书会多花非常的多时辰,但那纯属是蓄势待发的前提。贰.经过大气感想这种语言的代码风格。3.花费异常的小的代价领会很多主干函数。那也就省去了部分查函数文书档案的时日。基于那1个原因,所以笔者最欢跃这种代码与文字描述同等对待的书。
  看完例子,就足以看project了,实战很重视!很欢乐《Beginning Python From Novice to Professional 二nd Edition》那本书中就有无数小的project,所以也就又省下过多时间了。磨刀不误砍柴功,能够起来畅游python了。
(二)Python简介
  Python很自由,语法简单,函数库多,作者最欢愉Python的正是它的缩进,哈哈,全都要靠缩进来讲明。对于本身这种只爱读清晰代码的人的话几乎太棒了。
  先把部分内需留意的底子给列出来:
  壹.'/'除号与c分歧,单个'/'是浮点除,五个除号'//'才是整除,而且整除也适用于浮点数,举个例子3.5//二.二,结果是一.0。
  贰.乘方的标识是**,多少个乘号,太风趣了。
  叁.Python向来就帮忙大整数运算,笔者还用C写过大整数的运算算法,好长的。
  4.输入用input,输出用print ,那四个东西都特别灵活,也很有意思。
  五.模块,有一点点类似于头文件,from math import sqrt,那样就能够一向用sqrt函数了。小编纪念作者壹男子读中学的时候,做解方程的题,二个大题下有11个小题,老师供给每种题都写个"解:原式=",然后,那汉子直接就打个大括号,在括号外面写了个相当的大的"解:原式="。以往观念,真实有异口同声之妙啊!这里的math就是卓殊"解:原式="。
  陆.string可以用单引号括起来,也能够用双引号,没什么不一致。当然不可能单引号,双引号混用,会有syntax error,那是本身试过的,小编记念小编学shell时也试过,哈哈,个性啊!前段时代用C写了个简易的shell,小编只想到用宏替换成达成单引号和双引号的混用,但如此会有标题,比方python中' "happy every day" yes '就能够师世紊乱的境况。但笔者未来还没悟出越来越好的诀要。七个引号用于二个string分成多行来写。
(叁)常用数据结构----list(列表)
  list是一种线性的组织,类似于C中的数组,但方法比数组更加多。通过对list的部分主意的调用能够完毕栈,队列等大规模的线性数据结构,可知list是特别灵活的。以下是自身总结的list的底蕴知识点以及部分值得注意的地点:
  一.list方可被修改,包蕴丰富,删除,段增加,段删除等,方法繁多,运用很灵活。至于具体的函数四处都能够查到,笔者就不赘述了。
  二.list中的成分,类型能够不平等。例如list一=['neilhappy',123]。这点就与c中的数组,c 中的容器有分别了,那2者在宣称过后,容器中的数据类型无差别的。
  3.list足以透过下标来访问。比如:list一=['a','b','c'],那么list1[0]='a'。还足以访问一段成分,举个例子list1[0:2],是1个半开半闭的距离,左闭右开,所以结果是['a','b']。还足以加一个参数表示递增的数目:list1[0:2:2],跟matlab很临近。还会有一点点令笔者很欣喜,list仍是能够用负数下标来访问。list一[-1]意味着最后一个成分,即'c'。那下strlen,sizeof等函数都能够略微安歇下了。
  四.string与list的区分。当然,string能够看做list的成分,更首要的是,string能够直接相接:"neil""happy"。不过list必须要有个 号:['neil'] ['happy'],结果是['neil','happy']。那或多或少亟待小心一下。
  伍.list的乘法。那又是自己很喜爱的三个特点。以后评释c的数组时:int a[100]={1,二,三,四,5,五,伍,伍,伍,伍},大多少个5,数的头晕目眩,这下好了,在python中:a=[1,2,3,4] [5]*陆。哇,世界寂静了。
(4)常见数据结构----tuple(元组)
  tuple与list特别类似,但tuple就像2个被严重限制的list,不准动(被转移),不准变庞大(有过多methods),注解方法是tuple壹=(一,2,三)大概tuple一=一,二。访问方法与list类似,不再赘述。
(5)常见数据结构----dictionary(字典)
  dictionary,实际上正是一组mapping,一种散列的考虑。需求注意的知识点:
  1.样式。dict一={'name':'neil'}。这里的'name'就是key,'neil'正是value。dictionary正是局部key-value键值对的集聚。
  贰.浅copy与deepcopy。与c 基本相仿,浅copy就一定于copy指针,而deepcopy便是在copy指针的相同的时间还要分配相应的内部存款和储蓄器空间。
  叁.访问方法:dict一['name']的结果正是'neil'。注意,在dictionary中并未有order的概念,所以就无法像list同样用数字下标去拜谒,得用key去做客。  
(陆)三种数据结构的分别与交换
  python中的容器可以自由的并行李包裹罗,那三种数据结构也是那般。list,dictionary能够进行修改,而tuple,string都无法改改,但dictionary的key又无法不是可修改的,即tuple,string。想像以下假若字典的目录都在随机退换会生出什么样?
  两种数据结构的宣示一定要小心,括号不一致,数据结构就不一样。list:list一=['neil','happy'],这里是方括号。tuple:tuple1=('neil','happy'),这里是园括号。dictionary:dict1={'name':'happy'},这里是大括号。这里很轻松就写错,有非常的大也许会产生相比较难找的bug.
(7)常见数据类型----string
  笔者记得PeterWeinberger说过:"全部的C程序都做一样件事,观看1个字符,然后啥也不干"。可见string的关键。也跟上面同样,直接写出自个儿的下结论和必要小心的地点。
  1.string的访问方法与list,tuple基本一致,string也和tuple同样,不允许修改,但string的点子比tuple庞大的多。函数太多,不一1叙述了。
  贰.用%来进展string的格式化输出。其实与C也没怎么太大的分裂。
?
>>>
 str1="%s
 %s every day"
>>>
 name=('neil','happy')
>>>print str1% name
neil
 happy every day
(8)基本语句
  没什么别的说的,直接写啊:
  一.print 一,2,三。这一个很有趣,打字与印刷出1 贰 3 。注意有空格。
  二.print a or b.那么些讲话就一定于if(a!=0){print a};else{print b};极尽简化,太雅观了。
  三.unpack机制:很杰出的体制,在本身学C的时候自个儿就想,能无法二个函数再次回到三个值,哈哈,python帮自身完毕了。
?
>>>
 tuple1=(3,2,1)
>>>
 x,y,z=tuple1
>>>
 x,y,z
(3,2,1)
  四.缩进来断句,作者感觉那是python的精髓啊。
  5.调控语句:if,elif,else,for,while,break,continue,基本与shell类似,只是要多个冒号,少个括号,多了缩进。简介一下就能够了。
?
if  statement1:
    print something1
elif statement2:
    print something2
else:
    print something3
  陆.x is y.剖断x,y是不是为同多个指标。譬喻,一览无余。x==y剖断x,y是不是等于,但极度的七个对象不自然是同一个指标。
?
>>>
 x=[1,2,3]
>>>
 y=[1,2,3]
>>>
 x==y
True
>>>
 x is y
False
  七.x in y.判定x是或不是在y中。异常粗略,但很实用。
  八.循环中的else语句。当大家想看清2个行列中绝非三个数时,用循环平日要求加上三个证明变量来产生,譬喻:
?
values=[1,2,3,4,5]
flag=1
for xin values:
        if x==6:
                flag=0
                break
if flag==1:
        print "No!"
  倘使改成这么for中的else:
?
values=[1,2,3,4,5]
flag=1
for xin values:
        if x==6:
                flag=0
                break
else:  
        print "No!"
  作者倍感万分无与比伦。
  9.list中用for:
?
>>>
 [x*x*xfor xin range(1,5)]
[1,8,27,64]
(玖)学习进度中的一些笔记和注意事项(英文来自《Beginning Python From Novice to Professional 二nd 艾德ition》)
  最终是局部笔者读书中的笔记和注意事项,相比散,但自作者感觉相比较有用。
  1.空值有多样表现格局:False,0,None,"",{},[],()。
  二.Remember the Python motto of learning: use the source (which basically means read all the code you can get your hands on) .多看源代码。
  3.Blocks are indicated through indentation, and only through indentation in python.
  4.缩进断句使得代码风格比较稳固。
  五.Make sure your comments say significant things and don’t simply restate what is already obvious from the code.写注释,相对不写废话,相对不轻便重复代码所表达的情致。
  6.any object can contain other objects
  7.If a function call returns a sequence, you can index it directly.
  捌.要留意list的形式是不是修改了list本人,是还是不是持有重回值。那几个唯有多用手艺有较深的印象。
  九.python的强类型与java,c等强类型的相比较。python,str一=1,还足以str1="aaa"。可是在c中,int a=1.1会直接截断小数部分。
  10.
?
>>>'ad
 c    d'.translate(table,'c')
'cd    
 d'   注意这里删除'c'是先删除'c',然后再实行替换
  1一.print u'ærnæringslære' 前边加个u是实用unicode编码
  1二.在dictionaries 中,in操作符只好用于key而不能够用于value.
  壹三.Checking for key membership in a dictionary is much more efficient than checking for membership in a list. The difference is greater the larger the data structures are. 但本身不了然那是干吗
  1四.在python中,调换八个数是这么的简短,x, y = y, x 而四个数的交流本质上依旧要用七个数的置换去完毕.
  15.变量都急需先赋值技艺使用。那也是python强类型的二个注明?
(十)小结
  以上是四哥笔者对python的局部基础知识的下结论,由于堂哥作者水平有限,要是有不当,请您建议来,特别感激。
作者:NeilHappy

C语言中有安慕希标准表明式,如 a>b?a:b,Python中一直不叁目运算符(?:),但Python有它和睦的方式来完结类似的功用。这里介绍3种办法:

列表

  1. 子列表合并
In [199]: l=[[1,2,3], [3,5,6], [7,8,9]]

In [200]: reduce(lambda x,y:x y, l)
Out[200]: [1, 2, 3, 3, 5, 6, 7, 8, 9]
  1. 格外最相似的
    从一群list中找叁个与对象list最相似的,同样项越来越多能够视为越相似
In [211]: s={5,6,7}
In [212]: ls=[{1,2,3}, {3,4,5}, {4,5,6}]

In [213]: sorted(ls, key=lambda x: set(x)&set(s), reverse=True)[0]
Out[213]: {4, 5, 6}

体制设置

经过XFStyle设置样式有描述字符串num_format_str,字体font,居中

alignment,边界borders,模式pattern,保护protection等属性。

style = xlwt.XFStyle()起先化叁个样式

percent_style = xlwt.easyxf(num_format_str='0.00%')在开头化样式的时候钦定是百分比项目

font = xlwt.Font() # 为样式创制字体

alignment = xlwt.Alignment() 创制对齐形式

font和alignment都得以经过style.font=font和style.alignment=alignment加载到样式中

相当于style最大,alignment和font是他的品质


在正文发轫以前,作者先说说自身学Python的方式。接触了重重语言了,但笔者写的代码9/10都以C,加上一些测算机...

true_part if condition else false_part

itertools模块

  • 排列组合的贯彻
In [217]: from itertools import combinations, permutations
     ...: print(permutations([1, 2, 3], 2))
     ...: print(list(permutations([1, 2, 3], 2)))
     ...: print(list(combinations([1, 2, 3], 2)))
     ...: 
<itertools.permutations object at 0xae84298c>
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
[(1, 2), (1, 3), (2, 3)]

设置规则

通过xlwt.Formula()设置

no_return_rate_formule='G{current_row}/H{current_row}'.format(current_row=current_row_str)

sheet.write(row, 10, xlwt.Formula(no_return_rate_formule),percent_style)


a,b=2,3
c=a if a>b else b

pip

  1. 换源
  • 永久
    修改 ~/.pip/pip.conf (未有就创立多少个),内容如下:
    [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple

  • 临时
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent

参照网站

http://wenku.baidu.com/link?url=EJQYDpO8GcxkDlWojsTbIXCxEPu7TI9KoPR9lyrUM_MoC97vCPT8o7L6zFB0TZsMHs8yk6MW6sMh5UDPAAVwTVlpDIYVQ-GFELrNvFGd2Ze

最全网站

http://www.tuicool.com/articles/BFFbUvu


错误:365bet娱乐 ,More than 40玖肆 XFs (styles) 化解格局
缘由是:easyxf最六只好发出40九五个


a,b=2,1
c=a if a>b else b

urlparse 分析呼吁(剖判url)

  • urlparse.urlparse(url) 深入分析url,会转换2个urlparse的指标

(scheme='https', netloc='www.baidu.com', path='/s', params='', query='wd=击沉&rsv_spt=1&rsv_iqid=0xc24a2e7700020d3c&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=b
aiduhome_pg&rsv_enter=1&rsv_sug3=18&rsv_sug1=23&rsv_sug7=101&rsv_sug2=0&inputT=6850&rsv_sug4=7802', fragment='')
固然想博得get请求时的参数 可以动用 urlparse.urlparse(url).query来获得

  • urlparse.parse_qs(urlparse.urlparse(self.path).query) 把urlparse转变为元组

>>> print c
2

查询元组中是还是不是留存有些键值

if 's' in data 假如元组中存在s那个值则为真
在python中字符串也能够当作元组管理

选取and-or条件剖断的特征来贯彻安慕希规范判定

in for in 的用法

if not any([city in host_name for city in cities])
any()的用法是当当中的因素全为0,空,也许false时重返FALSE,不然为TRUE
遍历cities数组并且查找host_name里有未有city这些值

第1介绍一下,and和or的用法:

for _ in 元组:

遍历元组可是无需选取个中的值

python 中的and从左到右总计表明式,若有所值均为真,则赶回最后1个值,若存在假,再次来到第一个假值。

甭管列表,元组依然字符串,空表示False,非空表示True

>>> 'python' and [] and (2,3)
[]
>>> 'python' and [2,3] and (3,4)
(3, 4)

本文由韦德国际1946发布于韦德国际1946手机版,转载请注明出处:Python学习小手艺总计,Python小技术总计

关键词: python