课程咨询 :13623629309

太原PHP培训 > 达内新闻 > 适用于 PHP 开发人员的秘密(二)
  • 适用于 PHP 开发人员的秘密(二)

    发布: Python-伯乐在线      来源: Python-伯乐在线      时间:2016-11-04

  • 适用于 PHP 开发人员的秘密(二)

    php编程界有很多潜藏的秘密,作为一名优秀的编程人员就一定要知道这些。太原php培训班告诉你。

    清单 5. 创建变量

    yorkie = 'Marlowe' #meet our Yorkie Marlowe!

    mutt = 'Kafka' #meet our mutt Kafka

    print(mutt) #prints Kafka

    Python 的变量名称约定与 PHP 类似:您在创建变量名时只能使用字母、数字和下划线( _ )。同样,变量名的第一个字符不能是数字。Python 变量名是区分大小写的,并且您不能使用特定的 Python 关键字(比如 ifelsewhiledeforandnotin is 开始符)作为变量名。这没有什么值得奇怪的。

    Python 允许您随意执行基于字符串的操作。清单 6 中的大多数操作应该都是您熟悉的。

    清单 6. 常见的基于字符串的操作

    yorkie = 'Marlowe'

    mutt = 'Kafka'

    ylen = len(yorkie) #length of variable yorkie

    print(ylen) #prints 7

    print(len(yorkie)) #does the same thing

    len(yorkie) #also does the same thing, print is implicit

    print(yorkie.lower()) #lower cases the string

    print(yorkie.strip('aeiou')) #removes vowels from end of string

    print(mutt.split('f')) #splits "Kafka" into ['Ka', 'ka']

    print(mutt.count('a')) #prints 2, the number of a's in string

    yorkie.replace('a','4') #replace a's with 4's

    条件语句

    您已经了解了如何使用 for 循环;现在,我们来讨论条件语句。您会发现 Phyon 中的条件语句与 PHP 基本相同:您可以使用熟悉的 if/else 型结构,如清单 7 所示。

    清单 7. 一个简单的条件测试

    yorkie = 'Marlowe'

    mutt = 'Kafka'

    if len(yorkie) > len(mutt):

    print('The yorkie wins!')

    else:

    print('The mutt wins!')

    您还可以使用 if/elif/else ( elif ,等价于 PHP 中的 elseif )创建更加复杂的条件测试,如清单 8 所示。

    清单 8. 一个比较复杂的条件测试

    yorkie = 'Marlowe'

    mutt = 'Kafka'

    if len(yorkie) + len(mutt) > 15:

    print('The yorkie and the mutt win!')

    eliflen(yorkie) + len(mutt) > 10:

    print('Too close to tell!')

    else:

    print('Nobody wins!')

    您可能会说,目前为止并没有什么与众不同的地方:甚本上和想像中没有太大区别。现在,我们来看 Python 处理列表的方式,您会发现两种语言之间的不同之处。

    列表

    一种常用的列表类型是 tuple ,它是不可变的。在 tuple 中载入一系列值之后,您不会更改它。Tuple 可以包含数字、字符串、变量,甚至其他 tuplesTuples 0 开始建立索引,这很正常;您可以使用 -1 索引访问最后一个项目。您还可以对 tuple 运行一些函数(请参见清单 9)

    清单 9. Tuples

    items = (1, mutt, 'Honda', (1,2,3))

    printitems[1] #prints Kafka

    printitems[-1] #prints (1,2,3)

    items2 = items[0:2] #items2 now contains (1, 'Kafka') thanks to slice operation

    'Honda' in items #returns TRUE

    len(items) #returns 4

    items.index('Kafka') #returns 1, because second item matches this index location

    列表与 tuple 类似,只不过它们是可变的。创建列表之后,您可以添加、删除和更新列表中的值。列表使用方括号,而不是圆括号( () ),如清单 10 所示。

    清单 10. 列表

    groceries = ['ham','spam','eggs']

    len(groceries) #returns 3

    printgroceries[1] #prints spam

    for x in groceries:

    print x.upper() #prints HAM SPAM EGGS

    groceries[2] = 'bacon'

    groceries #list is now ['ham','spam','bacon']

    groceries.append('eggs')

    groceries #list is now ['ham', 'spam', 'bacon', 'eggs']

    groceries.sort()

    groceries #list is now ['bacon', 'eggs', 'ham', 'spam']

    字典类似于关联数组或散列;它使用键值对来存储和限制信息。但它不使用方括号和圆括号,而是使用尖括号。与列表类似,字典是可变的,这意味着您可以添加、删除和更新其中的值(请参见清单 11)

    清单 11. 字典

    colorvalues = {'red' : 1, 'blue' : 2, 'green' : 3, 'yellow' : 4, 'orange' : 5}

    colorvalues #prints {'blue': 2, 'orange': 5, 'green': 3, 'yellow': 4, 'red': 1}

    colorvalues['blue'] #prints 2

    colorvalues.keys() #retrieves all keys as a list:

    #['blue', 'orange', 'green', 'yellow', 'red']

    colorvalues.pop('blue') #prints 2 and removes the blue key/value pair

    colorvalues #after pop, we have:

    #{'orange': 5, 'green': 3, 'yellow': 4, 'red': 1}

    Python 中创建一个简单的脚本

    现在,您已经对 Python 有了一定的了解。接下来,我们将创建一个简单的 Python 脚本。该脚本将读取位于您的服务器 /tmp 目录下的 PHP 会话文件的数量,并在日志文件中写入摘要报告。在该脚本中,您将学习如何导入特定函数的模块,如何使用文件,以及如何写入日志文件。您还将设置一系列变量来跟踪所收集的信息。

    清单 12 展示了整个脚本。打开一个编辑器,并将代码粘贴到其中,然后在系统中将该文件保存为 tmp.py 。然后,对该文件运行 chmod + x ,使它成为可执行文件(假定您使用 UNIX® 系统)

    清单 12. tmp.py

    #!/usr/bin/python

    importos

    fromtimeimportstrftime

    stamp = strftime("%Y-%m-%d %H:%M:%S")

    logfile = '/path/to/your/logfile.log'

    path = '/path/to/tmp/directory/'

    files = os.listdir(path)

    bytes = 0

    numfiles = 0

    for f in files:

    if f.startswith('sess_'):

    info = os.stat(path + f)

    numfiles += 1

    bytes += info[6]

    if numfiles > 1:

    title = 'files'

    else:

    title = 'file'

    string = stamp + " -- " + str(numfiles) + " session " \

    + title +", " + str(bytes) + " bytes\n"

    file = open(logfile,"a")

    file.writelines(string)

    file.close()

    在第一行中,您可以看到一个 hash-bang :它用于标识 Python 解释器的位置。在我的系统中,它位于 /usr/bin/python。请根据系统需求调整这一行。

    接下来的两行用于导入特定的模块,这些模块将帮助您执行作业。考虑到脚本需要处理文件夹和文件,因此您需要导入 os 模块,因为其中包含各种函数和方法,可帮助您列出文件、读取文件和操作文件夹。您还需要写入一个日志文件,因此可以为条目添加一个时间戳这就需要使用时间函数。您不需要所有时间函数,只需要导入 strftime 函数即可。

    在接下来的六行中,您设置了一些变量。第一个变量是 stamp ,其中包含一个日期字符串。然后,您使用 strftime 函数创建了一个特定格式的时间戳在本例中,时间戳的格式为 2010-01-03 12:43:03

    接下来,创建一个 logfile 变量,并在文件中添加一个实际存储日志文件消息的路径(该文件不需要实际存在)。为简单起见,我在 /logs 文件夹中放置了一个日志文件,但您也可以将它放置在别处。同样, path 变量包含到 /tmp 目录的路径。您可以使用任何路径,只要使用斜杠作为结束即可 ( / )

    接下来的三个变量也非常简单: files 列表包含指定路径中的所有文件和文件夹,另外还包含 bytes numfiles 两个变量。这两个变量都设置为 0 ;脚本会在处理文件时递增这些值。

    完成所有这些定义之后,接下来就是脚本的核心了:一个简单的 for 循环,用于处理文件列表中的各文件。每次运行循环时,脚本都会计算文件名;如果它以 sess_ 开头,则脚本会对该文件运行 os.stat() ,提取文件数据(比如创建时间、修改时间和字节大小),递增 numfiles 计数器并将该文件的字节大小累计到总数中。

    当循环完成运行后,脚本会检查 numfiles 变量中的值是否大于 1。如果大于 1,则会将一个新的 title 变量设置为 files ;否则, title 将被设置为单数形式的file

    脚本的最后部分也非常简单:您创建了一个 string 变量,并在该变量中添加了一行以时间戳开始的数据,并且其后还包含 numfiles (已转换为字符串)和字节(也已转换为字符串)。请注意继续字符( );该字符可允许代码运行到下一行。它是一个提高可读性的小技巧。

    然后,您使用 open() 函数以附加模式打开日志文件(毕竟始终需要在该文件中添加内容) writelines() 函数会将字符串添加到日志文件中,而 close() 函数用于关闭该文件。

    现在,您已经创建了一个简单的 Python 脚本。该脚本可用于完成许多任务,举例来说,您可以设置一个 cron 作业来每小时运行一次这个脚本,以帮助您跟踪 24 小时内所使用的 PHP 会话的数量。您还可以使用 jQuery 或其他一些 JavaScript 框架通过 Ajax 连接这个脚本,用于为您提供日志文件提要(如果采用这种方式,则需要使用 print 命令来返回数据)

    结束语

    作为开发人员,我们投入大量时间学习特定的语言和方法。有时,这样做会引起各种语言之间孰优孰劣的争议。我参加了不少这样的争论,相信读者们也是如此。需要承认的是,大多数这样的讨论最终都会以相同的结果结束 — “你能做的,我都可以更好的完成” — 这其实毫无意义。

    但是,当您将目光转移到另一种语言时,您会发现大多数语言都具备相似的工具、原理和方法。学习第一种语言是艰辛的,但将自己所掌握的知识应用于另一种语言可以极大地简化学习过程。即使您实际上并不用迁移到第二种语言,但是可以将自己对编程思想和方法的领悟提升一个层次。

    所幸的是,本文为您提供了一些关于 Python 的知识。我希望您可以继续学习这个优秀的语言。您可能从未离开 PHP 的世界(毕竟,它是您赖以生存的工具),但请不要停止学习的脚步。

    好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:适用于 PHP 开发人员的秘密(一)

下一篇:PHP是世界上最好的语言么

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-30

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-30

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-30

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-30

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56

    在线客服系统