Python的解释器

  • cpython官方标准。动态的,边执行,边解释。
  • ipython
  • jpython,他是一种完整的语言,他是一个Python语言在Java中的完全实现。
  • PYPY ,他是用Python写的解释器,速度比cpychon快。
  • ironpython 注意:在一般编程过程中,大写代表常量,而小写则代表变量
x = 2
y = 3
z = x 
x =5
结果:x = 5,z = 2

Python中的数据类型

网址:http://www.yiibai.com/python/python_basic_operators.html

这里写图片描述

字符编码(默认是ascall存)

Python中使用的是Unicode字符,在Python中ord()可以查看ascall值。 在存储字符的过程中,默认是使用ascall进行存储字符,如果这样写就是使用Unicode进行存储。

>>> a = u'lala'
>>> type(a)
<type 'unicode'>

>>> name =”飞天”
>>> print name 
飞天
>>> name
'\xe9\xa3\x9e\xe5\xa4\xa9’   
#这是utf-8(ascall是utf-8的一个子集),他灵活存储汉字和字母,当你是汉字的时候,使用3个字节,如果是英文就用一个字节。\xe9\xa3\x9e这就是飞字。存储在内存的过程是使用Unicode,因为不能同时使用两种字符集。在硬盘中存储是使用硬盘中,就是使用utf-8,因为能节省空间Unicode不管是汉字还是字母都是使用2个字节。

在Unicode转化成utf-8中间需要一个转换过程,转换过程就如下

name = u“飞天”
name.encode(‘utf-8’)  #转化成utf-8
#解开
b =name.encode(‘utf-8’)  #这是一个将他转化成字符串类型的
name.decode(‘utf-8’) #重新转化成Unicode

支持中文,在代码首页加入:* coding:utf-8 *#有四种方式,详见博客。

导入模块

有好几种方式:

  • import sys 这样调用的话,就是要加上你模块的名称例如:sys.argv.
  • from sys import argv 这样就直接 argv进行调用
  • import multiprocessing as multi 将模块取一个别名,用来代替繁琐的模块名称
  • form sys import * #不建议使用 把这个模块所有的方法都导进来,也是直接使用

流程控制

  • if … elif …else #永远只有一个结果
  • for i in range(1,100).
  • while …else

练习

#猜年龄
name = raw_input("Please input  your name:")
info = 'This is var will be print out'
age = input("Age:")
job = raw_input("Job:")
real_age = 29
for i in range(1,10):
    if age > 29:
        print "think smaller!"
    elif age == 29:
        print '\033[32;1mGOOD! 10RMB!\033[0m'
    else:
        print "think bigger"
    print"you still get %s shots" %(10-i)
    age = input("Age:")
lala =  """
   Name:%s
    Age:%s
    Job:%s
"""%(name,age,job)
print "-----------------"
#输出你想打印的数值
count = 0
print_num = input("which loop do you want to be print out ?")
while count < 10000:
    if  count == print_num:
        choice = raw_input("Do you want to continue the Loop?(y/n)")
        if choice == "n":
            break
        else :
#这里使用一个while循环也可以。
#while print_num <= count
    #	print_num = input("which loop do you want to be print out ?")
#	print print "%d已经过了,sx" %(count)
       print_num = input("which loop do you want to be print out ?")
           if print_num < count:
               print "%d已经过了,sx" %( print_num)
               print_num = count

    else :
        count +=1
        print 'Loop',count
else:
    print "Loop",count

作业

编写登录接口

  • 输入密码和用户名
  • 认证成功后显示欢迎信息
  • 认错三次后锁定
	#代码
	import  sys
	retry_limit = 3
	retry_count = 0
	account_file = "accounts.txt"
	lock_file = "account_lock.txt"
	while retry_count < retry_limit:  #只要不超过3次及不断循环
			username = raw_input("\033[32;1mUsername:\033[0m")
			lock_check = file(lock_file,)
			#当用户输入用户名后,打开LOCK文件以检查此用户已经LOCK
			for line in lock_check.readlines():
					line = line.split()
					if username == line[0]:
							sys.exit('033[31!1mUsername %s os locked!\033[0m' %username)
			password = raw_input('\033[32;1mPassword:\033[0m')
			f = file (account_file,'rb')
			match_flag =False
			for line in f.readlines():
					user,passwd = line.strip('\n').split()
					#去掉每行多余的,并把这一行按空格分成两列,分别赋值user,passwd两个变量
					if username == user and passwd == password:
							print "Match!",username
							match_flag = True
							break
			f.close()
			if match_flag == False:
					print  "usrname"
					retry_count +=1
			else :
					print "welcome log the system!"
	else:
			print "your account is locked!"