微信公众号:PHP在线

1 用途
  2 语法
  3 字符串
  4 注释
  5 数组
  6 类和对象

PHP和Python都是解释性语言,用过PHP一般再学Python就比较容易,毕竟很多概念都一样。

当然,反过来也一样,会Python再入手PHP,也很简答。

不过如果要使用框架,那就得稍微多用些力气。

这里我们以语言本身为主,就暂不讨论框架。

1 用途

我是先用PHP,再学Python,所以对他们的用途也算清楚。

PHP以WEB服务起家,而且多年来都是以这个为重点,所以PHP在WEB方面是个强项。

Linux + Nginx/Aapche + MySQL + PHP环境(俗称LNMP/LAMP)以部署简单、性能高效著称,是各个服务器厂商的必装套件。

可以这样说,PHP是世界上最好的WEB后端语言。

Python在WEB上比PHP起步晚,这方面略逊一筹。

不过Python简单易用,所以用途广泛,运维、计算科学、人工智能、WEB几乎各个计算机领域都有它的存在。

特别是这几年人工智能的崛起,Python更是如日冲天。

趁着这股热劲,我们也花个10分钟,把它学到手吧。

2 语法

我们以具体的程序来展示PHP和Python之间的区别,这比直接用文字直观些。

起步最佳程序是hello world,我们就从hello Word程序开始。

如下,上边是helloword.php,下边是helloworld.py。

<?php function helloWorld(){    $a = 'Hello World';echo $a;}helloWorld();
def hello_world():    a = 'Hello World'    print(a)

hello_world()

用 php helloworld.php和 python helloworld.py分别执行这两个文件,打印结果是一样的。

PHP文件必须以<?php 开头,Python不需要PHP用function声明函数,Python用defPHP语句必须以分号;结尾,Python不需要以;分号结尾,当然用;结尾也可以,一般在一行内有多个语句的时候用,但是不建议这样写。PHP用大括号{}表示一个程序块,Python用4个空格的缩进表示一个程序块PHP变量以$符号开头,Python变量不需要$符号开头(非强制)PHP依据PSR格式规范,方法名和变量名以小驼峰命名,Python建议函数名用小写,并以下划线分割,函数内变量用小写,函数外变量大小写均可。
3 字符串

字符串是所有程序中非常重要的特性,PHP和Python处理字符串的方式相差很大。

PHP以函数处理字符串,Python中字符串是一个对象。

3.1 字符串声明和使用
mb_internal_encoding("UTF-8");

$a = '谁不会休息,谁就不会工作。';$b = '--列宁';echo $a . $b;

$c = ' --杜牧';$d = "  清明时节雨纷纷,        路上行人欲断魂。        借问酒家何处有?        牧童遥指杏花村。$c";

echo $d;
# coding: utf-8

a = '谁不会休息,谁就不会工作。'b = '--列宁'print(a + b)

c = ' --杜牧'd = """ 清明时节雨纷纷,        路上行人欲断魂。        借问酒家何处有?        牧童遥指杏花村。%s""" % c

print(d)
    PHP文件内字符串一般以文件编码格式为准,Python一般需要在文件头声明,如上的 # coding: utf-8,所有字符串以utf-8格式编码。PHP也可以用mb_internal_encoding("UTF-8");方法实现同样效果。    PHP中单行和多行字符串用单引号和双引号都可以,Python中单行字符串用单引号或双引号,多行字符串用三个双引号括住。    PHP中双引号内可以引用变量,Python中不可以,须用%或format()方法格式化。    字符串拼接PHP用点号.,Python用加号+。PHP中如果用点号拼接字符串和整型,整型自动转换为字符串类型再拼接,Python中则不能拼接字符串和整型,必须强制将整型转换为字符串类型后再用+拼接,否则程序出错。
3.2 字符串处理
$a = 'PHP to Python';

echo $a;                           # 输出完整字符串echo $a{1};                        # 输出:Hecho substr($a, 4, 2);             # 输出:toecho substr($a, 4);                # 输出:to Pythonecho substr($a, 0, 6);             # 输出:PHP toecho str_repeat($a, 2);            # 输出:PHP to PythonPHP to Pythonecho strpos($a, 'PHP') !== false;  # 输出:trueecho strpos($a, 'Java') === false; # 输出:true
a = 'PHP to Python'

print(a)                # 输出完整字符串print(a[1])             # 输出:H,通过索引获取字符print(a[4:6])           # 输出:to,截取字符串print(a[4:])            # 输出:to Python,截取字符串print(a[:6])            # 输出:PHP to,截取字符串print(a*2)              # 输出:PHP to PythonPHP to Python,重复字符串print('PHP' in a)       # 输出:true,判断字符串包含print('Java' not in a)  # 输出:true,判断字符串不包含

说明已经写在注释上了。

对于截取字符串,PHP的函数是offset加length,Python是start加end,但不包括end项。

4 注释

还是以上面的程序为例,我们加上注释。

<?php /** * 这是PHP的多行注释 */function helloWorld(){    $a = 'Hello World';// 这是PHP的单行注释echo $a;}# 这是PHP的另外一种单行注释helloWorld();
def hello_world():    """    这是Python的多行注释,函数注释写在函数体内    :return:    """    a = 'Hello World'

    # 这是Python的单行注释    print(a)

# 同样是单行注释hello_world()

具体区别请看代码。

5 数组

PHP中的序列类型只有数组。

5.1 元组、列表和字典

Python中分为3种:元组(tuple)、列表(list)和字典(dictionary)。

a = (1, 2, 3, 'hello')b = [1, 2, 3, 'hello']c = {'name': 'gary', 'url': 'www.awaimai.com'}

第一个是元组,元组是不能更改的类型,只能查询,不能增改删元素。

a[3]               # 查找第4个元素,返回hello字符串

为了和运算符中的括号区别,单个元组也需要在元素后面加一个逗号,如:a = (1, )。

第二行是列表,类似PHP中的数字索引数组,可以增查改删元素如:

b.append(10)       # 在列表最后增加元素10,列表变为:[1, 2, 3, 'hello', 10]b[0]               # 查找第1个元素,返回数字1b[2] = 10          # 修改第3个元素为10,列表变为:[1, 2, 10, 'hello']b.pop()            # 删除最后一个元素并返回它的值,用pop(0)可以删除第1个元素

第三行是字典,类似PHP中的字符串下标数组,可以增查改删元素:

c['country'] = 'china'   # 增加一个减值对应元素c['url']                 # 根据键名查找值,返回字符串 www.awaimai.comc['url'] = 'awaimai.com' # 修改值c.pop('name')            # 根据键名删除元素

可以看到,元组、列表、字典的查询方式都是用中括号:[]

5.2 类型转换

实际使用时,我们还可以转换类型:

list(a)            # 元组转换成列表,可以,返回:[1, 2, 3, 'hello']dict(a)            # 元组转换成字典,不可以,出错

tuple(b)           # 列表转换成元组,可以,返回:(1, 2, 3, 'hello')dict(b)            # 列表转换成字典,不可以,出错

tuple(c)           # 字典转换成元组,可以,返回:('url', 'name')list(c)            # 字典转换成列表,可以,返回:['url', 'name'],等同于c.keys()                   # 要返回值列表,请用c.values()
6 类和对象
class Person:    # 类属性,所有方法都可以调用    age = 100

    # 构造函数    # 同时定义一个name的类属性,并赋值,所有方法都可以调用    def __init__(self, name):        self.name = name

    # self代表类示例,相当与PHP中的$this    def get_name(self):        return self.name

    # 在定义类方法时,必须手动在第一个参数传入类实例,    # 名称可以是self,如上一个方法,也可以是别的,如下,    # 但是一般建议用self    def get_age(this):        return this.age

class User(Person):    # 双下划线开头,private属性,仅类内部可以调用    __country = 'China'

    # 单下划线开头,protected属性    _address = 'My City No 1'

    """    User类继承自Person类    用 super().__init__() 方式调用父类构造函数    """    def __init__(self, name, url):        super().__init__(name)        self.url = url

    def get_url(self):        return self.url

    def get_country(self):        return self.__country

# 实例化一个类,并调用其属性和方法user = User('gary', 'www.awiamai.com')print(user.name, user.url, user.age)print(user.get_name(), user.get_url(), user.get_age(), user.get_country())

php 以-截取剩余的字符串_10分钟从PHP到Python相关推荐

  1. python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...

    原标题:10分钟让你掌握python编程中random模块功能使用,非常详细 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可 ...

  2. python实现淘宝自动回复_10分钟教你用Python实现微信自动回复功能

    01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...

  3. sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库

    (给DotNet加星标,提升.Net技能) 转自:Ron.liang cnblogs.com/viter/p/10243577.html 前言 在 .NET Core 2.2中Microsoft.As ...

  4. python实现离线翻译_10分钟教你用Python实现微信翻译机器人

    相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...

  5. python生成词云代码无错窗口空框_10分钟教你用Python生成属于自己的词云图

    1 #导入需要模块 import jieba from PIL import Image import numpy as np import matplotlib.pyplot as plt from ...

  6. 通过html直接显示txt内容_10分钟教你用Python爬取Baidu文库全格式内容

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:向柯玮,周航 程序猿声 PS:如有需要Python学习资料的小伙伴可 ...

  7. python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息

    前言 Python确实是个好东西,可以用来解决很多数据上的烦恼.结合现在各个平台提供的API,可以用Python做很多有用的需求哦~ 需求分析 之前写论文的时候,就有这个需求了.就是抓取百度地图上某些 ...

  8. python飞机游戏视频教程_10分钟教你用Python做个打飞机小游戏超详细教程

    01 前言 这次还是用python的pygame库来做的游戏.关于这个库的内容,读者可以上网了解一下.本文只讲解用到的知识.代码参考自网上,自己也做了一点代码简化.尽量把最核心的方面用最简单的方式呈现 ...

  9. python微信公众号翻译功能_10分钟教你用Python实现微信翻译机器人

    相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...

最新文章

  1. oracle 里 符号 || 表示什么意思??
  2. 亚马逊与微软赢得一亿美元云计算合约,IBM黯然神伤
  3. idea上一些比较有用的插件
  4. Python---基础---list(列表)
  5. 红帽补丁安装的方法_为什么红帽采取“上游优先”的方法
  6. Spring 的下载、安装和使用
  7. Linux学习笔记005----CentOS7 vi模式保存并退出
  8. 做游戏,学编程(C语言) 2 最简单的飞机游戏
  9. mysql sql使用_MySql简单sql使用
  10. mac安装ffmpeg
  11. 关于“无法加载文件或程序集Interop.ShockwaveFlashObjects,Version = 1.0.0.0,Culture = neutral”的问题
  12. 计算机桌面文件在哪个文件夹,电脑微信文件夹储存在什么位置?
  13. 生成树协议中的五种状态Spanning Tree
  14. 紧急:Spring框架被爆出存在0day级别远程命令执行漏洞。漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响。该漏洞目前无官方修复补丁
  15. BZOJ4167 : 永远的竹笋采摘
  16. 调用COM控件的时候(例如访问数据库)出现类型不匹配。
  17. “一万小时定律”:只要你在任何一件事情上花1万小时来练习,就会成为大师[转载]
  18. Python 用pygame 做一个游戏的开始界面(小白第一篇博客)
  19. Java实现旅游app_基于安卓Android平台的旅游系统APP的设计(Eclipse,MySQL)
  20. 别闹,你真的会发邮件吗?

热门文章

  1. linux 播放器系统,在Linux上安装和使用开源视频播放器MPlayer
  2. c语言接受socket发送尾部有乱码,C语言socket编程,服务器和一个客户端连接时,服务器能正常收到信息,2个以上就出现BUG了...
  3. 九、深入Java字符串(上篇)
  4. pytorch 常用层(四)
  5. 小程序bindtap参数传递
  6. 开启注册 | AAAI 2022论文北京预讲会,21场报告+24个Poster等你来
  7. 多源迁移学习相关研究回顾
  8. 从语言模型到Seq2Seq:Transformer如戏,全靠Mask
  9. 本周不容错过的的9篇NLP论文 | PaperDaily #21
  10. 基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类