首頁 頭條 透過PHP與Python程式對比淺析語法差異

透過PHP與Python程式對比淺析語法差異

Jul 12, 2019 pm 01:32 PM
php python

透過PHP與Python程式對比淺析語法差異

一、背景

#人工智慧這幾年一直都很想去學習一番;因為一直是從事PHP開發工作,對於Python接觸並不算多,總是在關鍵時候面臨著基礎不牢,地動山搖的尷尬,比如在遇到稍微深入些的問題時候就容易卡殼,於是準備從Python入門從頭學起;

筆者覺得應該有不少人同樣熟悉PHP或Python語言,對另外一個門語言並不是太熟悉,有想法學習另一門語言,希望通過這篇文章能夠對大家有一點幫助。

二、知識點

最近在完成一個小作業,題目要求:透過Python程式碼實現,讓使用者輸入使用者名稱密碼,認證成功後顯示歡迎訊息,輸錯三次後退出程序。

在這篇文章當中,會透過這個小作業來總結和分析PHP與Python的語法區別,主要涉及到以下幾個知識點:

1.程式碼整體風格

2.變數命名規格

3.常數命名規格

4.註解方式

5.資料型別

6.輸入輸出

7.if語句使用

8.while循環

#三、Python語法

在Python中需要嚴格遵守空格縮進,否則會報錯;每行程式碼後面不需要使用;,結構體的條件不需要使用(),執行體裡面則不需要{};

3.1 程式碼範例

# -*- coding: utf-8 -*-
n = 0
while n < 3:
    #累计次数,用于循环条件
    n = n + 1
    #定义账号和密码
    uname = &#39;tangqingsong&#39;
    pwd = &#39;123123&#39;
    #接收参数
    username = input(&#39;请输入用户名:&#39;)
    password = input(&#39;请输入密码:&#39;)
    #判断用户输入的账号和密码是否正确,正确将提示成功,并且退出循环体
    if uname == username and pwd == password:
        print (&#39;恭喜你,登陆成功~&#39;)
        break
    #三次机会用完的时候,提示错误次数,并告知即将退出
    elif n == 3:
        print(&#39;已错误&#39;, n, &#39;次,即将退出...&#39;)
    #如果在三次以内,提示还剩下几次机会
    else:
        print(&#39;抱歉,账号或密码不正确,你还有&#39;, 3 - n, &#39;次机会&#39;)
登入後複製

3.2 基本語法

下面從基本語法、資料類型、IF控制、while循環幾個面向來聊聊Python程式碼中的一些規格

3.2.1 基礎語法

變數: 在Python中變數以數字字母下劃線組成,不能以數字開頭,不能是python中的關鍵字,例如while、if 、elif、else、break、continue等,同樣推薦使用駝峰命名和下劃線命名兩種規範命名格式

常數: 在Python中常數和變數在定義的方式上沒有太大的區別,知識Python中約定俗成的使用全大寫定義而已

註解: 在Python中,註解可以透過#來註解某行程式碼,也可以透過'''註解某段程式碼,例如'''註解內容'''

3.2.2 資料型別

在Python中,可以透過type(變數名)來取得變數的資料型別,經常使用到的資料型別有:布爾、整數型、浮點型、字串等;在布林型中真/True/1 假/False/0,非0的數字都是True;

在字串中可以透過單引號和雙引號兩種方式定義,例如

a = &#39;字符串&#39;
b = "字符串"
登入後複製

也可以使用

a = &#39;&#39;&#39;可以换行
    这里有换行
  这里也有换行
的字符串
&#39;&#39;&#39;
#或者三个双引号
b = """可以换行
    这里有换行
  这里也有换行
的字符串"""
登入後複製

來定義一大段字串;字串可以使用字串字串的方式進行拼接,也可以使用字符字串* 數字,將字串重複憑藉,例如'abc' * 2,name得出的字串便是abcabc

3.2.3 資料型別

##在整型和浮點數資料型別中加減乘除沒有什麼太特別,同樣是使用、-、*、/這四個符號,使用%可以的出餘數;Python中有幾個特殊的運算符,例如可以使用//進行整除,所得的結果不會有小數,如下程式碼所示:

a = 10 // 3 
# 得到的结果是 3
登入後複製

也可以使用**可以得到乘方,如下程式碼所示;

b = 2 ** 2 
# 得到的结果是 8
登入後複製

#3.2.4 輸入輸出

輸入輸出:在Python中可以使用print關鍵字對變數進行列印輸出,可以透過input接收使用者在終端機中傳遞的參數,例如

inp = input(&#39;用户输入的时候看到的提示 :&#39;)
登入後複製

透過input方式接收的所有內容都是字串類型,如果需要用來做運算需要對接收的變數進行類型轉換;例如

a = int(变量名)
登入後複製

可以將變數轉換成整數型,也可以透過

f = float(变量名)
登入後複製

轉換成浮點型;

3.3 IF控制

在Python中if語句使用的時候條件不需要使用()包括,執行體在也不需要使用{}包括,但執行體必須嚴格遵守縮排如下程式碼所示

# if a >3 and b==2:
    缩进 满足条件1之后要做的事情
  elif a>3 and b==3:
    缩进 不满足条件1但满足条件2之后要做的事情
  else:
    缩进 上面的条件都不满足要做的事情
登入後複製

#3.4 while迴圈##在Python中使用while方法與PHP類似,如下為偽代碼所示

while a == b:
    循环执行的代码
登入後複製

可以使用關鍵字break退出迴圈,也可以使用continue跳過迴圈過程中的某一步,如下程式碼所示

i = 1
while i < 10:   
    i += 1
    # 非双数时跳过输出
    if i%2 > 0:     
        continue
    # 输出双数2、4、6、8
    print i         
    # 当条件为8时候退出循环
    if i == 8:
        break
登入後複製

四、PHP語法

在PHP中並不需要嚴格遵守空格縮進,但是和Python相對應的是在每行程式碼後面通常需要使用;結尾,結構體的條件也需要使用(),執行體裡面同樣需要{};

4.1 程式碼範例

<?php
$n = 0;
while ($n < 3) {
    #累计次数,用于循环条件
    $n = $n + 1;
    #定义账号和密码
    $uname = &#39;tangqingsong&#39;;
    $pwd = &#39;123123&#39;;
    #接收参数
    fwrite(STDOUT, &#39;请输入用户名:&#39;);
    $username = trim(fgets(STDIN));
    fwrite(STDOUT, &#39;请输入密码:&#39;);
    $password = trim(fgets(STDIN));
    #判断用户输入的账号和密码是否正确,正确将提示成功,并且退出循环体
    if ($uname == $username and $pwd == $password) {
        print_r(&#39;恭喜你,登陆成功~&#39;);
        break;
        #三次机会用完的时候,提示错误次数,并告知即将退出
    } elseif ($n == 3) {
        print_r("已错误{$n}次,即将退出...");
    } else {
        #如果在三次以内,提示还剩下几次机会
        $j = 3 - $n;
        print_r("抱歉,账号或密码不正确,你还有{$j}次机会");
    }
}
登入後複製

4.2 基本語法

#以下從基本語法、資料型態、IF控制、while循環幾個面向來聊聊PHP程式碼中的一些規格

#4.2.1 基礎語法

#

变量: 在PHP中变量以数字 字母 下划线组成,必须以$符号开头,且第一个字符不能以数字开头,在PHP中因为变量都是以$开头,所以基本上没有关键字的说法,但是写代码的时候尽量不要覆盖系统变量即可,同样推荐使用驼峰命名和下划线命名两种规范命名格式

常量: 在PHP中常量同样约定俗成的使用全大写定义而已,在定义的方式有专门的定义格式,比如定义DAXIA的值为tangqingsong时候,代码如下所示

const DAXIA = &#39;tangqingsong&#39;;
登入後複製

注释: 在PHP中,注释可以通过#来注释某行代码,也可以使用//定义行代码,也可以通过/****/注释某段代码,如下代码所示

#这是行注释
//这是行注释,一般习惯是使用此种方式
/**
 *  块注释,一般在自定义函数和类方法的时候使用
 */
登入後複製

4.2.2 数据类型

在PHP中,可以通过var_dump(变量名)同时打印变量类型和值,经常使用到的数据类型有:布尔、整型、浮点型、字符串等;同样在布尔型中 真/True/1 假/False/0,非0的数字都是True;

在字符串中可以通过单引号和双引号两种方式定义,单引号中不能放变量,但是双引号是可以的,如下代码所示

$n = 123;
a = &#39;字符串&#39;;
b = "字符串{$n}";
登入後複製

当大家定义块文本内容的时候,也可以使用定界符方式,如下代码所示

$a = <<<EF
这里是大文本内容,可以写任意文本,EF是自定义的,大家也可以把EF写成DAXIA,但是必须前后对应,后面的必须定格,后面一个“EF”不能用空格之类的字符;
EF;
登入後複製

字符串可以使用符号 . 进行拼接,如下代码所示:

$name = &#39;daxia&#39; . &#39;tangqingsong&#39;;
登入後複製

4.2.3 数据类型

在PHP中整型和浮点数据类型中加减乘除没有什么太特别,同样是使用+、-、*、/这四个符号,使用%可以的出余数;

4.2.4 输入输出

输入输出:在PHP中可以使用print_r关键字对变量进行打印输出,在接收标准输入方面稍微麻烦,需要先通过fwrite接收用户在终端中传递的参数,然后再通过fgets函数将变量值取出来,还需要通过trim将后面的空格过滤,例如

    fwrite(STDOUT, &#39;请输入用户名:&#39;);   
    $username = trim(fgets(STDIN));
登入後複製

通过上面代码方式接收的所有内容都是字符串类型,但是PHP是弱类型语言,并不强大变量的数据类型,所以大部分情况无需进行类型转换,如果需要用到类型转换方法和Python大体类型,如下代码所示

a = intval(变量名)
登入後複製

可以将变量转换成整型,也可以通过

f = floatval(变量名)
登入後複製

转换成浮点型;

4.3 IF控制

if条件:在PHP中if语句的使用方法如下代码所示

<?php
if (a >3 and b==2){
    满足条件1之后要做的事情
} elseif (a>3 and b==3){
    不满足条件1但满足条件2之后要做的事情
} else {
    上面的条件都不满足要做的事情
}
登入後複製

4.4 while循环

while循环:在PHP中while的条件必须使用()包括,执行体在也必须使用{}包括,执行体不要求严格的缩进,但是为了美观,一般都会缩进,如下为伪代码所示

<?php
while ($a == $b){
    //循环执行的代码
}
登入後複製

可以使用关键词break退出循环,也可以使用continue跳过循环过程中的某一步,如下代码所示

<?php
$i = 1;
while ($i < 10) {
    $i += 1;
    //非双数时跳过输出
    if ($i % 2 > 0) {
        continue;
    }
    
    //输出双数2、4、6、8
    print_r($i);
    
    //当条件为8时候退出循环
    if ($i == 8) {
        break;
    }
}
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP的未來:改編和創新 PHP的未來:改編和創新 Apr 11, 2025 am 12:01 AM

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

php:死亡還是簡單地適應? php:死亡還是簡單地適應? Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

2小時的Python計劃:一種現實的方法 2小時的Python計劃:一種現實的方法 Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

redis怎麼啟動服務器 redis怎麼啟動服務器 Apr 10, 2025 pm 08:12 PM

啟動 Redis 服務器的步驟包括:根據操作系統安裝 Redis。通過 redis-server(Linux/macOS)或 redis-server.exe(Windows)啟動 Redis 服務。使用 redis-cli ping(Linux/macOS)或 redis-cli.exe ping(Windows)命令檢查服務狀態。使用 Redis 客戶端,如 redis-cli、Python 或 Node.js,訪問服務器。

redis怎麼讀取隊列 redis怎麼讀取隊列 Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

H5:工具,框架和最佳實踐 H5:工具,框架和最佳實踐 Apr 11, 2025 am 12:11 AM

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

Redis如何查看服務器版本 Redis如何查看服務器版本 Apr 10, 2025 pm 01:27 PM

問題:如何查看 Redis 服務器版本?使用命令行工具 redis-cli --version 查看已連接服務器的版本。使用 INFO server 命令查看服務器內部版本,需解析返回信息。在集群環境下,檢查每個節點的版本一致性,可使用腳本自動化檢查。使用腳本自動化查看版本,例如用 Python 腳本連接並打印版本信息。