第一个程序
hello.py 以下为内容
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'teng' print 'hello'
#!/usr/bin/env python
表示使用 特定的解释器执行 如果是python3 将python改为python3
# -*- 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代码
import sys print sys.argv
运行
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
name = raw_input("请输入用户名:") if name == "红雀": print "登陆成功" else: print "登陆失败"
值对比 ==
引用对比 is
多种形式(case)
name = raw_input("in:") if name == "teng": print "good" elif name == "rommel": print "nice" else: print "bad"
缩进=>自行养成风格
import getpass name = raw_input("name:") pwd = getpass.getpass("password:") if name == "teng" and pwd == "teng": print "success" else: print "fail"
基本数据类型
单值:数字(int32/64之分)、字符串、布尔值
集合:列表、元组、字典、set(哈希表)