Python学习day_01

day 1

Python开始

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!"
发布了32 篇原创文章 · 获赞 2 · 访问量 8438
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章