zoukankan      html  css  js  c++  java
  • python笔记04

    数据类型(二)

    今日内容

    1、列表

    2、元组

    内容回顾和补充

    1、计算机基础

    ①硬件:cpu,内存,硬盘,主板,网卡

    ②操作系统:linux,centos, Ubuntu,redhat

    windows

    mac

    ③解释器,编译器

    补充:编译型语言和解释型语言

    编译型:写完代码后,编译器一次性编译交给计算机。c,c++,java,c#,go

    解释型:写完代码交给解释器,一行一行解释,从上到下进行。py,php,ruby

    ④软件:应用程序

    2、环境安装

    ①py解释器,py2,py3

    ②开发工具:pycharm/文本编辑器

    3、py语法

    解释器路径:#!/usr/bin/env python

    linux系统应用:赋予文件可执行权限:chmod +x hello.py;. ./hello.py;source hello.py

    ①if,elif,else,while,break,contine
    ②编码

    编码种类:acsii,unicode,utf-8,utf-16,bgk/gb2312

    中文表示:

    utf-8:3字节

    gbk:2字节

    py默认编辑器编码:

    py3:utf-8

    py2:ascii

    ③输入输出:

    py2:

    输入:raw_input

    输出:print“ ”

    py3:

    输入:input

    输出:print()

    ④数据类型
    • 整型,int:

      py2中有:int/long;py3中有int。

      强制转换:int(‘67’)

      除法:py2,import( from__ future__ import division) ,py3默认精确计算除法。

      布尔类型,bool:

      true/False 其他语言:true/false

      特殊为False的其他类型:0和“”

    • 字符串,str:

      独有功能:

      upper,lower

      replace

      strip,lstrip,rstrip

      isdigit

      startwith(' ') ,endwith('')以什么开头,结尾

      join:连接,"**".join(name)

      name='alex'

      print('_'.join(name))#循环每个元素,以_进行连接。

      格式化:format(类似%占位符)

      name="我叫{0},年龄:{1}".format('老男孩',73)

      print(name)

    • 编码:encode

      name='李杰',解释器读取到内存后,按照Unicode编码存储

      V1=name.encode('utf-8')

      print(v1)

      v2=name.encode('gbk')

      print(v2)

    • 公共特性:

      长度:len,后去字符串长度。

      索引:获取一个字符。

      切片:获取一段字符串。

      步长:name='alexalexalsc'

      val=name[0:-1:2]---2是步长
      val=name[-1:0:-2]--步长是负,从右到左取值
      

      索引为负,从右到左。

      val=name[::-1] 将字符串反转

      print(val)

    • for 循环

      name='alex'
      
      for item in name:
      
      print(item)
      
      name='alex'
      
      for item in name:
      
      print(itsm)
      
      break
      
      print(123)
      
      name='alex'
      
      for item in name:
      
      print(itsm)
      
      continue
      
      print(123)
      

      for循环打印字符串的每个元素:for>while。

      死循环:while > for。

      break:跳出全部循环

      continue;跳出本次循环,进行下次循环

      打印数字:range(0,10)

      for i in range(0,10):

      if i==7:(if i!=7:print(i))

      pass/contine

      else:

      print(i)

      注意:for,while使用环境,while无穷尽。

    • 布尔型

      True,False

      False:0和空字符

    • 输入输出

      py2:输入:raw_input

      ​ 输出:pinrt" "

      py3:输入:input()

      ​ 输出:print()

    • 变量

      字母数字下划线

    • 条件语句,循环语句

      while,for,break,continue

    • 运算符

      字符串格式化,format

      %s,

      %d,

      %%取百分号

    • 编码

      acsii

      unicode

      utf-8/utf-16

      gbk/gb2312

      中文表示:utf-8,3字节,gbk,2字节

    • 解释器路径:

      #!/usr/bin/env python

    今日内容详细

    1、列表

    表示多个事物,使用列表。

    user=['alex','zhangsan','lilei',99]

    公共功能:

    len:列表len,按照逗号计算

    索引:从0开始。

    切片:user]0:2]

    步长:user[0:5:2],2是步长。

    练习题:

    """
    实现一个整数加法计算器(两个数相加):
    
    如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算得到结果。
    """
    方法1
    num=[]
    content=input('请输入加法:')
    content=content.strip()
    num=content.split('+')
    print(num)
    num1=int(num[0])
    num2=int(num[1])
    print(num1+num2)
    
    方法2
    
    num=[]
    content=input('请输入加法:')
    l=len(content)
    print(l)
    for i in range(l):
        if content[i].isdigit():
            num.append(content[i])
    print(int(num[0])+int(num[1]))
    方法3:
    num=[]
    content=input("请输入加法:")
    content=content.split('+')
    n1=int(content[0])
    n2=int(content[-1])
    print(n1+n2)
    
    

    for循环:(字符串,列表,可嵌套)

    输入:66+99,输出相应的结果。

    通过for循环和数字计数器实现:

    users=['zhangsan','lisi','wangwu']

    输出每个名字,带索引号

    # 练习题:请通过for循环和数字计数器实现:users = ['李邵奇','利奇航','张三丰','李子森']
    """
        0 李邵奇
        1 利奇航
        2 张三丰
        3 李子森
    """
    users = ['李邵奇','利奇航','张三丰','李子森']
    l=len(users)
    for i in range(l):
        print(i,users[i])
    
    print("方法二")
    count=0
    for i in users:
        print(count,i)
        count+=1
    
    
    

    删除:

    del users[1]##删除索引1的元素。

    字符串本省不能删除或者修改,列表可以。

    修改:

    users[2]=66
    
    users[0][1]
    

    列表的独有功能:

    append()

    users=[]

    while True:

    name=input('please input:')

    users.append(name)

    print(users)

    输入次数限制:

    users=[]

    for i in range(0,3):---3次限制。

    user=input('请输入用户名和密码:')

    users.append(user)

    username=input('请输入用户名:')

    password=input('请输入密码:')

    for item in users:

    ​ result=item

    ​ user=result[0]

    ​ pwd=result[1]

    if userusername and pwdpassword:

    print('登录成功!')

    else:

    print('登录失败!')

    users=[]
    for i in range(3):
        name=input('请输入用户名和密码:')
        users.append(name)
    
    username=input('请输入用户名:')
    password=input('请输入密码:')
    for item in users:
        name=users[0].split(',')[0]
        psswd=users[0].split(',')[1]
        if username==name and password==psswd:
            print("登陆成功!")
            break
        else:
            print("登陆失败!")
            break
    

    insert

    users.insert(1,'zhangsi')##在指定的索引位置插入元素。

    remove:

    users.remove('zhangsan')##删除zhangsan

    pop()

    users.pop(2) ##删除索引2元素

    users.pop()##删除最后一个元素

    clear()##清空列表

    列表总结:

    append,insert

    remove,pop,clear,del users[2]

    users[3]='wuxi'

    索引,切片

    列表嵌套:

    users[3][2][0]
    

    2、元组

    元组书写规范

    users = [11,22,33,"老男孩"] # 列表(可变)
    
    users = (11,22,33,"老男孩") # 元组(不可变)
    

    公共功能

    索引

    users = (11,22,33,"老男孩")
    
    print(users[0])
    print(users[-1])
    

    切片

    users = (11,22,33,"老男孩")
    print(users[0:2])
    

    步长

    users = (11,22,33,"老男孩")
    print(users[0:2:2])
    

    删除(排除:tuple/str/int/bool)

    修改(排除:tuple/str/int/bool)

    for循环

    users = (11,22,33,"老男孩")
    for item in users:
        print(item)
    

    len

    users = (11,22,33,"老男孩")
    print(len(users))
    

    独有功能(无)

    特殊:元组中的元素不可被修改,删除。

    # 示例一:
    v1 = (11,22,33)
    v1[1] = 999 # 错误
    v1 = 999  # 正确
    
    # 示例二:可以嵌套
    v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3))
    
    # 示例三:嵌套
    v2 = [11,22,33,(11,22,33)]
    v2[-1][1] = 99 # 错误
    v2[-1] = 123 # 正确
    
    # 示例四:嵌套
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 # 错误
    v3[1][2] = 123
    

    内容总结:

    1、解释型语言和编译型区别以及列举你了解的语言。

    2、字符串补充功能

    独有

    • startswith、endswith
    • format
    • encode
    • join

    公共

    • 切片
    • 索引
    • len
    • 步长
    • for循环
    • range(0,10)

    特性:不可变。

    列表(可变)

    公共

    • 索引
    • 切片
    • 步长
    • 修改
    • 删除
    • for
    • len

    独有

    • append
    • insert
    • pop
    • remove
    • clear

    列表嵌套

    元组(不可变)

    公共

    • 索引
    • 切片
    • 步长
    • for
    • len

    独有功能(无)

    元组嵌套

  • 相关阅读:
    groovy脚本语言基础1
    014.Ansible Playbook Role 及调试
    013.Ansible Playbook include
    012.Ansible高级特性
    011.Ansible条件语句
    010.Ansible_palybook 循环语句
    009.Ansible模板管理 Jinja2
    008.Ansible文件管理模块
    007.Ansible变量Fact,魔法变量和lookup生成变量
    006.Ansible自定义变量
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12284517.html
Copyright © 2011-2022 走看看