1. 程式人生 > >JavaScript、PHP、Python三種語言

JavaScript、PHP、Python三種語言

一、變數

1.JavaScript

var A = 1;
var B = 'str';

2.Python

a = 123
b = 'str'

3.PHP

$a = 123;
$b = 'str';

二、字串

1、字串合併操作:“ + ”
2、parseInt() 將數字字串轉化為整數
3、parseFloat() 將數字字串轉化為小數
4、split() 把一個字串分隔成字串組成的陣列
5、charAt() 獲取字串中的某一個字元
6、indexOf() 查詢字串是否含有某字元
7、substring() 擷取字串 用法: substring(start,end)(不包括end)
8、toUpperCase() 字串轉大寫
9、toLowerCase() 字串轉小寫
# 字串 為不可變
len(mystr) # 算出字串長度
mystr.find(str, [start, end]) # 檢測 str 是否包含在 mystr中,如果是返回開始的索引值,否則返回-1
mystr.rfind(str, [start, end]) # 類似find,從右邊
mystr.index(str, [start, end]) # 如find方法一樣,只不過如果str不在,mystr會報一個異常.
mystr.rindex(str, [start, end]) # 類似index,從右邊
mystr.count(str, [start, end])# 返回 str在start和end之間 在 mystr裡面出現的次數
mystr.replace(str1, str2,  mystr.count(str1))# 把 mystr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次.
mystr.split(str=" ",[maxsplit=2])# 以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字串,返回結果列表
mystr.splitlines()# 類似split(r'\n'),返回列表
mystr.capitalize()# 把字串第一個字母變成大寫,假設mystr='aa bb cc' ==> 'Aa bb cc'
mystr.title()# 把字串首字母變成大寫,假設mystr='aa bb cc' ==> 'Aa Bb Cc'
mystr.startswith('str')# 檢查字串是否是以 str 開頭, 是則返回 True,否則返回 False
mystr.endswith('str')# 檢查字串是否是以 str 結尾, 是則返回 True,否則返回 False
mystr.lower() # 把mystr中所有大寫字母轉化成小寫
mystr.upper() # 把mystr中所有大寫字母轉化成大寫
mystr.ljust(width) # 規定mystr長度,不夠以空格不齊,夠的話原字串輸出。若mystr='test1',width=6 ==> 'test1 ';  若width=2 ==> 'test1'
mystr.rjust(width) # 與ljust相反
mystr.center(width) # 與ljust類似,不過它是居中,兩邊以空格補齊
mystr.lstrip() # 刪除 mystr 左邊的空白字元
mystr.rstrip() # 刪除 mystr 字串末尾的空白字元
mystr.strip() # 刪除mystr字串兩端的空白字元
mystr.partition(str) # 把mystr以str分割成三部分,str前,str和str後,返回長度為3的元組
mystr.isalpha() # 如果 mystr 所有字元都是字母 則返回 True,否則返回 False
mystr.isdigit() # 如果 mystr 只包含數字則返回 True 否則返回 False.
mystr.isalnum() # 如果 mystr 所有字元都是字母或數字則返回 True,否則返回 False
mystr.isspace() # 如果 mystr 中只包含空格,則返回 True,否則返回 False.
mystr.join() # 把列表裡的每個字串一mystr作為分隔符連線,構造出新的一句字串
字串操作可使用運算,
+       'a'+'b' ==> 'ab'
*       'a'*3 ==> 'aaa'
[:]     'abcd'[:3] ==> 'abc' 
in      'a' in 'abcd' ==> True
not in  'e' not in 'abcd' ==> True
strlen($str);//返回字串長度 mb_strlen($str) 可以返回中文字元長度; 類似python len()
strtolower($str);//字母轉小寫  類似lowwer()
strtoupper($str);//字母轉大寫  類似upper()
ucwords($str);//每一個單詞的首字母轉大寫  類似title()
ucfirst($str);//首字母轉大寫  類似 capitalize()
str_replace('a','b',$str);//b替換$str 中的a 區分大小寫; replace()
str_ireplace('a','b',$str);//替換 不區分大小寫 
htmlspecialchars($str,ENT_NOQUOTES);
//字串轉換為html 實體 ENT_COMPT(預設只編譯雙引號)ENT_QUOTES單引號雙引號都編譯,ENT_NOQUOTES不編譯任何引號
trim($str);//刪除字串前後(左右)空格
ltrim($str);//只刪除字串左側的空格
rtrim($str);//只刪除字串右側的空格
//trim加第二個引數 就是移除指定的字符集 如ltrim($str,'0..9') 移除左側數字開頭的字元
strpos($str,'a’);//字串a 在$str 第一次出現的位置 索引0開始 沒有出現返回false 區分大小寫  類似find
stripos($str,'a’);//同上 但是不區分大小寫
strrpos($str,'a’);//字串a 在$str 最後一次出現的位置 索引0開始 沒有出現返回false 區分大小寫
strripos($str,'a’);//同上 但是不區分大小寫
substr($str,0,3);//擷取字串 $str 的第一個字元 擷取長度3 長度不填預設擷取到最後  引數為負數則倒數 類似[0:3]
strstr($str,'a');//擷取字串 $str 中的第一個字元'a'後的字串 如 sabc -> abc
strrchr($str,'a');//擷取字串 $str 中最後一一個字元'a'後的字串
strrev($str);//字串反轉 abcd->dcba  類似[::-1]
md5($str);//字串MD5加密
str_shuffle($str);//隨機打亂字串順序
explode('-',$str);//指定分隔符分割字串 返回陣列 ‘-’ 分割$str  類似split
implode('-',$str);//陣列拼接字串 與explode()相反  類似 join

三、列表,索引陣列

# 列表增、刪、改、查、排序
list.append() # 在列表尾部增加元素
list.extend() # 跟append()類似,只不過extend會把可變變數迴圈輸入到list,假設list=[0,1],list.extend({2,3,4}) ==> list=[0,1,2,3,4], 若list.append({2,3,4}) ==> list=[0,1,{2,3,4}]
list.insert(index, var) # 指定位置index 插入var

del list[index] # 根據下標index 刪除
list.pop() # 刪除最後一個元素
list.remove() # 根據元素值刪除

list[index] # 通過下標index 修改

var in list # 判斷var是否在list,存在則True,否則False
var not in list # 相反
list.index(var, [start, end]) # 跟字串類似,會報異常
list.count(var)==0 # 等於零不存在,大於零則存在

list.sort(reverse=False) # 預設升序
list.reverse() # 反轉,逆置,不進行排序

四、字典、關聯陣列

# 增、刪、改、查、排序
dict['key'] = data # 若key不存在,則新增,存在,則修改

del dict # 刪除字典
dict.clear() # 清空字典

value = dict['key'] # 查詢

len(dict) # 查詢 鍵值對個數
dict.keys() # 返回 key列表
dict.values() # 返回 value列表
dict.items() # 返回一個包含所有(key, value)元組列表
dict.has_key(key) # 判斷key是否在dict的kyes中
// for迴圈 Python字典 <==> PHP關聯陣列 associative_array

// 建立 空關聯陣列 $_associative_array_one: {}[]
$_associative_array_one = array();

// 建立 關聯陣列 相同鍵名則替換
$_associative_array_two = array('a'=>3,'1'=>2,'2'=>2,'a'=>4);

// 刪除 關聯陣列
unset($_associative_array_one);

// 判斷 當前陣列 是否是 關聯陣列
// 關聯陣列 和 索引陣列 的區別 在於 索引陣列的索引key值為[0,1,2,3,...]
// 偶爾 會有突發情況 比如索引值缺失、索引值數字字串 這方法也就不行
function _is_associative_array($_array){
    print_r(array_keys($_array));
    print_r(range(0, sizeof($_array)-1));
    return array_keys($_array) !== range(0, sizeof($_array));
}



// 增刪改查 關聯陣列

// 尾部增加 關聯陣列 若陣列不存在,則自動建立再進行尾部新增 $_associative_array_one: {a=>1, 3=>3, 2=>2}[3]
$_associative_array_one['a'] = 1;
$_associative_array_one['3'] = 3;
$_associative_array_one['2'] = 2;
// 頭部增加 關聯陣列 $_associative_array_one: {1=>0, a=>1, 3=>3, 2=>2}[4]
//array_unshift($_associative_array_one, 0); // 只能新增值
$_associative_array_one = array('1'=>0) + $_associative_array_one;

// 尾部刪除 關聯陣列 $_associative_array_one: {1=>0, a=>1, 3=>3}[3]
array_pop($_associative_array_one);
// 頭部刪除 關聯陣列 好像沒看見這函式

// 按key 修改 關聯陣列 整形字串索引會自動改成整形索引 $_associative_array_one: {1=>8, a=>1, 3=>3}[3]
$_associative_array_one[1] = 8;

// foreach迴圈遍歷 檢視陣列
/*
key: 1    value: 8
key: a    value: 1
key: 3    value: 3
*/
foreach ($_associative_array_one as $key=>$value){
    echo 'key: '.$key.'    value: '.$value.PHP_EOL;
}

// array_keys(array, [value, true/false])
// 按value搜尋key 若value為空,則返回所有key
// 否則只返回該值的key $key_array: {1, "a", 3}[3]
$key_array = array_keys($_associative_array_one);

// array_values(array)
// 返回 關聯陣列 value陣列 $value_array: {8, 1, 3}[3]
$value_array = array_values($_associative_array_one);

// 陣列排序
// 注意:ksort,krsort,asort,arsort都是直接對陣列進行排序,不會返回新陣列,只會返回是否成功true/false

// ksort(array, [sortingtype=0])
// sortingtype(排序模式): 有五種
// 0 = SORT_REGULAR ==> 把每一項按常規順序排列(Standard ASCII,不改變型別)
// 1 = SORT_NUMERIC ==> 先字母排序,再數字排序
// 2 = SORT_STRING ==> 先數字排序,再字母排序。
// 3 = SORT_LOCALE_STRING - 把每一項作為字串來處理,基於當前區域設定(可通過 setlocale() 進行更改)。
// 4 = SORT_NATURAL - 把每一項作為字串來處理,使用類似 natsort() 的自然排序。
// 5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字串進行排序,不區分大小寫。
// 關聯陣列 key排序 $_associative_array_one: {a=>1,1=>8, 3=>3}[3]
// 這裡我就有點看不懂,不是說好按ASCII碼排序,a不是應該在後面?
$key_sort = ksort($_associative_array_one);
// 關聯陣列 key逆排序 $_associative_array_one: {3=>3, 1=>8, a=>1}[3]
$key_r_sort = krsort($_associative_array_one);
// 關聯陣列 value排序 _associative_array_one: {a=>1, 3=>3, 1=>8}[3]
$value_sort = asort($_associative_array_one);
// 關聯陣列 value逆排序 _associative_array_one: {1=>8, 3=>3, a=>1}[3]
$value_r_sort = arsort($_associative_array_one);

// array_column(array, [column_key, index_key])
// 根據column_key和index_key向多維陣列 搜尋出 相對應的陣列 組合成{index:column,index:column}新關聯陣列
// 如果 只有column_key 有值 輸出 索引陣列
$two_array = array(
    array(
        'id' => 5698,
        'first_name' => 'Bill',
        'last_name' => 'Gates',
    ),
    array(
        'id' => 4767,
        'first_name' => 'Steve',
        'last_name' => 'Jobs',
    ),
  array(
      'id' => 3809,
      'first_name' => 'Mark',
      'last_name' => 'Zuckerberg',
  ),
);
// $_associative_array_three: {5698=>"Bill", 4767=>"Steve", 3809=>"Mark"}[3]
$_associative_array_three = array_column($two_array,'first_name', 'id');

// array_chunk(array, size, [preserve_keys=false])
// 按size個元素, 對一維關聯陣列進行分割,然後組裝成新的二維關聯陣列
// 若preserve_keys=false key便從零開始重新索引
// 若preserve_keys=true 保留key索引
// $_associative_array_four: {{1=>8, 3=>3}[2], {a=>1}[1]}[3]
$_associative_array_four = array_chunk($_associative_array_one, 2);