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

一、表达式、语句、程序、函数

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

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

  2、语句   在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。如:print()、input()、a=10 

        语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果。

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

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

      分类:

      内置函数 ,由Python解释器提供的函数,可以在Python中直接使用

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

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

二、书写规范
    1、在Python中严格区分大小写;

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

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

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

    5、Python是缩进严格的语言,所以在Python中不要随便写缩进;

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

三、基本语法

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

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

    变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的,变量本身没有任何意思,它会根据不同的字面量表示不同的意思。

            一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量。

  2、变量和标识符 

  变量:

  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 

  3、数据类型

    指的就是变量的值的类型,也就是可以为变量赋哪些值

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

    在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))

  4、 对象(object)

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

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

   

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

   1、id(标识)

      id用来标识对象的唯一性,每一个对象都有唯一的id,对象的id就相当于人的身份证号一样,可以通过id()函数来查看对象的id,id是由解析器生成的,

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

    2、type(类型)

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

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

  3、 value(值)

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

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

  变量和对象:

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

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

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

    

  

 

转载于:https://www.cnblogs.com/ID-qingxin/p/11488391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值