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

微信公众号: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};                        # 输出:H
echo substr($a, 4, 2);             # 输出:to
echo substr($a, 4);                # 输出:to Python
echo substr($a, 0, 6);             # 输出:PHP to
echo str_repeat($a, 2);            # 输出:PHP to PythonPHP to Python
echo strpos($a, 'PHP') !== false;  # 输出:true
echo 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个元素,返回数字1
b[2] = 10          # 修改第3个元素为10,列表变为:[1, 2, 10, 'hello']
b.pop()            # 删除最后一个元素并返回它的值,用pop(0)可以删除第1个元素

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

c['country'] = 'china'   # 增加一个减值对应元素
c['url']                 # 根据键名查找值,返回字符串 www.awaimai.com
c['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())

b02529029d305c6d19af3a5d63d49ada.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值