zoukankan      html  css  js  c++  java
  • python基础巩固(变量类型:字典、集合、元组、列表、数字、字符串)

    Python 3 教程 菜鸟教程

    https://www.runoob.com/python3/python3-tutorial.html

    在控制台DOS运行.py文件

    1. 先切换到.py文件所在目录
    2. 再输入python hello.py (输入python3 hello.py执行会报错,这里与菜鸟教程不同

    Unix & Linux 平台安装 Python3

    1. 先下载Unix/Linux的源码压缩包 https://www.python.org/downloads/source/
    2. 解压压缩包,并安装

    # tar -zxvf Python-3.7.7.tgz    说明:这是解压文件

    # cd Python-3.7.7

    # ./configure

    # make && make install  说明:make是编译,make insatll 来进行安装

    Linux设置环境变量

    bash shell输入:export PATH=”$PATH:/usr/local/bin/python”

    说明: /usr/local/bin/python 是 Python 的安装目录。

    Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。

    常见的 Shell 有 sh(sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有sh)、

    csh(有点类似C语言,所以才得名为 C shell ,简称为 csh)、

    tcsh(tcsh 是 csh 的增强版,加入了命令补全功能,提供了更加强大的语法支持)、

    ash(一个简单的轻量级的 Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容)、

    bash(bash 由 GNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的shell)

    Window 平台安装 Python3

    打开 WEB 浏览器访问 https://www.python.org/downloads/windows/ ,一般就下载 executable installer,x86 表示是 32 位机子的,x86-64 表示 64 位机子的。

    集成开发环境PyCharm社区版,免费

    PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。

    PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……

    PyCharm 下载地址 : https://www.jetbrains.com/pycharm/download/

    PyCharm 安装地址:http://www.runoob.com/w3cnote/pycharm-windows-install.html

     

     

    Python3 基础语法

    编码:默认情况下,python3源码文件以UTF-8编码,所有字符都是unicode字符串,当然也可以指定编码:# -*- coding:cp-1252 -*-

    标识符:对大小写敏感

    第一个字符必须是以字母或下划线_

    标识符的其他部分由:字母、数字和下划线组成

    说明:在python3中,可以用中文作为变量名,非ASCII标识符也可以作为变量。

    python保留字(即关键字)

    这些关键字不能把他们用作标识符名称,Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:

    多行语句:

    如果语句很长,我们可以使用反斜杠()来实现多行语句

    也可以使用’’’...’’’跨越多行

    print('''这是多行记录
    第二行
    第三行
    ''')
    tem=1+
        2
    print(tem)

    #运行结果如下===========

    这是多行记录

    第二行

    第三行

    3

    在列表[]、字典{}、元组()的多行语句,不需要使用反斜杠(),但结束符必须最后再加,例如:

     

    空行

    函数之间或类的方法之间用空行分隔,作用在于分隔两段不同功能或含义的代码,代码结构清晰。

    Print输出

    Print默认输出是换行的,要实现不换行需要在末尾加上end=''

    ##print默认输出是换行的,要实现不换行需要在末尾加上end=''

    print('**************')
    print(str)
    print(yname)
    print('**************')
    print(str,end=' ')
    print(yname,end=' **')
    print('结束')

    运行结果:

    **************

    Bueowei

    wewlaoe

    **************

    Bueowei wewlaoe **结束

    import 与 from……import

    #import from……import
    '''
    将整个模块导入:import 模块名
    从某个模块中导入某个函数:from 模块名 import 函数1
    从某个模块中导入多个函数:from 模块名 import 函数1,函数2,函数3
    从某个模块中导入全部函数:from 模块名 import *
    '''
    import sys
    print('python 路径为:',sys.path)

    from sys import path
    print('python 路径为:',path)
    #因为已经导入path成员,所以此处引用时不需要加sys.path

    变量

    python中的变量不需要声明,但每个变量在使用前必须赋值(因赋值以后该变量才会被创建)

    变量就是变量,它没有类型,这里所说的‘类型’是变量所指的内存中对象的类型。

    多个变量赋值:

    python允许同时为多个变量赋值,从后向前赋值:

    a,b,c=1,2,'wrotuw'
    print(a,b,c)    #运行结果:1 2 wrotuw

     

    print('==========')
    a,b,c=1,2
    print(a,b,c)    #运行结果:ValueError: not enough values to unpack (expected 3, got 2)

    可以用del语句删除一些对象引用:

    a,b,c,d=20,5.5,True,4+3j
    del a
    del b,c
    print(a,b,c,d)      #运行结果 NameError: name 'a' is not defined

    Python3中有六个标准的数据类型:

    数字12 字符串’we’、 列表[1,3] 元组(a,b)、字典{‘name’:’Ben’} 集合{a,3,’Lily’}

    不可变数据(3个):数字、字符串、元组

    可变数据(3个):列表、字典、集合

    比如:Python字符串不能被改变,向一个索引位置赋值,比如word[0]=’m’会导致报错。

    TypeError: 'str' object does not support item assignment  str类型不支持给他的项赋值

    但一个变量可以通过赋值指向不同类型的对象。

    内置函数type()可以用来查询变量所指的对象类型。

    a,b,c,d=20,5.5,True,4+3j
    print(type(a),type(b),type(c),type(d))  #运行结果:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

     

    字符串:

    1.用单引号’word’ 或双引号”一个句子”  或三引号’’’ 一个段落‘’’

    2.反斜杠’’可以用来转义,使用r可以让反斜杠不发生转义 (r:raw string 未加工的)

    3.字符串用+运算符连接在一起,用*运算符重复

    4.python的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

    字符串的截取格式:变量[头下标:尾下标:步长]

    1. Python中的字符串不能改变。

     

    实例:

    #!/usr/bin/python3

    str='Bueowei'

    print(str)                                #    ==Bueowei
    print('字符串的长度:',len(str))           # ==7
    print(str[2])       #输入第3个字符                 ==e
    print(str[2:5])    #输出第3个到第5个的所有字符      ==eow 等同于str[2] str[3] str[4]
    print(str[2:])      #输出从第3个字符到最后一个字符   ==eowei
    print(str[0:-1])   #输出第一个到倒数第二个的所有字符  ==Bueowe
    print(str[:-2])     #输出从第1个字符到倒数第三个字符    ==Bueow

    数据类型转换 str(x) 将对象x转换为字符串

     

    Number 数字:

    整数int(且表示为长整型)、浮点数float、复数complex 1+2j、布尔bool

    数值运算

    print(5+4)      #9  
    print(4.3-2)    #2.3 在混合类型计算中,python会把整型转换为浮点数
    print(3*7)      #21    
    print(2/4)      #0.5    除,得到一个浮点数
    print(2//4)     #0     除,只保留整数部分,得到的并不一定是整数类型的值,与参与运算的数据类型有关: 7//2.0 ==3.0

    print(17%3)     #2      求余数(3*5+2
    print(3**2)     #9      乘方

    print('======Number的一些函数===========')
    import math
    print(abs(-3))                  #取绝对值  3
    print(math.fabs(-10))           #取绝对值,返回的浮点数  10.0
    print(math.floor(4.9))          #返回的下舍整数  4
    print(round(10.5623,1))        #返回浮点数的四舍五入值,1代表舍入到小数后的位数  10.6
    print(max(5,6,3,32,654))        #参数可以为序列    654
    print(min(5,6,3,32,654))        #参数可以为序列    3
    print(pow(3,2))                 #x**y 幂运算,3**2=9
    print('======随机函数===========')
    import random
    # r=random()    #随机生成一个(0,1)范围内的实数  TypeError: 'module' object is not callable
    print(random.choice(range(10)))       #从0到9中随机挑选一个整数
    print(random.uniform(3,30))         #随机生成一个[x,y]范围内的实数
    
    print('======数学常量===========')
    print(math.pi)  #3.141592653589793
    print(math.e)   #2.718281828459045

    数据类型转换 int(x) 将对象x转换为整数 ;float(x) 将对象float转换为一个浮点数

    List列表

    列表中元素的类型可以不相同,可以是数字、字符串,甚至可以嵌套列表

    和字符串一样,可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

    mlist=[567,'qbd',2.23,'runbo',['s',57]]
    tinylist=[123,'weor']

    print(mlist)
    print(mlist[:])           #和第一个写法效果一样
    print(mlist[0])           #567
    print(mlist[1:3])         #'qbd' 2.23
    print(mlist[2:])         #2.23,'runbo',['s',57]
    print(tinylist*3)       #[123, 'weor', 123, 'weor', 123, 'weor']
    print(mlist+tinylist)   #[567, 'qbd', 2.23, 'runbo', ['s', 57], 123, 'weor']

    python字符串不一样的是,列表中的元素可以改变

    mlist=[567,'qbd',2.23,'runbo',['s',57]]
    mlist[0]='89'
    print(mlist)        #['89', 'qbd', 2.23, 'runbo', ['s', 57]]

    截取可以接收第三个参数:截取的步长,若步长为负数,表示逆向读取(可以用于翻转字符串、列表)

    mlist=[567,'qbd',2.23,'runbo',['s',57]]
    mlist[0]='89'
    print(mlist)            #['89', 'qbd', 2.23, 'runbo', ['s', 57]]
    print(mlist[1:4:2])     #['qbd', 'runbo']
    print(mlist[-1::-2])     #[['s', 57], 2.23, '89'] 翻转列表

    yname='wewlaoe'
    print(yname[-1])    #e
    print(yname[-1::-1])    #eoalwew  翻转字符串

    数据类型转换 list(s) 将序列s转换为一个列表

    Tuple(元组)

    与字符串类似,可以被索引、截取,进行连接+   重复* 操作

    print('======元组=======')
    tuple=('adcd',323,3.5,'w394')
    tinytuple=(134,'ruor')

    print(tuple)
    print(tuple[0])
    print(tuple[1:3])
    print(tinytuple*2)
    print(tuple+tinytuple)

    虽然tuple的元素不可改变,但它可以包含可变的对象,比如list

    mtuple=('adcd',323,3.5,'w394',[23,'age'])
    mtuple[0]='old'     #TypeError: 'tuple' object does not support item assignment

    mtuple[-1][0]='heigh'
    print(mtuple)       #('adcd', 323, 3.5, 'w394', ['heigh', 'age'])

    构造包含0个或1个元素的元组比较特殊如下:

    tup1=()     #空元组
    tup2=(3,)   #一个元素,需要在元素后添加逗号

    虽然元组中的元素不能改变,不允许删除,但可以使用del语句来删除这个元组:del tup2

     

    数据类型转换 tuple(s) 将序列s转换为一个元组

    String字符串、list列表、tuple元组都属于sequence序列:

    1. 可以被索引m[n]
    2. 可以被截取m[a:b]( 当b未被省略时,截取的规则为“前闭后开”,是不包含m[b]的)

    可以按步长截取m[a:b:e](步长为负数时,可以翻转序列)

    1. 也可以使用+ *操作符

    Set集合

    集合基本功能是进行成员关系测试和删除重复元素

    可以使用大括号{} 或者set()函数创建集合,注意创建一个空集合必须用set(),而不是{},因为空的{}是用来创建一个空字典。

    集合是无序的,不支持被索引、截取,且当有重复元素时只保留其中一个。

    print('=========集合的运算==========')
    #成员测试
    student={'Daives','ShanSan','Anliy','Tom','Sam','Llly' #创建集合方式1
    if 'Rose' in student:
        print('Rose 在集合中')
    else:
        print('Rose 不在集合')

    if 'Daives' in student:
        print('Daives 在集合中')
    else:
        print('Rose 不在集合')

     

    #set可以进行集合运算

    a=set('sejdkeldkkf')    #创建集合方式2  ,且set只能带一个参数
    print(a)            #运行结果  {'k', 'e', 'j', 'l', 's', 'd', 'f'}

    print(a[0])         #运行结果   TypeError: 'set' object does not support indexing 集合不支持索引

     

    #集合:差集、并集、交集、求差异集
    print(a-b)  #运行结果{'k', 'l', 'f', 's'}       a  b的差集 (只在a中而不在b中的元素组成的集合
    print(b-a)  #运行结果{'y'}                      a  b的差集 (以b为目标,筛出b中独有的,a中没有的项)
    print(a|b)  #运行结果{'l', 'e', 'k', 'y', 'd', 's', 'f', 'j'}       a  b的并集
    print(a&b)  #运行结果   {'d', 'e', 'j'}         a  b 的交集
    print(a ^ b)    #运行结果       {'f', 'k', 'y', 's', 'l'}       a  b 中不同时存在的元素

    数据类型转换 set(s) 将序列s转换为一个可变集合(a.add(5)  a.update(6,7,8)

    数据类型转换 frozenset(s) 将序列s转换为一个不可变集合,与tuple的区别在于无序,元素不可重复,且元素只能是不可变类型。

    Dictionary  字典

    字典是无序的对象集合,不能通过索引下标访问,而是通过键值来存、取的。

    字典就是一种映射类型:键(key):(value),且键(key)必须使用不可变类型(字符串、数字、元组),键(key)在该字典中是唯一的。

    print('======字典=====')
    dict={}
    dict['age']=89
    dict['name']='Daysan'
    dict[3]='333'
    dict[(3.2,5)]='dwie'
    print(dict.keys())      #运行结果   dict_keys(['age', 'name', 3, (3.2, 5)])
    print(dict[0])      #运行结果   KeyError: 0,不是按0索引的,而被视为键值0

     

    tinydict={'site':'cdds.369.cn','name':'不停学','site':'utf-8'} #重复的键,相当于修改了对应的值
    print(tinydict)     #输出完整的字典        运行结果:{'site': 'utf-8', 'name': '不停学'}

     

    print(tinydict.keys())    #输出所有键   运行结果:(['site', 'name'])     返回的类型:<class 'dict_keys'>
    print(tinydict.values())    # #输出所有值   运行结果:dict_values(['utf-8', '不停学'])     返回的类型:<class 'dict_values'>

    创建字典的几个方式:

    Dict1={}
    Dict1['age']=89                  #先定义,后面使用时赋值
    Dict2={'site':'cdds.369.cn'}    #定义同时赋值
    dict([('Runonb',1),('Google',3)])     #只能在交互式环境使用吗? 使用类型转换函数dict(),直接从键值对序列中构建字典。

    数据类型转换 dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列。

    =====================================

    Ctrl + / 注释(或取消注释),也可多行注释

    Shift + F10    运行

    Shift + F9    调试
    快速查看文档:Ctrl + Q
    进入列编辑模式:alt+鼠标
    选中单词:ctrl+w
    搜索:ctrl+f
    全局搜索:ctrl+shift+f

     

  • 相关阅读:
    CentOS 7安装配置FTP服务器
    Python验证码
    Eclipse快捷键
    mybatis中的#和$的区别
    spring framework 各版本源码下载地址
    maven的pom.xml文件标签含义
    maven学习笔记
    (转)C#调用非托管Win 32 DLL
    (转)读取XML数据到treeView中
    SpringSecurity学习二----------实现自定义登录界面
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/12530732.html
Copyright © 2011-2022 走看看