[19/09/08-星期日] Python的几个概念和语法

1、表达式、语句、程序、函数程序员

  一、表达式  就是一个相似于数学公式的东西 ,好比:10 + 5 8 - 4;表达式通常仅仅用了计算一些结果,不会对程序产生实质性的影响编辑器

        若是在交互模式中输入一个表达式,解释器会自动将表达式的结果输出函数

  二、语句   在程序中语句通常须要完成某种功能,好比打印信息、获取信息、为变量赋值。如:print()、input()、a=10 学习

        语句的执行通常会对程序产生必定的影响,在交互模式中不必定会输出语句的执行结果。编码

  三、程序(program) 程序就是由一条一条的语句和一条一条的表达式构成的。命令行

  四、函数(function) 函数就是一种语句,函数专门用来完成特定的功能。函数长的形如:xxx()3d

      分类:code

      内置函数 ,由Python解释器提供的函数,能够在Python中直接使用对象

      自定义函数 ,由程序员自主的建立的函数,当咱们须要完成某个功能时,就能够去调用内置函数,或者自定义函数 。
    构成:
      参数: ()中的内容就是函数的参数,函数中能够没有参数,也能够有多个参数,多个参数之间使用","隔开blog

      返回值 :返回值是函数的返回结果,不是全部的函数都有返回值。        

2、书写规范
    一、在Python中严格区分大小写;

    二、Python中的每一行就是一条语句,每条语句以换行结束,不像其余语言以“;”结尾;

    三、Python中每一行语句不要过长(规范中建议每行不要超过80个字符),在sublime编辑器设置不要超过80个字符,"rulers":[80],

    四、一条语句能够分多行编写,多行编写时语句后边以‘’\‘’结尾;

    五、Python是缩进严格的语言,因此在Python中不要随便写缩进;

    六、在Python中使用 # 来表示注释,# 后的内容都属于注释,注释的内容将会被解释器所忽略,注释要求简单明了,通常习惯上#后边会跟着一个空格。

3、基本语法

  一、字面量(常量)和变量

    字面量就是一个一个的值,好比:1,2,3,4,5,6,‘HELLO’,所表示的意思就是它的字面的值,在程序中能够直接使用字面量;

    变量(variable)变量能够用来保存字面量,而且变量中保存的字面量是不定的,变量自己没有任何意思,它会根据不一样的字面量表示不一样的意思。

            通常咱们在开发时,不多直接使用字面量,都是将字面量保存到变量中,经过变量来引用字面量。

  二、变量和标识符 

  变量:

  Python中使用变量,不须要声明(和类型),直接为变量赋值便可,a = 10。

    不能使用没有进行过赋值的变量,若是使用没有赋值过的变量,会报错 NameError: name 'b' is not defined。

  Python是一个动态类型的语言,能够为变量赋任意类型的值,也能够任意修改变量的值,a = 'hello',也是对的。

  标识符:

     在Python中全部能够自主命名的内容都属于标识符,好比:变量名、函数名、类名,标识符必须遵循标识符的规范

  (1)、标识符中能够含有字母、数字、_,可是不能使用数字开头,例子:a_1 _a1 _1a

  (2)、标识符不能是Python中的关键字和保留字,也不建议使用Python中的函数名(如print)做为标识符,由于这样会致使函数被覆盖。

  (3)、命名规范:若是使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax 

    下划线命名法,全部字母小写,单词之间使用_分割,如:max_length, min_length, hello_world, xxx_yyy_zzz

    帕斯卡命名法(驼峰命名法),首字母大写,每一个单词开头字母大写,其他字母小写,如:MaxLength, MinLength, HelloWorld, XxxYyyZzz 

  三、数据类型

    指的就是变量的值的类型,也就是能够为变量赋哪些值

    分类:数值型 (整形、浮点型、复数), 布尔型, 字符型, 空值   

    在Python数值分红了三种:整数、浮点数(小数)、复数

    (1)int型,在Python中全部的整数都是int类型,a = 10  b = 20,Python中的整数的大小没有限制,能够是一个无限大的整数,不用担忧内存溢出。

       如 c = 9999999999999999999 ** 100是对的,若是数字的长度过大,可使用下划线做为分隔符,c = 123_456_789,下划线自动忽略。

      d = 0123 ,10进制的数字不能以0开头,print输出时,其余进制的整数,只要是数字打印时必定是以十进制的形式显示的。

      # 二进制 0b开头,c = 0b10 ,十进制的2

      # 八进制 0o开头,c = 0o10,十进制的8

      # 十六进制 0x开头,c = 0x10,十进制的16

       也能够经过运算符来对数字进行运算,而且能够保证整数运算的精确,如,c = 100,c = c + 3

    (2)float型, 浮点数(小数),在Python中全部的小数都是float类型,c = 1.23

       对浮点数进行运算时,可能会获得一个不精确的结果,如c = 0.1 + 0.2 ,可能会输出0.30000000000000004

    字符型

    (3)string型,字符串(str)用来表示一段文本信息,字符串是程序中使用的最多的数据类型,在Python中字符串须要使用引号引发来。

      如,s = 'hello',字符串必须使用引号引发来,不使用不是字符串。引号能够是双引号,也能够是单引号,可是注意不要混着用

      s = 'hello' s = "hello" 可是s = 'hello" 引号不能混合使用,会出现 SyntaxError: EOL while scanning string literal。

    注意: 相同的引号之间不能嵌套

    错误示范, s = "子曰:"学而时习之,乐呵乐呵!"",正确的,s = '子曰:"学而时习之,乐呵乐呵!"'

    # 长字符串,单引号和双引号不能跨行使用

    s = '锄禾日当午,\
      汗滴禾下土,\
      谁知盘中餐,\
      粒粒皆辛苦'   , 这样打印出来都在1行。

    因此使用三重引号来表示一个长字符串 3个单引号''' 或3个双引号""",三重引号能够换行,而且会保留字符串中的格式

    s = '''锄禾日当午,
      汗滴禾下土,
      谁知盘中餐,
      粒粒皆辛苦''',这样打印出在4行

    # 转义字符,可使用 \ 做为转义字符,经过转义字符,能够在字符串中使用一些特殊的内容

       \' 表示', \" 表示",\t 表示制表符,\n 表示换行符,\\ 表示反斜杠,\uxxxx 表示Unicode编码,UTF-8编码的万国码。

      s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""

      s = '\u2250'

    #格式化字符串

    (1)字符串之间也能够进行加法运算, 若是将两个字符串进行相加,则会自动将两个字符串拼接为一个字符串。

       如,a = 'abc' + 'haha' + '哈哈',输出abchaha哈哈

      print("a = "+a) , 这种写法在Python中不常见,经常使用的是这个 print('a =',a)

           字符串不能和其余的类型进行加法运算,若是作了会出现异常 TypeError: must be str, not int。例如a=12, print("a = "+a) ,会报错,由于前边是

    字符串后边是整形变量。

    (2)在建立字符串时,能够在字符串中指定占位符 

       %s 在字符串中表示任意字符

       %f 浮点数占位符

       %d 整数占位符

     如,b = 'Hello %s'%'孙悟空' ,输出Hello 孙悟空,用孙悟空填充%s

       b = 'hello %s 你好 %s'%('tom','孙悟空')

       b = 'hello %3.5s'%'abcdefg'   # %3.5s字符串的长度限制在3-5之间,不够在前边填空格,多了砍掉后边。

       b = 'hello %s'%123.456   str是万能的,填整形和浮点型均可以。

       b = 'hello %.2f'%123.456  保留2位小数,自动四舍五入。

       b = 'hello %d'%123.95  直接把小数给舍掉。 

       b = '呵呵'

        print('a = %s'%a)

    (3)格式化字符串,能够经过在字符串前添加一个f(引号前边)来建立一个格式化字符串

     在格式化字符串中能够直接嵌入变量如 a和b

    c = f'hello {a} {b}'

    print(f'a = {a}')

  练习 建立一个变量保存你的名字,而后经过四种格式化字符串的方式,在命令行中显示,欢迎 xxx 光临!

  name='孙悟空'

  print("欢迎"+name+"光临!")

  print("欢迎",name,"光临!")

  print('欢迎%s光临!'%name)

  print(f'欢迎{name}光临!') 

  # 字符串的复制(将字符串和数字相乘)

  a = 'abc'   * 在语言中表示乘法

   若是将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回

  a = a * 20

  print(a) 字符串复制20次输出,Python中独有

  (4)布尔值(bool)

  布尔值主要用来作逻辑判断,布尔值一共有两个 True (真)和 False(假)

  a = True

  a = False

    print('a =',a)

  布尔值实际上也属于整型,True就至关于1,False就至关于0

   print(1 + False) ,输出为1

    (5) None(空值)None专门用来表示不存在

     b = None

       print(b) 输出为None

   扩展-1:类型检查

  a = 123    数值    print('a =',a)

  b = '123'   字符串  print('b =',b)

   type()函数用来检查值的类型, 该函数会将检查的结果做为返回值返回,能够经过变量来接收函数的返回值。

  c = type('123')

  c = type(a)

  print(type(b))  输出<class 'str'>

  print(type(1))  输出 <class 'int'>

  print(type(1.5))  输出<class 'float'>

  print(type(True)) 输出 <class 'bool'>

  print(type('hello'))  输出<class 'str'>

  print(type(None))  输出 <class 'NoneType'>

  扩展-2:类型装换(将一个类型的对象转换为其余对象,类型转换不是改变对象自己的类型,而是根据当前对象的值建立一个新对象) 

  类型转换四个函数 int()、 float()、 str()、 bool()

  (1)、 int() 能够用来将其余的对象转换为整型

  规则:

     布尔值:True -> 1 False -> 0

          浮点数:直接取整,省略小数点后的内容

    字符串:合法的整数字符串,直接转换为对应的数字。若是不是一个合法的整数字符串(如小数字符串'11.5'),则报错 ValueError: invalid literal for int()

           with base 10: '11.5',对于其余不可转换为整型的对象,直接抛出异常 ValueError。

  (2)、 float() 和 int()基本一致,不一样的是它会将对象转换为浮点数

  (3)、 str() 能够将对象转换为字符串

     True -> 'True'

     False -> 'False'

    123 -> '123'

   (4)、bool() 能够将对象转换为布尔值,任何对象均可以转换为布尔值

       规则:对于全部表示空性的对象都会转换为False,其他的转换为True

      哪些表示的空性:0 、 None 、 '' 

    例如:

    a = True

   调用int()来将a转换为整型,int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其做为返回值返回

   若是但愿修改原来的变量,则须要对变量进行从新赋值。

    a = int(a)

    a = False

    a = int(a)

    a = '123'

    a = int(a)

    a = 11.6

    a = int(a)

    a = '11.5'

     a = int(a)

    a = None

     a = int(a)

    a = 1

    a = float(a)

    a = False

    a = float(a)

    a = 123

    a = str(a)

    a = None

    a = bool(a)

    print('a =',a)

    print('a的类型是',type(a))

     b = 456

    print('hello'+str(b))

  四、 对象(object)

    Python是一门面向对象的语言,一切皆对象!程序运行当中,全部的数据都是存储到内存当中而后再运行的,对象就是内存中专门用来存储指定数据的

  一块区域,对象实际上就是一个容器,专门用来存储数据 ,如数值、字符串、布尔值、None都是对象

   

   结构:每一个对象中都要保存三种数据

   一、id(标识)

      id用来标识对象的惟一性,每个对象都有惟一的id,对象的id就至关于人的身份证号同样,能够经过id()函数来查看对象的id,id是由解析器生成的,

在CPython中,id就是对象的内存地址, 对象一旦建立,则它的id永远不能再改变。

    二、type(类型)

   类型用来标识当前对象所属的类型,好比:int str float bool。类型决定了对象有哪些功能,经过type()函数来查看对象的类型, Python是一门强类型的语言,

对象一旦建立类型便不能修改。

  三、 value(值)

  值就是对象中存储的具体的数据,对于有些对象值是能够改变的;

  对象分红两大类,可变对象和不可变对象,可变对象的值能够改变,不可变对象的值不能改变,以前学习的对象都是不可变对象。

  变量和对象:

          对象并无直接存储到变量中,在Python中变量更像是给对象起了一个别名,变量中存储的不是对象的值,而是对象的id(内存地址),

   当咱们使用变量时,实际上就是在经过对象id在查找对象,变量中保存的对象(的地址即id),只有在为变量从新赋值时才会改变,变量和变量之间是相互独

   立的,修改一个变量不会影响另外一个变量.。

相关文章
相关标签/搜索