python 基础(一)

2020-01-13 15:30:22 浏览数 (1)

  • 第一个程序 hello.py 以下为内容
代码语言:javascript复制
#!/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(哈希表)

0 人点赞