由于之前学习过js,代码基本上是相同的,先看看和js有那些区别
项目 | python | javascript |
---|---|---|
适用版本 | python3 | es6,即ECMAScript 2015 |
运行环境 | #!/usr/bin/python # -*- coding: UTF-8 -*- ,第1句指定linux运行环境,第2句指定文件编码 | 'use strict';,使用限制模式,即强制要提前声明变量,否则报错 |
大小写 | 要区分大小写 | 同python |
语句结尾 | 不需要 | 必须加分号; |
单行注释 | 用 # | 用// |
多行注释 | 不支持,通常变通为不赋值的多行字符串,即三个引号 ''' | 多行用/* */ |
变量声明 | 不需要 | 必须声明,格式为:let i=0; |
字符串 | 单双引号都可 | 同python |
多行字符串 | 用三引号,''' 或 """ 都可 | 用 ` |
转义字符 | 用 表示,如 表示 | 同python |
批量不转义 | 用 r' ... '表示,即原样输出,不转换 | 不支持 |
16进制数字 | 用0x表示,如0xaf | 同python |
16进制字符串 | 用 x表示,如' x41表示A | 同python |
unicode字符串 | 用 u表示,如 ' u4e2d'表示 中 | 同python |
取幂 | 用双乘号**,相当于重复xx次,可用于数字和字符串 | 不支持 |
取商数 | 用双除号// | 不支持,//表示注释 |
取余数 | 用 百分号 % | 同 python |
布尔值 | True 或 False | true 或 false |
与或非 | 与and,或or,非not | 与&&,或||,非! |
空值 | 用 None | 用null |
赋值 | 用等号=,或+=,-= | 同python |
判断相等 | 用双等号== | 用三等号===,双等号比较时会进行类型转换,不安全 |
判断不等 | 用!= | 同python |
代码块 | 用4个空格缩进,缩进的上一句结尾用冒号: | 用花括号{} |
占位语句 | 用pass,表示有个功能,但还没开发出来,暂时留个位置 | 不支持 |
函数 | def 函数名(参数): | function 函数名(参数){} |
模块 | import 模块名,py文件就是模块 | 不支持 |
包 | import 包名/模块名,文件夹就是包,必须包含有 __init__.py |
不支持 |
数组 | 叫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的简写 |