标签:
二、初始python
1、第一句python代码
>>> print ‘hello world!!!‘
hello world!!!
2、python解释器声明
#!/usr/bin/env python
3、编码以及编码声明
# _*_ coding:utf-8 _*_
4、注释
单行注释#
‘‘‘ ‘‘‘多行注释
5、脚本参数
import
sys.argv #将输入的参数$0,$1...放到一个列表当中,类似于shell的$*
6、字节码
如果在一个文件中导入文件m.py文件,那么产生m.pyc文件,如果m.py文件和m.pyc文件的功能相同,那么优先导入m.pyc文件
7、变量
代指内存里某个地址中保存的内容
name1="changqiangqiang"
name2=name1
如果此时name1改变,但是name2不变
但是如果name1不是字符串而是集合,那么name2也会改变;
在C语言中,没有字符串,但是有字符,比如hello由5个字符组成,由于python是由c实现的,所以python的字符串由C的字符数组[‘h‘,‘e‘...‘o‘]组成。
字符串特性:一旦修改,就需要重新创建,(中心开辟空间)。
万恶的"+"号:如果字符串使用“+”号叠加,每一个"+"号,都需要重新到内存中开辟一块空间,导致性能下降.
数据结构有两种类型:
第一种是直立型:只要值改变,就需要重新开辟空间;
第二种是引用类型:值改变,不需要重新开辟空间;
python缓冲池的概念
在一定的数值范围内,即咋缓冲池内的字符串,相同变量指向相同的字符串,id值相同。
python解释器执行的过程:加载内存-->词法分析-->语法分析-->编译-->字节码(c语言为机器码)-->执行
8、python的输入输出
name=raw_input(">>>")
import getpass
pwd=getpass.getpass(">>>")
9、流程控制
"=="只表示值相同,"is"标志内存地址相同
if...
elif ...
else...
10、初始基本数据类型
范围两类:
第一类是单值:数字、字符串、布尔值
第二类是集合:列表、元组、字典、哈希表(set)
字符串:万恶的字符串拼接(+),不要用,使用字符串格式化替代
两种字符串格式化:
第一种:name="i am %s" %(‘QQ‘)
第二种:name="i am {0} age{1}"
print name.format(‘alex‘,18)
字符串的切片:name=‘hello‘ name[0]=‘a‘ name[0:2]=‘he‘
len(name)-->多少个字符 name[-1]==name[len(name)-1]
字符串的分割:names="QQ,hello" name.split(",")=["QQ","hello"]-->字符分割的结果为列表
创建的列表本质上讲都是对象,字符串和列表都支持索引
总结:
字符串的常用功能:
移除空白
分割
长度
索引
切片
列表的常用操作:列表内容修改,内存地址不发生改变(id值相同),不会创建新的内存空间
索引
切片
追加
删除
长度
循环
包含
转换为字符串(与分割相反)
str、list和tuple的相同点和不同点:
相同点:切片、索引、len()、包含、循环;
不同点:str修改后重新开辟空间,list修改后内存地址不变,tuple不允许修改;
字典:键值对,字典是无序的
字典的循环: for k,v in name.items():
print k,v
12、初识文本操作
找到文件
打开文件:file_obj=file(文件路径,模式)
文件操作,读写:file_obj.read() #将所有写入内存
file_obj.readlines() #不仅读入内存,并不以行为一个列表
模式: r-->读 w-->如果文件存在,则将其重写 a-->追加 w+(读写)
循环:
for line in file_obj.readlines: #每次循环,只读一行,避免全部读入内存
for line in file_obj.xreadlines(): #迭代器
file_obj.write()
file_obj.writeline()
file_obj.close() #关闭文件
作业:
第一份作业:
要求:编写登陆接口,输入用户名和密码,认证成功后显示欢迎信息,输错三次后锁定。
root@QQ:/scripts/seminor11/day01# cat login.py
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import getpass
import sys
chiper_file=‘account.txt‘
limit_times=0
lock_file=‘lock_file.txt‘
chiper_dict={}
lock_file_list = []
while limit_times < 3:
username=raw_input(‘请输入用户名:‘).strip()
f = file(lock_file,‘r‘)
for line in f.readlines():
line = line.strip()
lock_file_list.append(line)
f.close()
if username in lock_file_list:
print "\033[41;37m这个账号已被锁定,不能登陆.请联系管理员解锁!!!\033[0m"
sys.exit()
f = file(chiper_file,‘rb‘)
for line in f.readlines():
line = line.strip()
line_list=line.split(‘;‘)
chiper_dict[line_list[0]]=line_list[1]
if not chiper_dict.has_key(username):
print "该用户名不存在,请重新输入!!!"
limit_times +=1
continue
password=getpass.getpass(‘请输入密码:‘).strip()
if chiper_dict[username] == password:
print "Welcome to login my system,哈哈哈!!!"
sys.exit()
else:
print "认证错误,请重新输入!!"
limit_times += 1
continue
else:
f.close()
print "用户名被锁定"
f = file(lock_file,‘ab‘)
f.write(‘{0}{1}‘.format(username,‘\n‘))
f.close()
第二份作业:
三级菜单
可依次选择进入各子菜单
所需知识:列表,字典
包含流程图,README
root@QQ:/scripts/seminor11/day01# cat menu.py
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
Province=(‘陕西‘,‘甘肃‘,‘广东‘)
City={‘陕西‘:[‘西安‘,‘咸阳‘,‘延安‘,‘汉中‘],
‘甘肃‘:[‘兰州‘,‘定西‘,‘天水‘,‘平凉‘],
‘广东‘:[‘广州‘,‘深圳‘,‘珠海‘,‘汕头‘],
}
County={‘定西‘:[‘通渭‘,‘陇西‘,‘临洮‘],
‘西安‘:[‘临潼‘,‘长安‘,‘太白‘],
}
province=‘‘‘
(1)、%s
(2)、%s
(3)、%s
‘‘‘ %Province
while True:
print province
num1_province=int(raw_input(‘请输入你想要查看的省份的编号:‘))
if not num1_province in range(1,len(Province)+1):
print ‘You have entered a wrong number,please try again!‘
continue
print ‘\n你想要查看的省份是%s,其下属市级单位如下:\n‘ %(Province[num1_province -1])
for i in range(len(City[Province[num1_province -1]])):
print "%s、%s" %(i + 1,City[Province[num1_province -1]][i])
print "%s、%s" %(0,‘返回上一级‘)
num1_city=int(raw_input(‘请输入你想要查询的城市的编号:‘))
if not num1_city in range(0,len(City[Province[num1_province -1]])+1):
print ‘You have entered a wrong number,pliase try again!!‘
elif num1_city == 0:
continue
for i in range(len(County[City[Province[num1_province -1]][num1_city -1]])):
print "%s、%s" %(i+1,County[City[Province[num1_province -1]][num1_city -1]][i])
again=raw_input(‘你是否想继续查询(yes/no):‘).strip()
if again == ‘no‘:
break
else:
pass
标签:
原文地址:http://www.cnblogs.com/cqq-20151202/p/5018328.html