php编程基础总结

PHP开发人员的Python基础知识

PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用的开源脚本语言。
语法结合了C、Java和Perl的特点,简单易学,应用广泛。
它们主要适用于Web开发。
那么PHP开发人员的Python基础知识是什么?以下仅供参考!

Ajax:异步JavaScript+XML

XML:可扩展标记语言(ExtensibleMarkupLanguage)

定义Python是“通用高级编程语言”。
“它以简单易用而闻名,是少数需要空格和缩进的语言之一。
Python的主要作者GuidoVanRossum在社区中仍然非常活跃,被称为仁慈的领导者。

Python的灵活性和紧凑性是值得称道的,它支持面向对象编程、结构化编程、面向方面编程、函数式编程等。
Python的核心虽小,但库数量却很多。
扩展,这使得该语言紧凑而灵活。

从语法的角度来看,您会发现Python的简单性非常出色——几乎一种纯净的状态,PHP开发人员要么会对这种方法的语法着迷。
,或者发现它的局限性,这主要取决于你自己的观点。
Python社区对推广这种美学的态度非常明确,他们更注重美观和简单性,而不是PHP开发人员的聪明才智。
(像我一样)在Perl传统中形成的(“必须有多种方法来做到这一点”)将面临完全相反的哲学(“必须只有一种方法来做到这一点”)。

事实上,社区定义了一个独特的编码风格术语:Pythonic。
你可以说你的代码是Pythonic的,这是对Python术语的很好使用,也展示了该语言的自然特性。
本文不适合Python极客(或Pythonista),但如果您想继续沿着Python道路前进,那么您不应该错过本文中涵盖的知识。
就像PHP有自己的风格一样编程,以及Perl的概念技术,学习Python将不可避免地要求你思考与该语言相关的问题。

另一个重要点:在撰写本文时,Python的最新版本是V3.0,但本文重点关注PythonV2.6。
PythonV3.0不向后兼容以前的版本,V2.6是使用最广泛的版本。
当然,您可以根据需要使用您喜欢的版本。

一般来说,PHP是一种Web开发语言。
是的,它提供了命令行界面,甚至可以用于开发嵌入式应用程序,但它主要用于Web开发。
相反,Python是一种脚本语言,也用于Web开发。
在这方面,我知道我要说的是:它比PHP更接近Perl。
(当然,否则两者之间没有真正的区别。
继续。

PHP语法充满了美元符号($)和大括号({}),而Python语法则充满了美元符号迹象。
($)和花括号({})。
相对而言,它更简洁、干净。
PHP支持switch和do while结构,但Python不支持。
PHP使用三元运算符(foo?bar:baz)和一长串函数名,命名规范全面,相比之下你会发现Python要简单得多;PHP数组类型可以支持简单列表以及字典或哈希,但Python将这两种类型分开。

Python使用可变性和不可变性的概念:例如,元组是不可变的列表。
您可以创建元组,但一旦创建就无法修改。
这个概念可能需要一些时间来熟悉,但它对于防止错误非常有效。
当然,更改元组的唯一方法是复制它。
因此,如果您发现自己对不可变对象进行了大量更改,则应该重新考虑您的方法。

正如前面提到的,Python中的缩进有一个目的:当你第一次开始学习该语言时,它可能很难习惯。
您还可以创建使用的函数和方法关键字作为参数-这与PHP中的标准位置参数非常不同。
面向对象的人会欣赏Python真正的面向对象思想,当然包括它的类和“第一级”函数。
如果您使用非英语语言,您一定会喜欢Python强大的国际化和Unicode支持。
您还会喜欢Python的多线程功能;这是首先让我印象深刻的功能之一。

总而言之,PHP和Python在很多方面都很相似。
您可以轻松创建变量、循环、使用条件和创建函数。
您甚至可以轻松创建可重用的模块。
两种语言的用户社区都充满活力和热情。
PHP拥有庞大的用户群,但这主要是由于它在托管服务器和互联网上的优势和受欢迎程度。

清单1显示了一个基本的Python脚本。

清单1.简单的Python脚本

foriinrange(20):

print(i)

清单2显示了不可避免的场景结果。

清单2.清单1的结果

远1

远2

远3

远4

、5

、6

、7

、8

、9

、10

<11

<12

<13

<14

<15

<16

​17

​18

​19

在深入之前,我们先了解一些背景知识。
首先从变量开始。

​变量

​如您所见,表示变量不需要特殊字符。
变量i就是i,没有什么特别的。
也不需要使用任何特殊字符(例如分号和括号)来指示代码块或语言的结束;在for行中使用简单的冒号(:)就足够了。
另请注意,缩进告诉Pythonfor循环中属于什么。
例如,清单3中的代码循环打印每个数字的描述。

清单3.向每个循环添加一条语句

foriinrange(20):

print(i)

print('alldone?')

相比之下,清单4中的代码在循环末尾打印描述。

清单4.在循环后添加一条语句

foriinrange(20):

print(i)

print('alldone!')

当我第一次看到这样的代码时,我认为这完全是胡说八道。
什么?力量我是否相信换行符和缩进为代码提供了结构和功能?相信我,您很快就会习惯它(尽管我必须承认您需要使用分号来结束语句)。
如果您与其他开发人员一起处理Python项目,您会发现这种可读性是多么有用。
您将不再想知道“这个聪明人想在这里做什么?”在PHP中,您可以使用=运算符为变量赋值(参见清单5)。
在Python中,您使用相同的运算符,您只需标记或指向值即可。
对我来说这只是一项任务,我不必太担心技术术语。

清单5.创建变量

yorkie='Marlowe'#meetourYorkieMarlowe!

mutt='Kafka'#meetourmuttKafka

print(mutt)#printsKafka

Python变量命名约定与PHP类似:创建变量名时只能使用字母、数字和下划线(_)。
同样,变量名称的第一个字符不能是数字。
Python变量名称区分大小写,并且不能使用某些Python关键字(例如if、else、while、def、or、andnot、in和is起始符)作为变量名称。
这并不奇怪。

Python允许你随意进行字符串操作。
清单6中的大部分操作都是您所熟悉的。

清单6.常见字符串操作

yorkie='Marlowe'

mutt='Kafka'

ylen=len(yorkie)#长度变量bleyorkie

print(ylen)#prints7

print(len(yorkie))#doesthesamething

len(yorkie)#也做同样的事情,printisimplicit

print(yorkie.lower())#lowercasesthestring

print(yorkie.strip('aeiou'))#removesvowelsfromendofstring

print(mutt.split('f'))#将“Kafka”拆分为['Ka','ka']

print(mutt.count('a'))#prints2,a'sinstring的数量

yorkie.replace('a','4')#replacea'swith4's

您已经知道如何使用for循环,现在让我们讨论条件语句。
您会发现Phyon中的条件语句本质上与PHP中的条件语句相同:您可以使用熟悉的if/else语句,如清单7所示。

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

yorkie='Marlowe'

mutt='Kafka'

len(mutt):

print('他们是rkiewins!')

else:

print('Themuttwins!')

您还可以使用if/elif/else(elif,elseifin的PHP等效项)来创建更复杂的条件测试,如清单8.

清单8.更复杂的条件检查

yorkie='Marlowe'

mutt='Kafka'

15:

print('Oniorks和杂种!')

10:

print('太接近了!')

else:

print('否一个人会赢!')

我们可以说,到目前为止没有什么不寻常的:与你想象的没有太大不同。
现在让我们看看Python如何处理列表,您会注意到两种语言之间的差异。

列表

列表的常用类型是元组,它是不可变的。
一旦将一系列值加载到元组中,就不会更改它。
元组可以包含数字、字符串、变量,甚至其他元组。
元组的索引从0开始,这是正常的,您可以使用索引-1访问最后一个元素。
您还可以在元组上运行一些函数(参见清单9)。

清单9.元组

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

printitems[1]#printsKafka

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

​items2=items[0:2]#items2nowcontains(1,'Kafka')谢谢stosliceoperation

​'Honda'initems#returnsTRUE

​len(items)#returns4

​items.index('Kafka')#returns1,因为第二个元素匹配到此索引位置

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

<列表10.List

Len(groceries)#returns3

printgroceries[1]#printtsspam

forxingroceries:

printx.upper()#printsHAMSPAMEGGS

groceries[2]='bacon'

groceries#listisnow['ham','spam','培根']

groceries.append('鸡蛋')

groceries#listisnow['火腿','垃圾邮件','培根','鸡蛋']

Groceries.sort()

Groceries#listisnow['培根','鸡蛋','火腿','垃圾邮件']

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

列表11.字典

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

colorvalues#prints{'蓝色':2,'橙色':5,'绿色':3,'黄色':4,'红色':1

colorvalues['blue']#prints2

colorvalues.keys()#retrivesallkeysasalist:

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

【colorvalues.pop('blue')#prints2并删除blue键/值对

Colorvalues#afterpop,我们有:

#{'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/you/logfile.log'

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

files=os.listdir(path)

字节=0

numfiles=0

forfinfiles:

iff.startswith('sess_'):

info=os.stat(path+f)

numfiles+=1

bytes+=info[6]

1:

title='files'

else:

title='file'

+title+","+str(字节)+"字节"

file=open(logfile,"a")

file.writelines(string)

File.close()

在第一行你可以看到哈希字符串:这标识了Python解释器的位置。
在我的系统上,它位于/usr/bin/python中。
请根据您的系统要求配置此行。

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

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

接下来,创建一个日志文件变量并添加实际存储日志文件消息的文件的路径(该文件不必实际存在)。
为简单起见,我将日志文件放置在/logs文件夹中,但您可以将其放置在其他位置。
同样,路径变量包含/tmp目录的路径。
您可以使用任何以斜杠(/)结尾的路径。

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

完成所有这些定义后,下一步就是脚本的核心:一个简单的for循环,用于处理文件列表中的每个文件。
每次循环运行时,脚本都会计算文件名;如果以sess_开头,则脚本对文件运行os.stat(),检索文件数据(例如创建时间、修改时间和以字节为单位的大小)并递增numfiles计数器,并将文件大小以字节为单位添加到总价值。

当循环完成时,脚本将检查numfiles变量的值是否大于1。
如果该值大于1,则将一个新的头变量分配给文件,否则将标头将被分配单数文件形式。

脚本的最后一部分也非常简单:创建一个字符串变量并向其中添加一串数据,以时间戳开头,后跟文件编号(转换为字符串)和字节(也转换为字符串)。
注意继续符号();该字符允许您移动到下一行。
这是提高可读性的一个小技巧。

然后使用open()函数以追加模式打开日志文件(毕竟,您总是需要向文件追加一些),writelines()函数将行追加到日志文件中文件日志和close()函数。
文档关闭功能。

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

相关推荐

php做后端的坏处

php做后端的坏处

PHP是做前端还是后端在讨论PHP的应用时,我们主要谈论它作为内部语言的定位。前端层是指应用层,为用户提供直观的交互界面,后端层则处理数据管理、运算逻辑、数据挖掘等间接用

php trim函数的作用

php trim函数的作用

用php中strlen()函数判断空行时怎么返回2?!计算前过滤掉换行符$str=str_replace(array(/r/n,/r,/n),,$str);echostrlen($str);php的trim函数处理特

电脑内存十大排名2023

电脑内存十大排名2023

如何选择DDR4内存条?2023年台式机电脑DDR4内存购买推荐建议DDR4内存条选购指南本文概述了购买DDR4内存条的要点和推荐产品,旨在帮助用户找到最具性价比的DDR4内存条。结论如下:2023年