首页 > 技术文章 > Python语法使用

xiaopo 2021-08-10 11:49 原文

由于之前学习过js,代码基本上是相同的,先看看和js有那些区别

 

项目pythonjavascript
适用版本 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的简写

推荐阅读