Python 语法

脚本语言

Python通过编写脚本来执行程序,Python脚本以.py为扩展名,.pyw代表后台运行的Python文件。

print 'hello python`

将代码保存在test.py中,在linux shell中使用python命令执行脚本。

python test.py

可以在脚本文件中指定python解释器所在的路径,以可执行文件的方式执行脚本

方式1:直接指定解释器所在的绝对路径

#!/usr/bin/python
print 'hello python`

方式2:告知python去环境变量里面查找python的安装路径,然后使用安装路径中的解释器

#!/usr/bin/env python
print 'hello python`

然后将test.py文件修改成为可执行文件

chmod +x test.py # 增加可执行权限
./test.py # 执行脚本

Python 标识符

标识符由字母、数字、下划线组成,区分大小写,但是不能以数字开头。

下划线开头的标识符有特殊意义。

单下划线开头的变量,如_foo代表不能直接访问的类属型,需要通过类提供的接口进行访问,并且不能用from xxx import *导入。

双下划线开头的变量,如__foo代表类的私有成员

以双下划线开头和结尾代表特殊方法,如__init__()代表类的构造函数

命令行参数

python -h # 查看参数使用方法
# 显示如下信息
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-B     : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser; also PYTHONDEBUG=x
...

传参

python test.py hello world

接收参数

将下列代码写入test.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print sys.argv[0] # 输出脚本文件名称 .test.py
print sys.argv[1] # 输出 hello
print sys.argv[2] # 输出 world

lambada 表达式

条件运算,如简单的if else,可以用三元运算符表示,即:

# 普通条件语句
if 1==1:
    name = '张三'
else:
    name = '李四'
# 三元运算符
name = '张三' if 1==1 else '李四'

对于定义简单函数,可以用lambada表达式表示:

# 普通函数
def func(arg1, arg2):
    return arg1 + arg2
# lambada
m_lambada = lambada arg1, arg2 : arg1 + arg2 

lambada 就是函数的简洁表示,常用于表示匿名函数,高阶函数的参数,例如:

li = [1,2,3,4,5,6,7,8,9]
# reduce() 的三个参数:
# 参数1:两个参数的操作函数
# 要遍历的序列
# 初始默认值(可选)
result = reduce(lambda arg1, arg2: arg1 + arg2, li, 0)

下面用两张图直观的解释下reduce操作,不管是Python还是Scala还是Xxxx每个语言除了语法不同,要做的事情是一样的。 有帮助的截图 有帮助的截图

获取当前目录

import os
import sys

print("列出当前文件的绝对路径: %s" % sys.argv[0])
print("列出当前文件所在目录: %s" % os.getcwd())
print("列出当前文件所在目录下的所有文件: %s" % os.listdir())

# 路径拼接
log_file = os.path.join(os.getcwd(), 'daily.log')
# 或者使用正则表达式,防止`\`被当成转义符
log_file = os.getcwd() + r'\daily.log'

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开支付宝扫一扫,即可进行扫码打赏哦