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:判断,直接上代码

 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 #常用的格式化输出的三种方式~
View Code

 ♣for、while循环经典案例

 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
View Code
 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
View Code
 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
View Code

  --while循环时,循环条件要满足才进行循环,当不满足条件时,退出循环,执行下边的代码。

  格式是:while  True : #True首字母要大写

  --for循环,同样的在循环条件满足时执行循环体,for i in range(1,10) :

  --当循环条件不满足时,循环跳出

  --break,跳出当前执行的语句,可以结束循环,跳出循环,continue,当条件不满足,结束本次循环,执行下一次循环

♣简单的登录接口实现(优化中...)

文件:

zhao 111
qian 111
sun 111
li 111
zhou 222
wu 222
zheng 222
wang 222
acount.txt
zhao
zhou
wu
lock.txt
 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()
View Code

 Version2.0

 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()
View Code

 

posted @ 2016-07-25 09:35  太傅  阅读(215)  评论(0编辑  收藏  举报