• Python3入门(三)——Python基础语法


    一、基本语法

      1.行和缩进

      Python中,不使用括号来表示代码的类和函数定义块或流程控制。

      参考:https://www.w3cschool.cn/python3/python3-basic-operators.html

      官方中文文档参考:https://docs.python.org/zh-cn/3.7/

      代码块是由行缩进,缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量。

      如下所示:

    a = 100
    if a >= 0:
        print(a)
    else:
        print(-a)

      // 同样的,建议一个tab设置成4个空格(Editor->Code Sytle)

      2.注释  

      “#”号之后字符和到物理行是注释的一部分,Python解释器会忽略它们。

      多行注释,使用三引号 """ """(单引号亦可)

    # First comment
    print "Hello, Python!";  # second comment

      3.引号

      Python接受单引号('),双引号(“)和三(''或”“”)引用,以表示字符串常量,只要是同一类型的引号开始和结束的字符串。

      三重引号可以用于跨越多个行的字符串。例如,所有下列是合法的:

    word = 'word'
    sentence = "This is a sentence."
    paragraph = """This is a paragraph. It is
    made up of multiple lines and sentences."""

      4.分号

        和scala一样,分号是可选的。一般而言可以省略

    二、数据类型

      a) 数字

      b) 字符串

      c) 列表

      d) 元组

      e) 字典

      f)   set 

      补充还有布尔值:True和False

      数据类型之间的转换https://www.cnblogs.com/mywood/p/7428138.html

      python中定义变量时不需要显示指定变量类型,如果要查看数据类型,可以使用type(var),以下为python中变量使用的典型语法:

    #基本使用(连scala中的val都省了,全自动类型推断)
    counter  = 100          # 整型
    miles   = 1000.0       # 浮点
    name    = "John"      # 字符串

     三、字符串和编码

      1.字符串

      字符串的API可以参考String Methods

      常用操作,参考:https://www.runoob.com/python/python-strings.html

      在python3中,默认的字符串编码是Unicode,提供了类似

        ord()——字符的整数表示(例如A:65)

        decode()/encode()——字符串与bytes之间的互转

        len()——表示字符串长度等常规方法

      取值支持str[1],str[1:8]这样的区间取值,直接取出某些字符串中的指定位字符。步长也是支持的str[0:5:2]——切片

      同样,字符串支持for in的迭代!

      字符串格式化与C保持一致:

    print("your name is %s,you are %s" % ("Bob", "Good"))

      更加推荐的是format函数https://www.runoob.com/python/att-string-format.html

      2.编码

      通常在py文件的头加上以下两行:来防止乱码

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-

       第一行和shell一样,告诉liunx系列系统这是一个可执行程序

      第二行则用于指定编码(当然文件也要指定编码,这部分在pycharm中也应该设定编码)

      3.占位符

    >>> print('it is %s,i %s it' %('good','like'))
    it is good,i like it

      和C的占位符类似,不再赘述;相同功能的有format方法:

    >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    'Hello, 小明, 成绩提升了 17.1%'

    四、list列表和tuple元组

      1.List列表

        与普通列表list的定义一样是个可变有序列表,注意python的写法:中括号[]

    >>> list = ['i','love','chnia']
    >>> list
    ['i', 'love', 'chnia']

        访问使用从0开始的下标访问,并且支持正负访问:

    >>> list[0]
    'i'
    >>> list[1]
    'love'
    >>> list[-1]
    'chnia'

        元素的增删改操作:完整的操作在文档第五章

        关于循环遍历删除的坑,参考:https://www.cnblogs.com/baihualin/p/10698651.html

    # 末尾插入元素
    >>> list.append('you')
    >>> list
    ['i', 'love', 'chnia', 'you']
    # 指定位置插入元素
    >>> list.insert(1,'really')
    >>> list
    ['i', 'really', 'love', 'chnia', 'you']
    # 删除末尾元素
    >>> list.pop()
    'you'
    >>> list
    ['i', 'really', 'love', 'chnia']
    # 删除指定位置元素,remove删除指定元素,clear清空列表
    >>> list.pop(1)
    'really'
    >>> list
    ['i', 'love', 'chnia']
    >>>

        list保存的还可以是不同类型的元素:

    >>> list = [1,'love',True]
    >>> list
    [1, 'love', True]
    >>>

     list的遍历:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    if __name__ == '__main__':
        list = ['html', 'js', 'css', 'python']
    
        # 方法1
        print '遍历列表方法1:'
        for i in list:
            print ("序号:%s   值:%s" % (list.index(i) + 1, i))
    
        print '
    遍历列表方法2:'
        # 方法2
        for i in range(len(list)):
            print ("序号:%s   值:%s" % (i + 1, list[i]))
    
        # 方法3
        print '
    遍历列表方法3:'
        for i, val in enumerate(list):
            print ("序号:%s   值:%s" % (i + 1, val))
    
        # 方法3
        print '
    遍历列表方法3 (设置遍历开始初始位置,只改变了起始序号):'
        for i, val in enumerate(list, 2):
            print ("序号:%s   值:%s" % (i + 1, val))

       2.tuple元组

        tuple就是不可变的list了,表示上使用括号()

    >>> tuple = ('i','love',10086)
    >>> tuple
    ('i', 'love', 10086)

      隐式使用tuple可以进行多重赋值:

    a,b = 1,2
    # 利用隐式tuple可以简便的交换两个元素的值
    x,y = y,x

       这里为了避免歧义,定义一个元素的元组时,需要在末尾加逗号,,Python在显示只有一个元素的时候也会加上逗号

    >>> tuple1 = (1,)

       访问和list一样,使用下标:

        支持zip拉链操作:https://www.runoob.com/python/python-func-zip.html

    >>> tuple[1]
    'love'
    >>>

    五、条件判断与循环

      1.条件判断

      直接从示例看起:注意冒号

    age = 20
    if age >= 18:
        print('your age is', age)
        print('adult')

      根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。

      结合else的语法如下:(注意else后的冒号:)

    age = 3
    if age >= 18:
        print('adult')
    elif age >= 6:
        print('teenager')
    else:
        print('kid')

      python也支持:

    if x:
        print('True')

      只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

      2.循环

       for

      和scala有点儿类似(当然,Python先于scala出现),同样注意冒号:

    >>> list = [1,'love',True]
    >>> for e in list:
                print(e)
    1
    love
    True    

      同样,python提供类似scala的to函数的range用于控制循环:

        range是左闭右开的;如果需要控制起始与步长,可以使用range(初始值,结束值,步长)

    sum = 0
    for x in range(101):
        sum = sum + x
    print(sum)

      需要使用下标时可以通过相关函数使用:

    list1 = ['i', 'love', 'china']
    for i, e in enumerate(list1):
        print(i, e)

      while

    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)

      breakcontinue同样支持,但是这样会造成程序的分支混乱,慎用!

      循环的else可以在循环正常结束时执行!

    list1 = ['i', 'love', 'china']
    for i, e in enumerate(list1):
        print(i, e)
    else:
        print("正常执行完成")

    六、dict和set

      1.dict

        Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map

        定义的方式是使用冒号分割,大括号包围:

    >>> d = {'M': 80,'F': 90}
    >>> d
    {'M': 80, 'F': 90}
    # 下标风格的取值,key不存在时为赋值

     >>> d['M']
     80

         使用dict也可以定义:

    d1 = dict(a=99, b=98)

       类似scala的getOrElse方法进行取值:

    >>> d.get('Thomas') # 返回空,None
    >>> d.get('Thomas', -1)
    -1

      需要注意的是由于需要计算key的hash来确定位置,所以key必须是不可变对象,例如整型、字符串

      删除键值对:

      

      是否存在key:

    'a' in d1

      遍历keys values可以使用keys() values()等

      参考:https://www.cnblogs.com/Ivyli4258/p/8275021.html

      2.set

       和其他语言的set类似的定义,但是注意语法,需要给出一个list作出输入来产生一个set

    >>> s = set(['i',1,'love'])
    >>> s
    {'i', 'love', 1}

      可以通过add(key),remove(key)进行key的增删

      由python这类语言的for可以知道,可以使用for进行遍历:for e in s

    更多python3基础知识,参考菜鸟教程https://www.runoob.com/python3/python3-tutorial.html

    在函数内对全局变量操作赋值?:https://blog.csdn.net/qq_28888837/article/details/88060376

  • 相关阅读:
    Will Go eventually replace C++ as Google hoped when Go came out?
    5G到底什么时候来,它究竟能给我们带来什么?
    eog——Eye of GNOME Image Viewer
    Appweb——Embedded Web Server
    【2017】数字重排
    【9203】众数
    【2034】四人投票
    【9204】第k小整数
    【2031】求一元三次方程的解
    iOS 7: 如何为iPhone 5s编译64位应用
  • 原文地址:https://www.cnblogs.com/jiangbei/p/8893681.html
Copyright © 2020-2023  润新知