zoukankan      html  css  js  c++  java
  • python3学习笔记----基础知识1

    1. 第一个程序hello world:
       #!/usr/bin/env python3        #非指定
       #!/usr/bin/python            #指定的方法
       print("hello world!")
    2. 变量:
       定义:变量就是用来存储数据,方便程序调用;
       name = 'Brace Li'
       name2 = name
       print("My name is ", name, name2)
       name = "Lucy chen"
       print(name, name2)
       输出:
       My name is  Brace Li Brace Li
       Lucy chen Brace Li
     
       变量的定义规则:
       1. 变量名智能是字母,数字或下划线的任意组合;
       2. 变量的第一个字符不能是数字;
       3. 以下关键字不能声明为变量名;
        ['and','as','break'.......]
     
       变量名要有特别的意义, 尽量为英语单词,可提高读性:
       例如:
         name
         age
         gender
         wife_of_brace
     
       常量:永远不改变的 例如:圆周率
       python 不支持常量。
       在python中要定义常量,用全大写。例如:PIE=3.14
     
    3. 字符编码:
       计算机底层就是电路,只认识0和1,表示通电和断电的2种状态;
       早期的字符编码:ASCII,美国标准信息交换代码,是基于拉丁字母的一套电脑编码系统
       一个字符只能用1个字节8位来表示,即最多只能表示2**8-1=256-1个字符
       ASSCII码(只用了127个,0-127),其最多只能表示255个符号。128-255是预留的。
     
       关于中文:
       GB2312 共收录了7445个字符,支持汉字太少;
       GBK1.0收录了21886个汉字
       GB18030取代了GBK1.0, 收录了27000多个汉字
     
       国际ISO,兼容所有国家的语言:Unicode
       统一码,万国码
       缺点占用空间太大。
       一个字符统一占2个字节,16位,对于英文字符存储空间是ASCII的2倍
     
       UTF-8:支持Unicode可变长的
       存一个中文需要3个字节。
       存一个英文需要1个字节。
     
       字节(bytes)=8 位bit
     
       python3 默认是UTF-8字符
       python2 默认是ASCII字符
     
       在python2中显示中文需要指定解释器的编码
       # -*- coding:utf-8 _*_               #告诉解释器使用utf-8编码
     
     
    4. 程序的注释:
      单行注释:  #
      多行注释: 三个单引号或三个双引号开始和三个单引号或三个双引号结束;
       """
         hello,brace
       """

      三个单引号或三个双引号开始和结束,也可以表示打印信息;
     help_info = """
       usage:
          1.  xxxx;
          2. xxxx;
       """
     print(help_info)
     
    5. 用户输入:
       username = input("user name:")
       password = input("password:")                   #明文输入;
       print(username, password)
      
      函数 input  表示的输入: 
        在python2中raw_input 和python3中的input功能一样。
        python3中已经没有raw_input
     
      密文输入用户密码:
       需要导入一个标准库: getpass
     
       import getpass
       password = getpass.getpass("password:")
       print(password)
       注意:这个库在pycharm中不好使;
     
     
    6. 格式化输出
      格式化输出1:
         name = "brace"
         age = 22
         gender = "male"
         job = "IT"
         salary = 10000
         info = """
           ====== info of %s==========
           Name:%s
           Age:%d
           Gender:%s
           Job:%s
           Salary:%d
         """ %(name,name,age,gender,job,salary)
         print(info)
       输出:
         ====== info of brace==========
         Name:brace
         Age:22
         Gender:male
         Job:IT
         Salary:10000
     
     格式化输出2:
       info = """
         ====== info of {_name}==========
         Name:{_name}
         Age:{_age}
         Gender:{_gender}
         Job:{_job}
         Salary:{_salary}
       """ .format(_name=name,_age=age,_gender=gender,_job=job,_salary=salary)
       print(info)
     
       输出:
       ====== info of brace==========
       Name:brace
       Age:22
       Gender:male
       Job:IT
       Salary:10000
     
     
     格式化输出3:
       info = """
         ====== info of {0}==========
         Name:{0}
         Age:{1}
         Gender:{2}
         Job:{3}
         Salary:{4}
       """ .format(name,age,gender,job,salary)
       print(info)
     
       输出:
       ====== info of brace==========
        Name:brace
        Age:22
        Gender:male
        Job:IT
        Salary:10000 
      7. 数据类型:
       %s  :表示字符类型
       %d  :表示整数类型
       %f  : 表示浮点类型
     
       打印数据变量类型:
       print(type(变量))
     
       print(type(name))
       print(type(age))
       print(type(str(age)))
       print(type(int(str(age))))
     
       输出:
       <class 'str'>
       <class 'int'>
       <class 'str'>
       <class 'int'>
     
        str()  :强行转化为字符类型;
        int()  :强行转化为数字类型。

    8. 循环判断语句:
       例一 if....else :
       username = input("name:")
       password = input("password:")
       _username = 'brace'
       _password = '123'
       if username == _username and password == _password:
          print("Welcome user {name} login ..." .format(name=username))
       else:
          print("Invalid username and password")
     
       例二 if...elif...else:
       age_of_brace = 30
       guess_age = int(input("guess brace's age:"))
       if guess_age == age_of_brace :
          print("yes, you got it")
       elif guess_age < age_of_brace :
          print("think smaller")
       else:
          print("think bigger!")
      
       例三  while 循环  while...else:
       age_of_brace = 30
       count = 0
       while count < 3:
          print("count:", count)
          guess_age = int(input("guess brace's age:"))
          count += 1
          if guess_age == age_of_brace :
             print("yes, you got it")
             break
          elif guess_age < age_of_brace :
             print("think smaller")
          else:
             print("think bigger!")
       else:
          print("input error more than 3 times,  exiting....")
      
       例四:for 循环 for...else:
       for i in range(10):
         print(i)
     
       for n in range(0,10,2):
          print(n)
      备注:  
       range(0,10,2)
       0     起始
       10   个数
       2    步长
     
       age_of_brace = 30
       count = 0
       for count in range(3):
          print("count:", count+1)
          guess_age = int(input("guess brace's age:"))
          if guess_age == age_of_brace :
             print("yes, you got it")
             break
          elif guess_age < age_of_brace :
             print("think smaller")
          else:
             print("think bigger!")
       else:
          print("input error more than 3 times,  exiting....")
      
      
       break  跳出循序;
       continue 继续执行新的循序
     
     9. 判断变量是否为空的写法:
       第一种:if X is None;
       第二种:if not X;
            当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这些时,
            not X为真,即无法分辨出他们之间的不同。
       第三种:if not X is None;
     
    10. 控制台输出带颜色的文字方法
       
      格式:33[显示方式;前景色;背景色m    
     
       说明:
       前景色        背景色         颜色
       ---------------------------------------
       30                40              黑色
       31                41              红色
       32                42              绿色
       33                43              黃色
       34                44              蓝色
       35                45              紫红色
       36                46              青蓝色
       37                47              白色
       
      显示方式           意义
       -------------------------
       0                终端默认设置
       1                高亮显示
       4                使用下划线
       5                闪烁
       7                反白显示
       8                不可见
     
       例子:
       33[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
       33[0m          <!--采用终端默认设置,即取消颜色设置-->

       print("33[1;31;47m Error: Password is Null! 33[0m")
     
     
    11.   eval函数就是实现list、dict、tuple与str之间的转化
       str函数把list,dict,tuple转为为字符串
     
       # 字符串转换成列表
       a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
       print(type(a))
       b = eval(a)
       print(b)
     
       # 字符串转换成字典
       a = "{1: 'a', 2: 'b'}"
       print(type(a))
       b = eval(a)
       print(type(b))
       print(b)

    作业:
     1. 编写登陆接口;
         输入用户的密码;
         认证成功后显示欢迎信息
         输错三次后锁定(文件存储,锁定用户名)
       
     2. 多级菜单:
         三级菜单(省市县)
         可依次选择进入各子菜单(能返回)
         所需要新知识点,列表,字典
     
     
     
     
     
     


    作业:
      编写登陆接口;
       输入用户的密码;
       认证成功后显示欢迎信息
       输错三次后锁定(文件存储,锁定用户名) 
     database.conf 格式:
      {'brace': {'passwd': '12345', 'status': False}, 'lucy': {'passwd': '12345', 'status': 'True'}, 'kitty': {'passwd': '12345', 'status': 'True'}, 'jacky': {'passwd': '12345', 'status': 'True'}}
     
    程序:
    # Author:Brace Li
    import getpass

    sys_info = """
    ============================================================
    =                         登录系统                           =
    =                          V 1.00                                   =
    ============================================================
    """
    print(sys_info)
    count = 1
    # read data from database.conf
    with open('database.conf', 'r') as fs:
        data = eval(fs.read())
    while count < 4:
        # input user name and password and keep them not null
        while True:
            user_name = input("Username:").strip()
            if user_name:
                break
            else:
                print("33[1;31;47m Error: User Name is Null! 33[0m")
        while True:
            user_pwd = getpass.getpass("Password:").strip()
            if user_pwd:
                break
            else:
                print("33[1;31;47m Error: Password is Null! 33[0m")
        # check user name and password
        if user_name in data.keys():
            count += 1
            if data[user_name]["passwd"] == user_pwd:
                if not data[user_name]["status"]:
                    print("Error: The {_username} locked,pls contact with IT, Bye!!!".format(_username=user_name))
                    exit()
                login_info = """
                ============================================================
                欢迎{_username}进入登录系统
                状态:{_status}
                ============================================================
                =                          V 1.00                          =
                ============================================================
                1. 退出, 2. 注销
                ============================================================
                """ .format(_username=user_name, _status=data[user_name]["status"])
                print(login_info)
                while True:
                    action_input = input("pls input >>").strip()
                    if action_input.isdigit():
                        if int(action_input) in (1, 2):
                            if int(action_input) == 1:
                                exit()
                            if int(action_input) == 2:
                                break
                    print("Error: Invalid input !")
            if count > 3:
                print(data[user_name]["status"])
                data[user_name]["status"] = False
                with open('database.conf', 'w') as fs:
                    fs.write(str(data))
                print("Error: {_username} had try more than 3 times, {_username} had been locked,system exiting !" .format(_username=user_name))
                exit()
        print("Error: User name or Password not match !")
     
     
     
  • 相关阅读:
    Metroid Prime (Wii) Chs 20100120
    刀削面
    胶水帝
    一种新思维,一个新起点
    MP+
    涂鸦
    Metroid Prime (Wii) Chs 20100117
    Cypress 68013 and UMDF
    Metroid Prime Chs 20091010
    process VS thread
  • 原文地址:https://www.cnblogs.com/brace2011/p/9097025.html
Copyright © 2011-2022 走看看