• python基本数据类型及运算符


    一、IDE集成开发环境(pycharm)

    二、基本数据类型的使用

    三、运算符

    ​ PyCharm是一种Python IDE(IDE集成开发环境),其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业web开发。同时支持Google App Engine,更酷的是,PyCharm支持lronpython!这些功能在先进代码分析程序的支持下,使 PyCharm 成为 Python 专业开发人员和刚起步人员使用的有力工具。

    补充:为了增加代码的可读性,避免自己写的代码连自己都看不懂需要注释,而代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """,代码注释的原则:1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可;2. 注释可以用中文或英文,但不要用拼音。

    基本数据类型也是由两个问题引出,什么是数据?为何要有多种类型的数据?数据即变量的值,如age=18,18则是我们保存的数据。变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。

    ​ **数字类型分为整型(int)、浮点型(float)****,整型定义:age=10 # age=int(10),用于标识年龄、等级、个数,可以使用数学运算与比较运算。浮点型定义:salary=3.1 #salary=float(3.1),用于标识工资,身高,体重,可以使用数学运算与比较运算。

    字符串(str)定义:在单引号/双引号/三引号中包含一系列字符,用于记录描述性质的状态,如姓名,性别,国籍,种族, name='egon' #name=str('egon') 在python中,加了引号的字符就是字符串类型,python并没有字符类型。单引号、双引号、多引号没有任何区别,只有下面这种情况 你需要考虑单双的配合 :

    ​ msg = "My name is Egon , I'm 18 years old!",

    ​ #多引号

                    msg = '''
                    今天我想写首小诗,
                    歌颂我的同桌,
                    你看他那乌黑的短发,
                    好像一只炸毛鸡。
                    '''
    

    ​ 数字可以进行加减乘除等运算,字符串也能,但只能进行"相加"和"相乘"运算

                    >>> name='egon'
                    >>> age='18'
                    >>> name+age #相加其实就是简单拼接
                    'egon18'
                    >>> name*5 
                    'egonegonegonegonegon
    

    注意1:字符串相加的效率不高

    ​ 字符串1+字符串3,并不会在字符串1的基础上加字符串2,而是申请一个全新的内存空间存入字 符串1和字符串3,相当字符串1与字符串3的空间被复制了一次,

    注意2:只能字符串加字符串,不能字符串加其他类型

    列表(list)定义:在[]内用逗号分隔开多个任意类型的值,用于标识存储多个值的情况,比如一个人有多个爱好,在[]内用逗号分隔,可以存放n个任意类型的值。

    ​ students=['egon','alex','wupeiqi',]

    				>>> students_info[0][2][0] #取出第一个学生的第一个爱好
    

    ​ 'play'

    字典(dict)为何还要用字典?存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下

    ​ info=['egon','male',18]
    ​ 定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用
    ​ print(info[2])

    ​ 18

    ​ 但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄
    ​ 即:

    ​ name, sex, age

    ​ info=['egon','male',18]
    ​ 而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典

    在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型

    ​ 定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18})
    ​ 用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值

    
    
    		students=[
        			{'name':'alex','age':38,'hobbies':['play','sleep']},
       			 {'name':'egon','age':18,'hobbies':['read','sleep']},
       			 {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
    			]
    			print(students[1]['hobbies'][1]) #取第二个学生的第二个爱好
    
    ​```
    
    
    
    
    

    布尔(bool):True、False计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识

            >>> a=3
            >>> b=5
            >>> 
            >>> a > b #不成立就是False,即假
            False
            >>> 
            >>> a < b #成立就是True, 即真
            True
    
    接下来就可以根据条件结果来干不同的事情了:
    	if a > b 
       print(a is bigger than b )
    
    else 
       print(a is smaller than b )
    
    

    上面是伪代码,但意味着, 计算机已经可以像人脑一样根据判断结果不同,来执行不同的动作。
    布尔类型的重点知识!!!:

    #所有数据类型都自带布尔值
    1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
    2、其余均为真 
    

    重点:

    	#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
    
    	#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 
    

    格式化输出

    ​ 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式

    ​ 比如要求用户输入用户名和年龄,然后打印如下格式:

    ​ My name is xxx,my age is xxx.

    ​ 很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。

    ​ 这就用到了占位符,如:%s、%d

    #%s字符串占位符:可以接收字符串,也可接收数字
    print('My name is %s,my age is %s' %('egon',18))
    #%d数字占位符:只能接收数字
    print('My name is %s,my age is %d' %('egon',18))
    print('My name is %s,my age is %d' %('egon','18')) #报错
    
    #接收用户输入,打印成指定格式
    name=input('your name: ')
    age=input('your age: ') #用户输入18,会存成字符串18,无法传给%d
    
    print('My name is %s,my age is %s' %(name,age))
    
    #注意:
    #print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错
    
     **基本运算符** :计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算 
    

    算数运算

    	print(10 / 3)    3.3333333333333335
    	print(10 // 3)   3 
    	print(10 % 3)    1
    	print(10 ** 2)   100
    

    比较运算符

        print(10 == 10)  true 
        print(10 != 10)  false
        print(10 > 3)    true
        print(10 < 3)    false
        print(10 >= 10)  true
        print('egon' == 'egon') true
    
        了解:
    	x='abcdef'
    	y='abcz'
    	print(x > y)
    
     	l1=[2,'abc',3]
     	l2=[2,'3']
     	print(l2 > l1)
    

    赋值运算符

    	3.1 增量赋值
    	age = 18
    	age += 1  # age=age+1
    	print(age)
    	age-=1 # age=age-1
    	print(age)
    
     	3.2 交叉赋值
    	x=11
    	y=22
    
    	temp=x
    	x=y
    	y=temp
    	上述三行代码可以合并为下面这一行
    	x,y=y,x
    	print(x,y)
    
    	3.3 链式赋值
    	x=10
    	y=x
    	z=y
    
    	x=y=z=10
    	print(id(x),id(y),id(z))
    
    	3.4 解压赋值
    	l=['a','b','c','d','e']
    	x=l[0]
    	y=l[1]
    	z=l[2]
    	m=l[3]
    	n=l[4]
    
    	等号左边的变量名必须与右面所包含的值一一对应
    	x,y,z,m,n=l
    	print(x,y,z,m,n)
    
    	x,y,*_,z=l
    	print(x,y,z)
    
    	l=['a','b','c','d','e']
    	x,y,x,m,n=l
    	x='a'
    	y='b'
    	x='c'
    	m='d'
    	n='e'
    	print(x,y,x,m,n)
    
    	l=['a','b','c','d','e']
    	x,y,*_=l
    	print(_)
    

    逻辑运算符

    ​ and:逻辑与,用来连接左右两个条件,在左右两个条件同时为True的情况下,最终结果才为True
    ​ print(10 < 3 and 3 == 3)
    ​ print(10 > 3 and 3 == 3 and 1 == 1 and 1 > 0)

    ​ or:逻辑或,用来连接左右两个条件,左右两个条件但凡有一个为True,最终结果就为True
    ​ print(10 < 3 or 1 == 1)
    ​ print(10 < 3 or 1 == 1 or 10 < 11 or 1!= 1 or 'a' != 'a')

    ​ not:取反
    ​ print(not 10 > 3)

    ​ res=(10 > 3 and 'egon' != 'egon') or ((1 < 3 and 4 >= 3) or (not 8 > 3))
    ​ print(res)
    最好使用括号来区别优先级,其实意义与上面的一样
    ​ >>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
    ​ False

    身份运算符

    	==:判断的是值是否相等
    	is:判断的是id是否相等
    
    	值相等,id可以不同
    	>>> x='info:egon:18:male'
    	>>> y='info:egon:18:male'
    	>>> id(x),id(y)
    	(2924120923496, 2924120923568)
    	>>> x == y
    	True
    	>>> x is y
    	False
    	
    	id相同,值一定相同
    	>>> x=10
    	>>> x=y
    	>>> id(x)
    	2924120923568
    	>>> id(y)
    	2924120923568
    	>>>
    	>>> x is y
    	True
    	>>> x == y
    	True
    
  • 相关阅读:
    12.12 怀北滑雪场滑雪记
    datetime类型offset-aware与offset-navie
    Django-models中的choise
    什么是__name__()
    单机Ubuntu安装第二个Mysql服务
    Ubuntu下的Python安装
    设置mysql允许外网访问
    Ubuntu初次设置root密码
    使用VMware+Ubuntu,无法切换大小写的异常处理
    XShell/Xftp 无法连接 Ubuntu20
  • 原文地址:https://www.cnblogs.com/fuwei8086/p/10567539.html
Copyright © 2020-2023  润新知