Python--day01

Posted on 2017-04-25 18:37  李坪宗  阅读(169)  评论(0编辑  收藏  举报

 

  一. 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