编程语言
      高级
      低级

   Python种类
      JavaPython
      cPython    *****
      pypy

      字节码 和 机器码

   Python程序:
      1. 
         终端:
            C:\python35\python.exe D:\1.py
         解释器:
            C:\python35\python.exe 

      2. 文件形
         #/usr/bin/u/ubv/a python

         python 1.py

         ./1.py      加权限

      3. 编码
         #/usr/bin/u/ubv/a python
         # -*- coding:utf-8 -*-
         补充:

         字节,位
         unicode   utf8   gbk
         utf8: 3
         gbk : 2
字符编码 ASSIC码

     支持中文的第一张表就叫 GB2312 

     1980 gb2312 6700+
     1995 gbk1.0 20000
     2000 gb18030 27000 
     big5 台湾

     unicode 万国码  支持所有国家和地区的编码 
     2**16 = 65535 = 存一个字符 统一占用2个字节


     UTF-8 = unicode 的扩展集,可变长的字符编码集

     Assic -->Gb2312 ->gbk1.0-->gb18030 
     Assic -->unicode -->utf-8   /utf-16 


     Python2.x == Assic 默认编码
     #!-*- coding:utf-8 -*- 
      #coding:utf-8 

     python3.x == unicode默认编码 
     unicode 是向下兼容
4. print("sdf")

      5. inp = input('>>>')

         PS:
            >>> hello
            inp = "hello"


            >>> 10
            inp = "10"

            # 如果将字符串转换成数字     new_inp = int(inp)

            inp * 10 =????? 


      6. 变量名

         字母
         数字
         下划线

         要求:
            不能数字开头
            不能使用关键字
            建议不要用python内置的。。。。

      7. 条件语句
         1. 基本
         2. 嵌套
         3. if   elif   else ...

      8. while循环
         while 条件:
            ....

         print('...')

         补充:
            a. while else
            b. continue   break
               continue ,终止当前循环,开始下一次循环
               break    ,终止所有循环
       9.注释
单行注释 用#
        多行注释用三个单引号或三个双引号 '''被注释的内容'''
用户登陆(三次机会重试)
      count = 0
      while count < 3:
         user = input('>>>')
         pwd = input('>>>')
         if user == 'xxx' and pwd == '123':
            print('欢迎登陆')
            print('..........')
            break
         else:
            print('用户名或者密码错误')
         count = count + 1


   python开发IDE: pycharm、eclipse

   # 专业版
   # 不要汉化

   1、运算符
      结果是值
         算数运算
            a = 10 * 10
         赋值运算
            a = a + 1    a+=1

      结果是布尔值
         比较运算
            a = 1 > 5
         逻辑运算
            a = 1>6 or 1==1
         成员运算
            a = "蚊" in "郑建文"

   2、基本数据类型


      数字  int ,所有的功能,都放在int里
         a1 = 123
         a1 = 456

         - int
            将字符串转换为数字
               a = "123"
               print(type(a),a)

               b = int(a)
               print(type(b),b)

               num = "0011" 
               v = int(num, base=16)
               print(v)
         - bit_lenght
               # 当前数字的二进制,至少用n位表示
               r = age.bit_length()

      字符串  str
               ###########################################

               # 1 首字母大写
                  # test = "xxx"
                  # v = test.capitalize()
                  # print(v)

               # 2 所有变小写,casefold更牛逼,很多未知的对相应变小写
                  # v1 = test.casefold()
                  # print(v1)
                  # v2 = test.lower()
                  # print(v2)

               # 3 设置宽度,并将内容居中
                  # 20 代指总长度
                  # *  空白未知填充,一个字符,可有可无
                  # v = test.center(20,"中")
                  # print(v)

                        # 并将内容左对齐
                  # test = "xxx"
                  # v = test.ljust(20,"*")
                  # print(v)
                        #并将内容右对齐
                  # test = "xxx"
                  # v = test.rjust(20,"*")
                  # print(v)

                        #并将内容右对齐,不能指定字符默认0
                  # test = "xxx"
                  # v = test.zfill(20)
                  # print(v)


               # 4 去字符串中寻找,寻找子序列的出现次数
                  # test = "xxxxxxr"
                  # v = test.count('ex')
                  # print(v)

                  # test = "xxxxxxr"
                  # v = test.count('ex',5,6)
                  # print(v)

               # 5
                  # 以什么什么结尾
                  # 以什么什么开始
                  # test = "xxx"
                  # v = test.endswith('ex')
                  # v = test.startswith('ex')
                  # print(v)

               # 6 expandtabs,断句20,
                  # test = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
                  # v = test.expandtabs(20)
                  # print(v)

               # 7 从开始往后找,找到第一个之后,获取其位置
                  # > 或 >=
                  # test = "xxxxxx"
                  # 未找到 -1
                  # v = test.find('ex')
                  # print(v)

               # 8 index找不到,报错   忽略
                  # test = "xxxxxx"
                  # v = test.index('8')
                  # print(v)


               # 9 格式化,将一个字符串中的占位符替换为指定的值
                  # test = 'i am {name}, age {a}'
                  # print(test)
                  # v = test.format(name='xxx',a=19)
                  # print(v)

                  # test = 'i am {0}, age {1}'
                  # print(test)
                  # v = test.format('xxx',19)
                  # print(v)

               # 10 格式化,传入的值 {"name": 'xxx', "a": 19}
                  # test = 'i am {name}, age {a}'
                  # v1 = test.format(name='df',a=10)
                  # v2 = test.format_map({"name": 'xxx', "a": 19})

               # 11 字符串中是否只包含 字母和数字
                  # test = "123"
                  # v = test.isalnum()
                  # print(v)
                  # str

               # 12 是否是字母,汉字
                  # test = "as2df"
                  # v = test.isalpha()
                  # print(v)

               # 13 当前输入是否是数字
                  # test = "二" 1,②
                  # v1 = test.isdecimal()
                  # v2 = test.isdigit()
                  # v3 = test.isnumeric()
                  # print(v1,v2,v3)


               # 14 是否存在不可显示的字符
                  # \t   制表符
                  # \n   换行
                  # test = "oiuas\tdfkj"
                  # v = test.isprintable()
                  # print(v)

               # 15 判断是否全部是空格
                  # test = ""
                  # v = test.isspace()
                  # print(v)

               # 16 判断是否是标题
                  # test = "Return True if all cased characters in S are uppercase and there is"
                  # v1 = test.istitle()
                  # print(v1)
                  # v2 = test.title()
                  # print(v2)
                  # v3 = v2.istitle()
                  # print(v3)

               # 17 ***** 将字符串中的每一个元素按照指定分隔符进行拼接
                  # test = "你是风儿我是沙"
                  # print(test)
                  # # t = ' '
                  # v = "_".join(test)
                  # print(v)

               # 18 判断是否全部是大小写 和 转换为大小写
                  # test = "xxx"
                  # v1 = test.islower()
                  # v2 = test.lower()
                  # print(v1, v2)

                  # v1 = test.isupper()
                  # v2 = test.upper()
                  # print(v1,v2)
               # 19
                  # 移除指定字符串
                  # 有限最多匹配
                  # test = "xa"
                  # # v = test.lstrip('xa')
                  # v = test.rstrip('9lexxexa')
                  # # v = test.strip('xa')
                  # print(v)

                  # test.lstrip()
                  # test.rstrip()
                  # test.strip()
                  # 去除左右空白
                  # v = test.lstrip()
                  # v = test.rstrip()
                  # v = test.strip()
                  # print(v)
                  # print(test)
                  # 去除\t \n
                  # v = test.lstrip()
                  # v = test.rstrip()
                  # v = test.strip()
                  # print(v)

               # 20 对应关系替换
                  # test =  "aeiou"
                  # test1 = "12345"

                  # v = "asidufkasd;fiuadkf;adfkjalsdjf"
                  # m = str.maketrans("aeiou", "12345")
                  # new_v = v.translate(m)
                  # print(new_v)

               # 21 分割为三部分
                  # test = "testasdsddfg"
                  # v = test.partition('s')
                  # print(v)
                  # v = test.rpartition('s')
                  # print(v)

               # 22 分割为指定个数
                  # v = test.split('s',2)
                  # print(v)
                  # test.rsplit()


               # 23 分割,只能根据,true,false:是否保留换行符
                  # test = "asdfadfasdf\nasdfasdf\nadfasdf"
                  # v = test.splitlines(False)
                  # print(v)

               #  24 以xxx开头,以xx结尾
                  # test = "backend 1.1.1.1"
                  # v = test.startswith('a')
                  # print(v)
                  # test.endswith('a)

               # 25 大小写转换
                  # test = "xxx"
                  # v = test.swapcase()
                  # print(v)

               # 26 字母,数字,下划线 : 标识符 def  class,断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法
                  # a = "def"
                  # v = a.isidentifier()
                  # print(v)


               # 27 将指定字符串替换为指定字符串
                  # test = "xxxxxxxxx"
                  # v = test.replace("ex",'bbb')
                  # print(v)
                  # v = test.replace("ex",'bbb',2)
                  # print(v)
               ###################### 7个基本魔法 ######################
               # join       # '_'.join("asdfasdf")
               # split      # 按照指定的字符进行分割
               # find       # 从开始往后找,找到第一个之后,获取其位置
               # strip      # 移除指定字符串
               # upper      # 检测全部是大写
               # lower      # 检测全部是小写
               # replace    # 将指定字符串替换为指定字符串
               ###################### 4个灰魔法 ######################
               # test = "XXX妹子有种冲我来"

               # 一、for循环
                  # for 变量名 in 字符串:
                  #     变量名
                  # break
                  # continue


                  # index = 0
                  # while index < len(test):
                  #     v = test[index]
                  #     print(v)
                  #
                  #     index += 1
                  # print('=======')

                  # for zjw in test:
                  #     print(zjw)

                  # test = "XXX妹子有种冲我来"
                  # for item in test:
                  #     print(item)
                  #     break

                  # for item in test:
                  #     continue
                  #     print(item)

               # 二、索引,下标,获取字符串中的某一个字符
                  # v = test[3]
                  # print(v)

               # 三、切片
                  # v = test[0:-1] # 0=<  <1
                  # print(v)

               # 四、获取长度
                  # Python3: len获取当前字符串中由几个字符组成
                  # v = len(test)
                  # print(v)

               # 注意:
               # len("asdf")
               # for循环
               # 索引
               # 切片

               # 五、获取连续或不连续的数字,
                  # Python2中直接创建在内容中
                  # python3中只有for循环时,才一个一个创建
                  # r1 = range(10)
                  # r2 = range(1,10)
                  # r3 = range(1,10,2)
                  # 帮助创建连续的数字,通过设置步长来指定不连续
                  # v = range(0, 100, 5)
                  #
                  # for item in v:
                  #     print(item)

               ##### 练习题:根据用户输入的值,输出每一个字符以及当前字符所在的索引位置 #####
                  # test = input(">>>")
                  # for item in test:
                  #     print(item)

                  # 将文字 对应的索引打印出来:

           # 分解
                  # test = input(">>>")
                  # print(test)   # test = qwe   test[0]   test[1]
                  # l = len(test) # l = 3
                  # print(l)
                  #
                  # r = range(0,l) # 0,3
                  # for item in r:
                  #     print(item, test[item]) # 0 q,1 w,2 e
           # 组合
                  # test = input(">>>")
                  # for item in range(0, len(test)):
                  #     print(item, test[item])


               ###################### 1个深灰魔法 ######################
               # 字符串一旦创建,不可修改
               # 一旦修改或者拼接,都会造成重新生成字符串

               # name = "zhengjianwen"
               # age = "18"
               #
               # info = name + age
               # print(info)