python入门
第一章
1.python简介
2.python安装、配置
3.HelloWorld仪式感爆棚
4.python解释器
5.字符编码和解码
6.变量
7.判断之if....else...
8.Python循环之for、while循环
♣python简介
1989年,世界上的两件大事,python诞生了,我也来到这个世界上,Guido创造了python,.....2005年,Guido加入了Google,python在google内部得到了广泛的应用,这些年推出了N个版本,2009年,Alex接触到了python(或者更早),这个世界上就酝酿着一个大师级别的人物,Alex...,到2015年,最流行的工业版本是2.7,python为什么这么火?它为什么就这么火?
1.python语言优雅、易读
2.可移植性强
3.可扩展性
4.开发效率高
5.可嵌入的高级语言
它毕竟就是一盘大萝卜.....
1.代码不能加密
2.线程不能利用多cpu
3.运行速度慢
♣python安装、配置
python安装不细说,网上有不同的版本,安装较简单。
python需要配置环境变量,把python的安装目录放到环境变量的Path变量里即可Path=...;D:\Python27;-Soeasy
♣HelloWorld仪式感爆棚
print("Hello World")
♣python解释器
python解释器包括CPython、IPython、PYPY.....,它们是干什么的呢?我们在写python脚本时,保存的是以后缀.py结尾的文本文件,想要它运行,就必须依靠python解释器来解释,python是边解释边执行的语言,所以相对于其他编译型语言较慢,并非绝对....
♣字符编码
电脑的起源,刚开始只是和电路一样只有断开和接通,即只能是简单的识别0和1,0和1,不同的交叉组合,可以代替大量的数字,仅仅能表达数字并非计算机的目的,为了支持字母,程序员设计出了一套用数字替代字母或符号的对照表,称之为ASCII码:
最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号,1-127被字母占用,其他位可以代替中文,还有其他语言也占用。
为了支持中文,于是程序员又发明了一个码表:GB2312,支持了大量的中文,但是还是不能表示一些信息,后来又有了GBK支持了图形符号,2000年,gb18030诞生了,支持了其他少数民族文字藏文、蒙文,维吾尔文字等
各国之间都有自己的编码规则,这样不便于操作和管理,为了统一,美国制定了一套大多数国家语言支持的完整的统一的字符编码:Unicode,规定了每个字符有16位来表示,即2个字节,但是还是有一定的局限性。UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
以下代码报错,(默认ASCII不支持中文)
1 #!/user/bin/env python 2 3 print("大家一起来happy!")
看看这个:
1 #! /user/bin/env python 2 #_-_coding:UTF-8_-_ #设置了字符编码 3 print("大家一起来happy!")
♣变量
变量就相当于生活中的菜篮子,但是每个篮子中存放的是一种菜,计算机中,变量是存储数据的量,以便于数据的使用、操作,python中在使用变量时,不必先声明类型,可以直接存放数据,这就是动态语言,态类型语言是指在运行期间才去做数据类型检查的语言
举例:
python: name="Bernie"
java: string name= "Bernie"
python是强制类型语言,意思是,一旦被指定了一种数据类型,不经过强制转换,它永远就是这个数据类型了。下面引用定义:
动态语言和静态语言
通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远 也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的 各种脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
强类型定义语言和弱类型定义语言
(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
♣if...else:判断,直接上代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # Author:chen 2 #_-_coding:UTF-8_-_ 3 name="chen" 4 age="19" 5 job="IT" 6 7 name=input("my name=")#python3X版本,在2X版本中用raw_input(),而2x版本中的input(),需要先定义变量,否自报错 8 age=input("my age=") 9 job=input("my job=") 10 msg='''==============info of {iname}=================== 11 name={iname} 12 age={iage} 13 job={ijob} 14 '''.format(iname=name,iage=age,ijob=job)#多行注释+格式化输出 15 print(msg) 16 17 msg2='''+++++++++++++++++info of %s++++++++++++++++++++ 18 name=%s 19 age=%s 20 job=%s 21 ''' % (name,name,age,job) 22 print(msg2) 23 msg3='''****************info of {0}******************** 24 name={0} 25 age={1} 26 job ={2} 27 '''.format(name,age,job) 28 print(msg3) 29 #多行注释可以是”“....”“”或‘’‘........’‘’ 30 #常用的格式化输出的三种方式~
♣for、while循环经典案例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # Author:chen 2 #_-_coding:utf-8_-_ 3 myname="chenxuetao" 4 myage="15" 5 6 count=0 7 while count<3 : #注意True首字母要大写,不知道为什么? 8 age = input("age=") 9 if myage>age : 10 print("你猜的年龄小了") 11 elif myage<age : 12 print("你猜的年纪大了") 13 else : 14 print("你猜对了") 15 break 16 count+=1
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # Author:chen 2 # #_-_codingutf-8_-_ 3 myname="chenxuetao" 4 myage=15 5 count=0 6 while count<3 : #注意True首字母要大写,不知道为什么? 7 age = int(input("age=")) 8 if myage>age : 9 print("你猜的年龄小了") 10 elif myage<age : 11 print("你猜的年纪大了") 12 else : 13 print("你猜对了") 14 break 15 count+=1 16 if count == 3: 17 guess=input("你还想继续猜测么?") 18 if guess !="n" : 19 count=0
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # Author:chen 2 # #_-_coding:utf-8_-_ 3 myname="chenxuetao" 4 myage=15 5 count=0 6 for i in range (1,3): #注意True首字母要大写,不知道为什么? 7 age = int(input("age=")) 8 if myage>age : 9 print("你猜的年龄小了") 10 elif myage<age : 11 print("你猜的年纪大了") 12 else : 13 print("你猜对了") 14 break
--while循环时,循环条件要满足才进行循环,当不满足条件时,退出循环,执行下边的代码。
格式是:while True : #True首字母要大写
--for循环,同样的在循环条件满足时执行循环体,for i in range(1,10) :
--当循环条件不满足时,循环跳出
--break,跳出当前执行的语句,可以结束循环,跳出循环,continue,当条件不满足,结束本次循环,执行下一次循环
♣简单的登录接口实现(优化中...)
文件:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
zhao 111 qian 111 sun 111 li 111 zhou 222 wu 222 zheng 222 wang 222
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
zhao
zhou
wu
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 1 #! /user/bin/evn python 2 2 #_-_coding: utf-8_-_ 3 3 import os,getpass,sys 4 4 5 5 lock_add=0 #记录密码输入次数 6 6 acount_lock=0 # 7 7 8 8 lock_file='lock.txt' 9 9 acount_file='acount.txt' 10 10 while acount_lock<3 : 11 11 username=input("用户名:").strip() #接收用户输入,去掉输入空格 12 12 lock_add+=1 13 13 lock_check=open(lock_file) 14 14 for line in lock_check.readlines() : 15 15 if username ==line.strip() : 16 16 print("您的用户被锁定,请联系管理员") 17 17 sys.exit() 18 18 password=input("密码:").strip() 19 19 flag=False 20 20 acount=open(acount_file) 21 21 for line in acount.readlines() : 22 22 name,passwd=line.strip("\n").split() 23 23 if name==username and passwd==password : 24 24 print("欢迎 %s 登陆成功" % name) 25 25 flag=True 26 26 sys.exit() 27 27 acount_lock+=1 28 28 if acount_lock==3 : 29 29 print("您的用户被锁定,请联系管理员") 30 30 rm=open(lock_file,'a') 31 31 rm.write(username) 32 32 rm.write("\n") 33 33 rm.close()
Version2.0
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #! /user/bin/env python 2 #_-_coding:UTF-8_-_ 3 #Author:Bernie Chen 4 import os,sys,getpass 5 user_file='acount.txt' 6 lock_file='lock.txt' 7 try_time=0 8 try_limite=3 9 count=0 10 flag=False 11 while try_time<try_limite: 12 Username=raw_input("账户:") # 用户输入登录账号 13 Password=raw_input("密码:") # 用户输入登录密码 14 Name=open(user_file) # 通过参数调用打开正常用户文件 15 Lock=open(lock_file) # 通过参数调用打开锁定用户文件 16 for lock in Lock.readlines(): # 循环锁定用户文件。readlines()是一次性读取所有行 17 usename=lock.strip("\n") # 去掉多余的换行,精确取出用户名 18 if usename==Username : 19 print("您的用户被锁定") 20 try_time += 100 #此处是随意加了个值,如果满足则跳出循环 21 break 22 sys.exit(0) 23 if try_time<50: 24 for name in Name.readlines() : #循环锁定用户文件。readlines()是一次性读取所有行,别用成readline() 25 username,password=name.strip('\n').split() #将用户名和密码分别赋值,split()是分割,此处是以空格分割,去掉多余换行 26 if username==Username and Password==password : 27 print("用户登陆成功") 28 try_time += 100 29 flag=True 30 break 31 sys.exit(0) 32 elif username!=Username: 33 count+=1 #每当用户名取不到相同,count就增加 34 #print(count) 35 if count == len(open(user_file,'rU').readlines()): #判断conut的值是否和文件的行数相同,如果相同,说明该用户未注册 36 print("您的账户未注册,请注册后登录") 37 sys.exit(1) 38 if flag==False: 39 print("用户名或密码错误,您还有%d次机会" % int(2-try_time)) 40 try_time+=1 41 if try_time==3: 42 print("用户已被锁定") 43 locker=open(lock_file,"a") 44 locker.write(Username) 45 locker.write("\n") 46 locker.close()