码迷,mamicode.com
首页 > 编程语言 > 详细

二、Python基础

时间:2017-12-05 11:48:04      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:回收机制   key   必须   als   not   png   cat   浮点   之间   

2.1 程序与用户交互

在python3中

input:无论用输入何种类型,都会存成字符串类型
name=input(‘please input your name: ‘)   #name=‘18‘
print(id(name),type(name),name)

在python2中

#raw_input与python3的input是一样的
name=raw_input(‘please input your name: ‘)
print(id(name),type(name),name)
#python2中input,用户必须输入值,输入的值是什么类型,就存成什么类型
name=input(‘please input your name: ‘)
print(id(name),type(name),name)

2.2 变量

2.2.1 如何定义变量?

python中的变量:

(1)不需要提前声明,变量的赋值操作既是变量的声明也是变量的定义过程。

(2)每个变量在内存中创建,都包括变量的标识、名称和数据这些信息。

(3)每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

 

       name=‘egon‘

       password=‘egon123‘

 

       password=‘egon@123‘

 

       level=1

       level=2

 

       print=‘123‘

       print(‘asdfasdf‘)

2.2.2 变量名的命名规则?

1)变量名只能是 字母、数字或下划线的任意组合

2)变量名的第一个字符不能是数字

3)关键字不能声明为变量名

4)标识符区分大小写。如:n和N不是一个标识符。

5)以下划线开头的标识符是有特殊意义的。(*****不建议命名开头和结尾带下划线的变量*****)

6)以单下划线开头的表示不能直接访问的类属性,如:_foo

7)以双下划线开头的表示类的私有成员,如:__foo

8)以双下划线开头和结尾的表示特殊方法专用标识符,如:__init()__代表类的构造函数。

 

      定义的方式:

           驼峰式

           AgeOfOldboy=53

           下划线

               age_of_oldboy=53

           age_of_oldboy=54

2.2.3 变量的三要素(重点)

定义一个变量,会有三个特征:id,type,value

name=‘egon‘

      变量值:用来表示状态

           用变量名取变量值

          print(name)

      变量值的类型:表示不同的状态应该用不同类型的值去表示(数字:年龄,字符串:名字)

          print(type(name))

      变量值的id号

       print(id(name))

较短字符串的id号一样:

    >>> name1=‘egon‘

    >>> name1,type(name1),id(name1)

    (‘egon‘, <class ‘str‘>, 35494968)

    >>>

    >>> name2=‘egon‘

    >>> name2,type(name2),id(name2)

    (‘egon‘, <class ‘str‘>, 35494968)

稍长的字符串id号不一样:

    >>> info1=‘info egon:18‘

    >>> info2=‘info egon:18‘

    >>> info1,type(info1),id(info1)

    (‘info egon:18‘, <class ‘str‘>, 35513136)

    >>> info2,type(info2),id(info2)

    (‘info egon:18‘, <class ‘str‘>, 35513200)

较短数字的id号一样:

    >>> x=1

    >>> y=1

    >>>

    >>> id(x)

    1626261168

    >>> id(y)

    1626261168

稍长数字的id号不一样:

    >>> x=1234567890123

    >>> y=1234567890123

    >>> id(x)

    30057584

    >>> id(y)

    34827152

2.3 常量

全部大写只是表明是个常量,没有绝对的常量

>>> AGE_OF_OLDBOY=54

2.4 引用计数+垃圾回收机制(了解)

  • 增加引用计数
  1. 对象被创建并将其引用赋值给变量,引用计数加1(例a=1)
  2. 同一个对象的引用又赋值给其它变量,引用计数加1(例b=a)
  3. 对象作为参数被函数调用,引用计数加1(例int(a)
  4. 对象成为容器对象中的一个元素,引用计数加1(例list_test=[‘alex‘,‘z‘,a])
  • 减少引用计数
  1. a作为被函数调用的参数,在函数运行结束后,包括a在内的所有局部变量均会被销毁,引用计数减1
  2. 变量被赋值给另外一个对象,原对象引用计数减1(例b=2,1这一内存对象的引用只剩a)
  3. 使用del删除对象的引用,引用计数减1(例del a)
  4. a作为容器list_test中的一个元素,被清除,引用计数减少(例list_test.remove(a))
  5. 容器本身被销毁(例del list_test) 

      >>> x=‘aaa‘   #‘aaa‘这个值的引用计数为1

      >>> y=x      #‘aaa‘这个值的引用计数为2

 

      >>> x=1

      >>> y=2

 

      >>> z=3

      >>> del z

2.5 基本数据类型

2.5.1 整型 int

状态:等级,身份证号,年龄

>>> level=10    #level=int(10)

>>> print(level,type(level),id(level))

2.5.2 浮点型 float

状态:薪资,身高,体重

>>> salary=3000.3   #salary=float(3000.3)

>>> print(salary,type(salary),id(salary))

2.5.3 字符串 str

在引号(单引号,双引号,三引号)里定义的一堆字符

状态:描述性的内容,比如名字,性别,国籍

单引号

>>> gender=‘male‘    #gender=str(‘male‘)

>>>  print(type(gender))

双引号

>>>  info="my name is egon i‘m a teacher"

三引号

>>> msg=‘‘‘

>>> xxxx

>>> yyy

>>> zzz

>>> ‘‘‘

>>> print(msg)

 

>>>  x=1

>>>  y=2.3

>>>  res=x+y

>>>  print(res)

字符只能跟字符串之间进行+或者*

>>> info1=‘hello‘

>>> nfo2=‘world‘

>>> res=info1+info2

>>> print(res)

 

>>> print(‘egon‘*10)

>>> print(‘‘*10)   #输出结果egonegonegonegonegonegonegonegonegonegon

 

>>>  print(‘=‘*10)

>>>  print(‘hello world‘)

>>>  print(‘=‘*10)

输出结果:==========

hello world

==========

2.5.4 列表 list

在[]内,用逗号分隔开,存放多个任意类型的元素

状态:有序存放多个值

 

>>> info=‘‘‘

>>> name:xxx

>>> age:18

>>>sex:male

>>> ‘‘‘

>>> print(info)

列表里可以存放列表

>>> info=[‘egon‘,18,‘male‘,[‘欧德博爱‘,‘education‘,70]]    #info=list([...])=

>>> print(info[0])

>>> print(info[3])

>>> print(info[3][0])‘‘‘

2.5.5 元组 tuple

定义在小括号内,用逗号分隔,存放不可变类型数据, 就是说你不能更新或者改变元组的元素

只有一个元素的元组需要在元组分割符里面加一个逗号(,)用以防止跟普通的分组操作符混淆,如(1,)

2.5.6 字典类型 dict

定义花括号内,用逗号分割key : value,value可以是任意类型,但是key必须不可变类型

状态:存放多个值

>>> #  name  age  sex   company

>>> info=[‘egon‘,18,‘male‘,[‘欧德博爱‘,‘education‘,70]]

>>>info[2]

 

>>> #  name  age  sex   company

>>> info={

>>>    ‘name‘:‘egon‘,

>>>    ‘age‘:18,

>>>    ‘sex‘:‘male‘,

>>>    ‘company‘:[‘欧德博爱‘,‘education‘,70]

>>> }         #info=dict({....})

>>> print(info,type(info),id(info))

 

>>> print(info[‘sex‘])

>>> print(info[‘company‘][2])

字典里可以含字典

>>> info={

>>>    ‘name‘:‘egon‘,

>>>    ‘age‘:18,

>>>    ‘sex‘:‘male‘,

>>>    ‘company‘:{‘name‘:‘欧德博爱‘,‘type‘:‘education‘,‘emp_count‘:70}

>>> }

>>> print(info[‘company‘][‘type‘])

 

>>> dic={0:‘egon‘,1:‘xxx‘,2:‘yyy‘}

>>> print(dic[0])

 

>>> stduents=[‘egon‘,‘alex‘,‘wxx‘,‘yxx‘]

2.5.7 布尔 bool

布尔值:True, False

状态:成立,不成立,用来做逻辑运算 ---> 判断

>>> print(type(True))

 

>>> age=38

>>> print(age > 18)

2.5.8 可变类型和不可变类型

可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典

不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)如:int, float, str,bool

 

>>>  dic={1:‘a‘}

>>>  dic={1.1:‘a‘}

>>>  dic={‘b‘:‘a‘}

 

>>>  dic={[1,2,3]:‘a‘}

>>>  dic={{‘a‘:1}:‘a‘}

 

>>>  dic={True:‘a‘}

>>>  print(dic[True])

2.6 格式化输出

%d只能接受int类型,而%s既可以接收数字又可以接收字符串

>>>name=input(‘name>>: ‘)

>>>age=input(‘age>>: ‘)

>>>print(‘my name is [%s] my age is <%s>‘ %(name,age))

 

>>>print(‘my name is %s‘ %‘egon‘)

>>>print(‘my name is %s‘ %11111111111111)

 

>>>print(‘my age is %d‘ %10)

>>>print(‘my age is %d‘ %‘xxxx‘) #%d只能接收数字,而%s既可以接收数字又可以接收字符串

 

>>>name=input(‘name>>: ‘)

>>>age=input(‘age>>: ‘)

>>>sex=input(‘sex>>: ‘)

>>>job=input(‘job>>: ‘)

>>>msg=‘‘‘

>>>------------ info of %s -----------

>>>Name  : %s

>>>Age   : %s

>>>Sex   : %s

>>>Job   : %s

>>>------------- end -----------------

>>>‘‘‘ %(name,name,age,sex,job)

 

print(msg)

2.7 基本运算符

2.7.1 算术

>>>print(10%3)

>>>print(2**3)

>>>print(10/3)

>>>print(10//3)

 技术分享图片

 

2.7.2 比较

>>>print(10 > 3)

>>>print(10 < 3)

>>>print(10 == 3)

>>>print(10 != 3)

 技术分享图片

 

2.7.3 赋值

>>> a=2

>>> b=a

链式赋值

>>> a=b=c=2

>>> print(id(a),id(b),id(c))

交叉赋值

>>> m=1

>>> n=2

>>> m,n=n,m

>>> print(m,n)

 

>>>temp=m

>>> m=n

>>> n=temp

>>> print(m,n)

解压

l=[1,2,3,4]

>>> a,b,c,d=l

>>> print(a)

>>> print(b)

>>> print(c)

>>> print(d)

 

>>> a=l[0]

>>> _=l[1]

>>> _=l[2]

>>> d=l[3]

>>> a,_,_,d=l

>>> print(a,d)

 

>>> a,*_,d=l

>>> print(a)

>>> print(d)

赋值运算符

>>> level=1

>>> level+=1 #level=level+1

>>> level-=1 #level=level-1

>>> print(level)

2.7.4 逻辑and or not

>>> print(1 > 2 or 1 > 3 or 3 > 1 or 4 < 3)

>>> print(not 4 > 2)

 技术分享图片

 

2.7.5 ==与is

      判断值是否相等:==

      判断id是否相等:is

      >>> x=1234567890123

    >>> y=1234567890123

    >>> id(x)   #结果:30057584

    >>> id(y)   #结果:34827152

    >>>

    >>> x is y

    False

    >>> x == y

    True

二、Python基础

标签:回收机制   key   必须   als   not   png   cat   浮点   之间   

原文地址:http://www.cnblogs.com/snailgirl/p/7985743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!