由于之前學習過js,代碼基本上是相同的,先看看和js有那些差別
項目 | python | javascript |
---|---|---|
适用版本 | python3 | es6,即ECMAScript 2015 |
運作環境 | #!/usr/bin/python # -*- coding: UTF-8 -*- ,第1句指定linux運作環境,第2句指定檔案編碼 | 'use strict';,使用限制模式,即強制要提前聲明變量,否則報錯 |
大小寫 | 要區分大小寫 | 同python |
語句結尾 | 不需要 | 必須加分号; |
單行注釋 | 用 # | 用// |
多行注釋 | 不支援,通常變通為不指派的多行字元串,即三個引号 ''' | 多行用/* */ |
變量聲明 | 必須聲明,格式為:let i=0; | |
字元串 | 單雙引号都可 | |
多行字元串 | 用三引号,''' 或 """ 都可 | 用 ` |
轉義字元 | 用 \ 表示,如 \ \ 表示\ | |
批量不轉義 | 用 r' ... '表示,即原樣輸出,不轉換 | 不支援 |
16進制數字 | 用0x表示,如0xaf | |
16進制字元串 | 用\ x表示,如'\ x41表示A | |
unicode字元串 | 用\ u表示,如 '\ u4e2d'表示 中 | |
取幂 | 用雙乘号**,相當于重複xx次,可用于數字和字元串 | |
取商數 | 用雙除号// | 不支援,//表示注釋 |
取餘數 | 用 百分号 % | 同 python |
布爾值 | True 或 False | true 或 false |
與或非 | 與and,或or,非not | 與&&,或||,非! |
空值 | 用 None | 用null |
指派 | 用等号=,或+=,-= | |
判斷相等 | 用雙等号== | 用三等号===,雙等号比較時會進行類型轉換,不安全 |
判斷不等 | 用!= | |
代碼塊 | 用4個空格縮進,縮進的上一句結尾用冒号: | 用花括号{} |
占位語句 | 用pass,表示有個功能,但還沒開發出來,暫時留個位置 | |
函數 | def 函數名(參數): | function 函數名(參數){} |
子產品 | import 子產品名,py檔案就是子產品 | |
包 | import 包名/子產品名,檔案夾就是包,必須包含有 | |
數組 | 叫list,如[1,2] | 叫array,如[1,2] |
元組 | 叫tuple,如(1,2),不能修改 | |
if語句 | if xxx:...elif...else | if(){...}else if(){...} else {} |
for循環 | for xxx in range(10):... | for(var i=0;i<=10;i++){} |
for...in循環 | for k in o:... | for(var k in o){} |
while循環 | while xxx:... | while(){} |
do...while循環 | do{} while(); |
輸出輸入:
print() 輸出内容
括号内與js的log相同也可以使用函數
a=30
print(a)
input()輸入内容
a=input('請輸入内容')
print(a)
數組list
可以使用空數組
a=['a','b','c']
print(a[0])
圓組tuple
tuple和list非常類似,但是tuple一旦初始化就不能修改,它也沒有append(),insert()這樣的方法。其他擷取元素的方法和list是一樣的
a=('a','b')
print(a[0])
if else
python中的if文法和js中的有一點不同,js中使用為if(){}else{},而python為if(): else;
a=20
if(a>2):
print('a大于2')
else:
print('a小于2')
if...elif...else...語句格式:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
else:
其他的事情
s = 30
if s > 90:
print('我很優秀')
elif s >=30 < 40:
print('我還沒及格')
elif s > 40 < 50:
print('我才50分')
else:
print('算了,不考了')
三目運算符
a=2
b=3
max= a if a>b else b
print(max)
for in 周遊
執行後依次輸出數組中的内容
a = ['Michael', 'Bob', 'Tracy']
for ab in a:
print(ab)
max 取最大值
a=[1,2.,3,4,5,6,7,8]
print(max(a))
abs() 求絕對值
print(abs(-3))
輸出結果為3
資料類型轉換
說明 | |
---|---|
int(x [,base ]) | 将x轉換為一個整數 |
float(x ) | 将x轉換為一個浮點數 |
complex(real [,imag ]) | 建立一個複數,real為實部,imag為虛部 |
str(x ) | 将對象 x 轉換為字元串 |
repr(x ) | 将對象 x 轉換為表達式字元串 |
eval(str ) | 用來計算在字元串中的有效Python表達式,并傳回一個對象 |
tuple(s ) | 将序列 s 轉換為一個元組 |
list(s ) | 将序列 s 轉換為一個清單 |
chr(x ) | 将一個整數轉換為一個Unicode字元 |
ord(x ) | 将一個字元轉換為它的ASCII整數值 |
hex(x ) | 将一個整數轉換為一個十六進制字元串 |
oct(x ) | 将一個整數轉換為一個八進制字元串 |
bin(x ) | 将一個整數轉換為一個二進制字元串 |
自定義函數 def
js中自定義函數為function a(){},python中使用def 與js有異曲同工之處,在調用,傳參上都相同
def myfunction(a,b):
print(a+b)
myfunction(1,2)
格式化輸出 %
day = 6
month = 9
print('今天是%d月%d号'%(day, month))

f-strings輸出
f-strings 提供一種簡潔易讀的方式, 可以在字元串中包含 Python 表達式. f-strings 以字母'f' 或 'F' 為字首, 格式化字元串使用一對單引号、雙引号、三單引号、三雙引号. 格式化字元串中
name = 'bayi'
age = 35
format_string1 = f'我的名字是 {name}, 我的年齡是 {age}'
format_string2 = f"我的名字是 {name}, 我的年齡是 {age}"
format_string3 = F'''我的名字是 {name}, 我的年齡是 {age}'''
format_string4 = F"""我的名字是 {name}, 我的年齡是 {age}"""
format_string5 = f'3 + 5 = {3 + 5}'
a = 10
b = 20
format_string6 = f'3 + 5 = {a + b}'
# 兩個花括号會被替換為一個花括号, 注意{{}} 不表示表達式
format_string7 = F'我的名字是 {{name}}, 我的年齡是 {{age}}'
** f-strings在Python3.6版中提供,檢視python版本指令:python --version ***
a='xiao'
b='po'
fstr=f'我姓{a},名{b}'
print(fstr)
格式轉換
格式符号 | 轉換 |
---|---|
%c | 字元 |
%s | |
%d | 有符号十進制整數 |
%u | 無符号十進制整數 |
%o | 八進制整數 |
%x | 十六進制整數(小寫字母0x) |
%X | 十六進制整數(大寫字母0X) |
%f | 浮點數 |
%e | 科學計數法(小寫'e') |
%E | 科學計數法(大寫“E”) |
%g | %f和%e 的簡寫 |
%G | %f和%E的簡寫 |