zoukankan      html  css  js  c++  java
  • Pythonday01

      一. Python介绍

        - 一种面向对象的解释型计算机程序设计高级语言,由荷兰人 Guido van Rossum于1989年发明;

        - Python语法简洁清晰,特色之一是强制用空白符作为语句缩进。

      二. Python和其他语言对比

        - C语言: 是最快的编程语言,它比其他语言少了一步机器码;  代码 -> 字节码 -> 计算机生成;

        - 其他高级语言:代码 -> 字节码 -> 机器码 -> 计算机生成;

        - python语言简洁 、代码少。

      三. Python种类
        - CPython : 代码 -> C字节码 -> 机器码 (一行一行执行)
        - pypy: 代码 -> C字节码 -> 机器码 (全部转换完执行)
        - 其他Python:代码 -> 其他字节码 -> 机器码
      四. Python基础
        Python规则
          1. 安装: python解释器
          2. 写程序

            C:\Python35\python.exe D:\1.txt
            # a. 打开文件,读取文件内容 (文件后缀没有固定格式)
            # b. 词法分析,语法分析
            # c. 字节

          3.程序开始
            #!/usr/bin/env python #在文件头部 ( 第一行 ) 加上  设置 Python 解释器

            # -*- coding: utf-8 -*- #在文件头部 ( 第二行 ) 加上  在编辑器中设置以 UTF-8 默认编码保存文件

            - 潜规则
              程序编辑文件以  .py 结尾
            - 内容编码

              python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

              ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

              ASCII : a 00000010

              显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。

              Unicode : a 00000000 00000010

              Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536

              UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

              UTF-8 : 00000010

              GBK,gb2312 ,是对ASCII的中文扩展,扩展之后的方案称为GBK标准,GBK包含了gb2312的所有内容,同时又增加了近20000个新的汉字和符号。

              gbk , gb2312 :100000000 00000000 00000010

              




      五. 集成开发环境(IDE,Integrated Development Environment )
        pycharm
        - 使用
          1. new project
          2. new 创建文件夹
          3. new 创建py文件
          4. 执行文件,在py文件中右键, run xx.py
        - 文件编码

          设置pytharm编码统一为utf-8

          

        - 文件模板

          设置固定开头文件模板 避免新建文件反复输入

          

          

        - 改变大小

           

          设置文件编辑器的文字大小(Ctrl + 鼠标滚轮)

      六. 注释
        单行注释: #
        多行注释: """ """
        注释快捷键
         -Ctrl + ?

    #!/user/bin/env/python
    # -*- coding:utf-8 -*-
    
    #  print('hello1') 
    
    """
    print('hello2')
    print('hello3')
    刀鱼
    """
    

      


      七.  .pyc文件

        .pyc文件存储的是介于0101计算机语言和我们写的文件之间的语言。是有python解释器根据我们编写的代码自动生成的文件。


      八. 变量的命名
      
        - 字母
        - 数字(不能开头)
        - 下划线
        - 不能使用python内置关键字

        定义变量: 一定要遵循一定的命名习惯,让你的变量名称能让别人一眼看出来是干什么用的                      如: name = 'Alex' , age = 29 , user_type = '管理员’


      
    九. 输入,输出
        输入的两种方式:
        1. 显示输入内容  v = input(">>>") 

        2. 隐藏输入内容  import getpass
                   v = getpass.getpass('>>>')

        输出打印:
          使用 print(v)

    import getpass
    
    name = input('请输入名字:')
    pwd = getpass.getpass('请输入密码:')
    if name == 'alex' and pwd == 'sb':
        print('~欢迎登录~')
    else:
        print('滚蛋')

        

      十. 条件判断


       a. 单条件语句

        if 条件:

        成功走这里
        else:
        失败走这里
      如果if语句判断为Ture,就会执行它下面的字代码,否则执行else下面的代码。当然后面的else也不是必须加的,如果不加else的话,if条件判断为False的话,它就什么也不做。

    应用代码如下:

    1  import getpass
    2 
    3 name = input("请输入姓名:")
    4 pwd = getpass.getpass('请输入密码:')
    5 if name == 'alex' and pwd == 'sb':
    6 print('欢迎登陆')
    7 else:
    8 print('滚蛋')
    if...else

        if条件成功,打印 “欢迎登陆” ;

        if条件失败,执行else下的代码,打印 “滚蛋” 。



       b. 多条件语句

        if 条件:
        ...
        elif 条件:
        ...
        else:
        ...


     1 username = input('>>>')
     2 if username == 'alex':
     3 print('普通管理')
     4 elif username == 'oldboy':
     5 print('超级管理')
     6 elif username == '郭少龙':
     7 print('')
     8 elif username == '刘一':
     9 print('装逼犯')
    10 else:
    11 print('再见...')
    12 
    13 print('end')
    if...elif...elif...else



      十 一. 循环语句

        while 条件:
        continue # 立即开始下次循环
        break # 跳出所有循环

    应用代码如下:

    1 i = 1
    2 while True:
    3     if i == 7:
    4         i = i + 1
    5         continue # 开始下一次循环
    6     print(i)
    7     i = i + 1
    8     if i == 11:
    9         break    # 跳出所有的循环
    while打印1,2,3,4,5,6, 8,9,10





      十二.运算符

    a. 算数运算

    b. 比较运算

    c. 赋值运算

    d. 逻辑运算

    e. 成员运算

      十三.Python数据类型


        a. 整数 int
          - 创建
            a = 123
            a = int(123)
          - 转换 (int只能转换数字,不支持字母、中文)
            age = "18"
            new_age = int(age)
        b. 布尔值
          - 创建
            a = True
            b = False
          - 转换
             数字转换,只有0是False,其他True
             字符串, 只有""是False,其他True
          

     1 a = 0
     2 b = 1
     3 c = -1
     4 A = bool(a)
     5 B = bool(b)
     6 C = bool(c)
     7 print(A)
     8 print(B)
     9 print(C)
    10 
    11 运行结果:
    12              False
    13              True
    14              True
    Bool



        c. 字符串
          - 创建
            a = "alex"
            a = str('alex')
          - 转换 (数字可以转换成字符型)
            age = 19
            new_age = str(age)
          - 字符串的拼接
            name = 'alex'
            gender = '女'
            new_str = name + gender
            print(new_str)

            打印结果:alex女

          - 字符串格式化
            占位符
            name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!'
            new_str = name %('男',19,)
            print(new_str)

            name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('男',19,)
            print(name)

            打印结果:我叫李杰,性别:男,我今年19岁,我在说谎!

          - 判断子序列是否在其中

            content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"

            if "前几天去" in content:
            print('包含敏感字符')
            else:
            print(content)

            打印结果:包含敏感字符

          - 移除空白 (移除中间的目前不会)
            val = " alex "
            print(val)
            new_val = val.strip() # 左右
            new_val = val.lstrip()# 左边
            new_val = val.rstrip() # 右边
            print(new_val)
          - 分割
            user_info = "alex|sb123|9"
            v1 = user_info.split('|')          
            v2 = user_info.split('|',1)
            v3 = user_info.rsplit(' ',1)
            print(v1,v2,v3)

            打印结果:['alex', 'sb123', '9']  以管道符分割

                 ['alex', 'sb123|9']     默认从最左边开始分割,数字为分割数

                 ['alex|sb123', '9']     ‘r’split 从右边开始分割
          - 长度(字符)
            val = "李杰sb"
            v = len(val)
            print(v)

            打印结果:4  ;(每一个字母、汉字、数字均为一个字符)
          - 索引
            val = "李杰sb"
            v = val[0]
            print(v)

     1 val = input('>>>')
     2 i = 0
     3 while i < len(val):
     4     print(val[i])
     5     i += 1
     6 
     7 
     8 #输入 >>>yang
     9 #打印结果
    10 y
    11 a
    12 n
    13 g
    索引

          - 切片(默认索引为0)


            name = '我叫李杰,性别:男,我今年19岁,我在说谎!'
            print(name[0])
            print(name[0:2])
            print(name[5:9])
            print(name[5:])
            print(name[5:-2])
            print(name[-2:])

            打印结果:

                  
                  我叫
                  性别:男
                  性别:男,我今年19岁,我在说谎!
                  性别:男,我今年19岁,我在说
                  谎!


      d. 列表
         创建:
          a = ['alex','狗','eric',123]
          a = list(['alex','狗','eric',123])

        in判断:
          a = ['alex','狗','eric',123]
          if 'al' in a:
          打印结果:报错 正确形式为:  if 'al' in a[0]:  'al'是存在于字符串里

          
           
          if 'alex' in a:

          打印结果:in判断是正确的,‘alex’是以列表元素存在的。
          

        索引:
          val = a[0]
          同理字符串
        长度:
          val = len(a)
          同理字符串
        切片:
          a = ['alex','狗','eric',123]
          v = a[0::2]
          print(v)
          同理字符串
        追加:
          a = ['alex','狗','eric',123]
          a.append('xxoo')
          print(a)

          追加在列表末尾
        插入:
          a = ['alex','狗','eric',123]
          a.insert(0,'牛')
          print(a)

          可以按照索引插入某一位置
        删除:
          a = ['alex','eric','狗','eric',123]
          a.remove('eric')    #这里根据值删除
          del a[0]   
    #这里根据索引删除
          print(a)

      
      更新:
          
    a = ['alex','eric','狗','eric',123]
          a[1] = '阿斯顿发送到'
          print(a)
          找到索引位置修改更新
     
     for循环:
          a = ['alex','eric','狗','eric',123]
          for item in a:
          print(item)
          打印结果:

                alex
                eric
                狗
                eric
                123


     
     e. 字典操作  注意:字典内容是无序的
        
    - 创建
          v = {
              'name': 'alex',
              'password': '123123'
            }

     
     常用操作

        -索引获取值      n = v['name']

           print(n)

        -增加 (无,增加;有,修改)
          v['age'] = 19
          print(v)

        -删除
          del v['name']
          print(v)

        -循环  不同于列表 字典的元素以键值对存在的
         for item in v.keys():
          print(item)
        for item in v.values():
          print(item)
        for key,val in v.items():
          print(key,val)

        -长度
          print(len(v))
    实例1 :
      列表和字典是可以相互无限嵌套的
      user_dict = {
           
     'k1': 'v1',
            'k2': {'kk1':'vv1','kk2':'vv2'},
            'k3': 123,
            'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],
            }
      user_dict['k4'][2].append('123')
      user_dict['k4'][4]['n'] = '过啥龙'
      

    实例2 :

      多用户登录

      user_list = [
            {'name':'alex','pwd':'123123','times':1},
            {'name':'eric','pwd':'123123','times':1},
            {'name':'tony','pwd':'123123','times':1},
            ]
      user = input('用户名:')
      
    pwd = input('密码:')
      for item in user_list:     #item 代表列表中的每一个字典
      if user == item['name'] and pwd == item['pwd']:
      print('登录成功')
      break



  • 相关阅读:
    枚举子集 Codeforces306 Div2 B
    UVA140 剪枝
    回溯法浅谈
    UVA10976
    UVA11059
    BZOJ3355
    hdu 2509 博弈 *
    博弈专题
    hdu 1404 找sg ***
    hdu 4759 大数+找规律 ***
  • 原文地址:https://www.cnblogs.com/lipingzong/p/6755725.html
Copyright © 2011-2022 走看看