问道python之基础篇【二】
Python入门
1.python的工作过程
python解释器把源代码转换为字节码的中间形式,然后再把它翻译成机器使用的机器语言并运行。
2.pyc文件
2.1.什么是pyc文件
执行python代码时,如果导入了其他的.py文件,那么在执行过程中会自动生成一个与其同名的.pyc文件,该文件就是python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
Pyc文件一般由3个部分组成:
最开始4个字节是一个Maigc int,标识此pyc的版本信息不同的版本的Maigc都在python/import.c内定义。
接下来四个字节还是int,是pyc产生的时间;接下来是序列化了的PyCodeObject(次结构在include/code.h内定义)。序列化方法在python/marshal.c内定义
2.2. pyc文件的作用
因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄露出去把?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出py文件源码,网上有类似的工具,不过该工具从python2.4开始就收费了,不过自己可以修改python的源代码中的opcode文件,重新编译python,从而防止不法分子的破解。
3.变量
3.1.声明变量
#!/usr.bin/env python
# -*- coding:utf-8 -*-
name = ‘anying‘
上述代码声明了一个变量,变量名为:name,变量name的值为:“anying”
变量的作用:昵称,其指内存里某个地址中保存的内容。
在python中,如果要使用一个变量,不需要提前声明,只需要在用的时候,给这个变量赋值即可。需要强调的是,只要用一个变量,就要给这个变量赋值。
3.2.
变量的定义规则:
(1)
变量名可以包括字母、数字、下划线,但是数字不能作为开头,例如:name1是合法变量名,而1name就不可以
(2)
系统关键字不能做变量名使用
(3)
除了下划线以外,其他符号不能作为变量名使用
(4)
Python的变量名是区分大小写的,例如:name和Name就是两个变量名,而非相同的变量。
3.3.
变量的简单使用
3.3.1
#!/usr/bin/env
python
# -*-
coding:utf-8 -*-
name
= input(“请输入用户名:”)
print
name
3.3.2.输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法。
#!/usr/bin/env
python
#
-*- coding:utf-8 -*-
import
getpass
# 将用户输入的内容赋值给pwd变量
pwd
= getpass.getpass(“请输入密码:”)
#打印输入的内容
print
pwd
4.流程控制和缩进
4.1.条件语句和缩进
需求一:猜数字游戏
#初始化一个幸运数字
#提示输入所猜的数字
#如果输入的数字比初始化的数字大,则输出猜大了
#如果输入的数字比初始化的数字小,则输出猜小了
#如果输入的数字和初始化的数字一样,则输出bingo
#!/usr.bin/env python # -*- coding:utf-8 -*- num = 8 guess = input("请输入你的幸运数字:") print guess if guess > num: print ‘猜大了!‘ if guess < num: print ‘猜小了!‘ if guess == num: print ‘bingo‘
需求二:用户登录验证
#提示输入用户名和密码
#验证用户名和密码
#如果错误,则提示用户名或密码错误
#如果正确,则输出 欢迎, xxx
#!/usr/bin/env python # -*- coding:utf-8 -*- import getpass user = raw_input(‘请输入你的用户名:‘) pwd = input(‘请输入你的密码:‘) if user == ‘anying‘ and pwd == ‘123‘: print ‘welcome,%s‘ % user else: print ‘用户名或密码错误‘
4.2. while循环
它的原理是:当条件为真时,一直执行下去,当条件为假时停止!
continue是跳出本地循环,break是跳出整个循环
4.3. 基本数据类型