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!"
相关文章
相关标签/搜索