- 第一个程序 hello.py 以下为内容
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'teng'
print 'hello'
代码语言:javascript复制#!/usr/bin/env python
表示使用 特定的解释器执行 如果是python3 将python改为python3
代码语言:javascript复制# -*- coding:utf-8 -*-
表示将代码编码设置为utf-8(针对Unicode的可变长度字符编码,用1到6个字节编码UNICODE字符)
如果不写不能显示中文 默认ascii码(1个字节)来读
运行 python hello.py
变成可执行文件
sudo chmod x hello.py
运行./hello.py
- 注释
# 单行注释
"""多行注释"""
一般在文件中在正文前使用"""多行注释"""表明用处
- 脚本参数
python flask.py 127.0.0.1:8000
如何捕获 flask.py 127.0.0.1:8000
flask,py 为 arg[0]
127.0.0.1:8000 为arg[1]
flask.py代码
代码语言:javascript复制import sys
print sys.argv
运行
代码语言:javascript复制python flask.py 127.0.0.1:8000
结果
['flask.py', ‘127.0.0.1:8000']
argv 为一个列表
- 字节码 import sys import hello print sys.argv
运行 => 生成hello.pyc文件
pyc编译生成 字节码 (可以反编译)
如果编译完成 => 可以删除hello.py => import hello依然可以导入
- 变量 python 是动态语言 不需要声明 name = "红雀" name 就是一个引用就是C的*name 指向 内存里"红雀"这个字符串 变量名要求=> 字母下划线和数组组成 但数字不能开头 内部关键字不能使用 name1 = name name的地址给了name1:内存公用 变量并不是最好的选择 变量相对于fp是灾难 可以用monad解决IO 当然上述是理论
- 字符串
c中"hello"为一个字符串数组 :
地址连续=>python 将其封装 如若存在相同字符串 内存固定
修改=>重新创建
内部机制 以下请看图自行理解 提示字符串缓存池
每次使用一次就在内存中申请一个新的内存
占位符 %s(字符串) %d(数字)=>%xx
{0} {1} => .format(xx,xx)
- 输入
raw_input: 接收为字符串
input:输入什么类型 接收什么类型
模块getpass 密码隐形
流程控制
if else
代码语言:javascript复制name = raw_input("请输入用户名:")
if name == "红雀":
print "登陆成功"
else:
print "登陆失败"
值对比 ==
引用对比 is
多种形式(case)
代码语言:javascript复制name = raw_input("in:")
if name == "teng":
print "good"
elif name == "rommel":
print "nice"
else:
print "bad"
缩进=>自行养成风格
代码语言:javascript复制import getpass
name = raw_input("name:")
pwd = getpass.getpass("password:")
if name == "teng" and pwd == "teng":
print "success"
else:
print "fail"
- 基本数据类型 单值:数字(int32/64之分)、字符串、布尔值 集合:列表、元组、字典、set(哈希表)