1:python优势
	  快捷方便减少开发成本

2:python的运行模式
	其他高级语言:编码——字节码——机器码
	C语言:编码——机器码

3:python的种类
	Cpython:代码——C字节码——机器码 (一行一行转换)
	pypy:代码——C字节码——机器码(全部转换完毕后,一下运行)
	其他版本python:编码——其他认识的字节码——机器码4:python规则
	1:安装python(解释器)
	2:写程序代码
		print(‘hello world’)--print=输出
		输出:hello world
	windows下
	3:两种运行方式
		打开终端解释器目录+文件目录
			解释器会打开文件读取内容——分析词法和语法——转换为字节码——机器码——运行
		打开终端解释器目录确定后输入代码
			输入一行解释打印一行
	liunx下:
		头部文件
		#!/usr/bin/python(解释器路径)
		# -*- coding:UTF-8 -*-(解释器打开文件的编码格式)
		赋予可执行权限(chmod 755 文件名)
		./文件名(直接运行文件内容)
		潜规则:.py结尾代表python代码

5:python编码历史(最少8位,推荐UTF-8,)
	1:英文256个字符(ascii8位) a=8(一个字节)
	2:万国码(至少16位,8位一个单元)a-16(两个字节)  中-24(三个字节)
	3:UTF-8(对万国码的压缩)
	4:GBK  GK2312(中国两个字节,GBK支持繁体字)
	中文:
	UTF-8需要用三个字节来表示24
	GBK需要两个字节来表示16

6:python数据类型
	整数代表int
		创建:a = 123  a = int(123)
		转换:a = “123”  b = a(int)
	布尔值代表bool
		创建: a = True b = False
		转换:
			数字转换,只有0是False,其他是True
			字符串转换,只有“”空是False,其他是True
			待续。。。
	字符串代表str
		创建:a = "xiaoyang"   a = str("xiaoyang")
		转换:age = 18    new_age = str(age)
	字符串的拼接
		name = "小龙"
		gender = "女"
		new_str = name + gender
		print(new_str)###打印小龙女
	字符串格式化
		占位符
		name = "我叫小龙,性别:%s,今年%s岁,我在说谎!"###%s占位符号,
		new_str = name %("男",18,)
		print(new_str)		name = "我叫小龙,性别:%s,今年%s岁,我在说谎!" % ("男",19,)
		print(name)
	移除空白
		#移除空白 Strip
		# val = "  xiaoyang  "
		# #print(val)
		# new_val = val.strip()
		# print(val)
	分割
		# #分割   split
		# ziliao = "xiaoyang|nan|19"
		# new_val = ziliao.split("|",1)
		# print(new_val)
	长度
		#长度 len字符长度
		# val = "李杰sb"
		# v = len(val)
		# print(v)
	索引

		#索引  取值,从0开始取值
		# val = "李杰sb"
		# v = val[1]
		# print(v)		#取值打印全部
		# val = "我叫小样"
		# i = 0
		# while i < len(val):
		#     print(val[i])
		#     i = i + 1
	切片
		#切片 5-9取第5-8个,5:后面没有
		# name = "我叫小龙,性别:男,今年19岁,我在说谎!"
		# print(name[0])
		# print(name[5:])
		# print(name[0::2])
		# print(name[-5:])
	列表:
		创建列表:a = ['xiaoyang','男','xiaolong',25]   #四个元素
				 ### a =list(['xiaoyang','男','xiaolong',25])
			in判断
				if 'xiao' in a[0]: 代表成功在第一个元素里面
			索引val = a[0]	
			长度len(a)
			追加元素a.append("yangyanlong")	
			插入a.inser(0,"牛")  #0代表索引的前面
			移除a.remove("xiaoyang")
				del a[o]   #根据索引删除
			修改:a[1] = "女"
			切片
			for循环 for item in a:
					print(item)     #输出四个元素
					berak         #输出一个元素
					contime      #输出四个元素
	字典操作
		创建字典  #	输出顺序是无序的
			v = {
				"name":"xiaolong",   #这一对叫键值对
				"password":"123456"
				}
		常用操作
			添加v["age"] = 19   #没有age新增,有的话就修改
			获取用户名 n = v["name"]  #  根据索引获取值
			删除del v["name"]
			for循环 for item in v.keys():
						print(item)
					for item in v.values():
						print(item)
					for item in v.items():
						 print(item)			


7:python运算符
	算数运算:
		+	#3+5=8
		-	#5-3=2
		*	#3*4=12
		%	#6%3余0
		/	#6%3=2
		**	#4**4=256
		//	#9//2取4
	比较运算只有两个结果正确true和错误false
		==		#1==2 返回false
		!=		#1!=2 返回true
		<>		#1,<>2	返回true
		>
		<
		<=
		>=
		if 1 > 1 or 1 == 1 and 1 == 4:
			print("正确")
		else:
			print("错误")  and和or没有优先级,从前往后看,有括号的先看括号里面的
	赋值运算
		=
		+=
		-=
		*=
		/=
		%=
		**=
		//=
	逻辑运算
		and
		or
		not
	成员运算
		in
			name = "我叫杨艳龙,今年18岁"
			if "18" in name:
				print("包括")
			else:
				print(name)#输出包括
		not in
						name = "我叫杨艳龙,今年18岁"
			if "18" in name:
				print("包括")
			else:
				print(name)输出#"我叫杨艳龙,今年18岁"	
7:pycharm
	1:文件编码(encoding——file encodings)
	2:文件目录(temp——file and code templates)
	3:文件大小(mouse——general)
	4:注释
		#单行注释
		“”“  ”“”多行注释
		选中后CREL+?批量注释
	5:.pyc文件表示编译完成的python字节码8:python变量
	1:数字(数据不能开头)
	2:字母
	3:不能为python内部关键字
	4:下划线
	5:可识别度高:userid=user_id

9:输入、输出
	两个等待输入的命令
		input(可见的输入内容)
		name = input("请输入姓名")
		import getpass(不可见得输入内容,pycharm不支持直接运行只能在终端运行)
		pwd = getpass.getpass("请输入密码")

10:条件语句
	if 1==2:    # if条件
		print("正确") # 成功走这里输出‘正确’
	else:
		print("错误")# 失败走这里输出‘错误’

	练习
	import getpass
	name = input("请输入姓名")
	pwd = getpass.getpass("请输入密码")
	if name == "小样" and pwd =="123":
		print("欢迎光临")
	else:
		print("请出去")

	应用
	user_name = input(">>>") # 请用户输入内容
	if user_name == ("xiaolong"):
		print("小龙")
	elif user_name == ("xiaoyang"):
		print("小样")
	elif user_name == ('xiaoyan'): # 三选一
		print("小燕")
	else:                          # 都不对输出再见 
		print("再见")
	print('and')

	# 嵌套条件语句
	user_type = input("请输入类型") 
	if user_type == "帅气":        
		user_name = input("请输入姓名")
		if user_name == "小龙":
			print("很好")
		else:
			print("不好")
	else:                       
		print("失败")

11:while循环语句(break跳出所有循环,continue不往下执行开始下一次循环)
	一直循环
	while True # 永远成立  True代表永远成立
		print(123)
		break   #跳出循环
	break  #  跳出全部循环

	练习
	while True: #永远成立
		user = input("请输入用户名")
		pwd =input("请输入密码")
		if user == "xiaolong" and pwd == "123":
			print("登陆成功")
			break#跳出本次循环
		else:
			print("用户名或密码错误,请想想在输入..")
	print("and")#最后打印and

	练习打印1,2,3,4,5,6,8,9,10
	i = 1
	while True:
		print(i)
		i = i+1
		if i == 11:
			break

	i = 1
	while True:
		if i == 7:
			pass
		else:
			print(i)
		i = i+1
		if i == 11:
			break

	i = 1
	while True:
		if i == 7:
			i = i+1
			continue #终止本次循环开始下一次循环,不往下执行了
		print(i)
		i = i+1
		if i == 11:
			break

	#计算1——100之内的和
	value = 0
	i = 1
	while i < 101:
		value = value + i
		i = i +1
	print(value)

	#计算1-100中的基数
	i = 1
	while i < 101:
		if i % 2 == 1:
			print(i)
		i = i+1	#计算1-100的偶数
	i = 1
	while i < 101:
		if i % 2 == 0:
			print(i)
		i = i+1

	value = 0
	i = 1
	while i < 100:
		if i % 2 == 1:
			value = value + i
		else:
			value = value - i
		i = i + 1
	print(value)


	#三次机会
	i = 0
	while i < 3:
		user = input(">>>")
		pwd = input(">>>")
		if user == "杨艳龙" and pwd == "123":
			print("登陆成功")
		else:
			print("登录名或密码错误请重试")
			i = i + 1
	#猜数字
	value = 7
	i = 0
	while i < 3:
		num = input("请输入数字")
		num = int(num)
		if value == num:
			print("拿钱来")
			break
		else:
			print("请重新输入数字")
			i = i + 1
	print("厉害")


	"""a.元素分类		有如下值集合
		v1 = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90],
		将所有大于
		66
		的值保存至字典的第一个key中,将小于
		66
		的值保存至第二个key的值中。
		即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}		v2 = {'k1': [], 'k2': []}
		"""
		# a = [11,22,33,44,55,66,77,88,99]
		# list1 = []
		# list2 = []
		# for item in a:
		#     #print(item)
		#     if item < 66:
		#         list1.append(item)
		#     else:
		#         list2.append(item)
		# #print(list1,list2)
		# dict = {
		#     "k1":"",
		#     "k2":""
		# }
		# dict["k1"] = list1
		# dict["k2"] = list2
		# print(dict)		# """
		# c.用户交互,显示省市县三级联动的选择
		# dic = {
		#     "河北": {
		#         "石家庄": ["鹿泉", "藁城", "元氏"],
		#         "邯郸": ["永年", "涉县", "磁县"],
		#     }
		#     "河南": {
		#         ...
		#     }
		#     "山西": {
		#         ...
		#     }
		# }
		#
		# for v in dic.keys():
		#     print(v)
		# inp = input('>>>')
		# dic[inp]
		# """
		#
		# dic = {
		#     "河北": {
		#         "石家庄": ["鹿泉", "藁城", "元氏"],
		#         "邯郸": ["永年", "涉县", "磁县"],
		#     },
		#     "河南": {
		#         "郑州": ["郑州县1","郑州县2","郑州县3"],
		#         "郑州2": ["郑州县11","郑州县22","郑州县33"],
		#     },
		#     "山西": {
		#         "太原": ["太原1","太原2","太原3"],
		#         "太原1": ["太原11", "太原22", "太原33"]
		#     }
		# }
		# for province in dic.keys():
		#     print(province)
		# b = True
		# while b:
		#     test = input("请输入省份")
		#     if test in dic.keys():
		#         for city in dic[test].keys():
		#             print(city)
		#             b = False
		#     else:
		#         print("请重新输入省份")
		# c = True
		# while c:
		#     txt = input("请输入市区")
		#     if txt in dic[test].keys():
		#         for county in dic[test][txt]:
		#             print(county)
		#             c = False
		#     else:
		#         print("请重新输入市区")
		# print("查询结束")		a1 = open("DB.txt","r")
		data = a1.read()
		a1.close()
		#print(data)
		db_list = []
		line = data.split('\n')
		for item1 in line :
			v = {}
			#print(item1)
			temp = item1.split("|")
			#print(temp)
			v['username'] = temp[0]
			v['password'] = temp[1]
			v['times'] = temp[2]
			db_list.append(v)
			#print(v)
		   # print(db_list)
		print(db_list)		#登录
		state_login = 3
		while state_login > 0 :
			name = input("请输入用户名:")
			pwd = input("请输入密码:")
			for item in db_list :
				if name == item['username'] :
					if int(item['times']) > 0 :
						if pwd == item['password'] :
							print("登录成功,欢迎您!")
							item['times']=3
							state_login = 0
							break
						else:
							state_login -= 1
							if state_login == 0:
								print("尝试次数超限,登录失败")
							else:
								print("输入有误!,请重新输入")							item['times']=int(item['times'])-1
							break
					else:
						print("用户已被锁定!")
						state_login = 0
						break
			else :
				state_login -= 1
				if state_login == 0 :
					print("尝试次数超限,登录失败")
				else:
					print("输入有误,请重新输入")
		#print(db_list)
		#变成字符串
		line =''
		i = 1
		for item2 in db_list :
			if i<db_list.__len__():
				line = line+item2['username']+'|'+item2['password']+'|'+str(item2['times'])+'\n'
				i=i+1
			else :
				line =line+item2['username']+'|'+item2['password']+'|'+str(item2['times'])
		m ="zhi:%r"
		print(m %(line))
		#写入文件
		f2 = open("db.txt",'w')
		f2.write(line)
		f2.close()