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

1、基本语法

  1.行和缩进css

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

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

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

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

  以下所示:函数

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

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

  2.注释  spa

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

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

# 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同样,分号是可选的。通常而言能够省略

2、数据类型

  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" # 字符串

 3、字符串和编码

  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%'

4、list列表和tuple元组

  1.List列表

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

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

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

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

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

    关于循环遍历删除的坑,参考:http://www.javashuo.com/article/p-towhjtmu-do.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 '\n遍历列表方法2:'
    # 方法2
    for i in range(len(list)): print ("序号:%s 值:%s" % (i + 1, list[i])) # 方法3
    print '\n遍历列表方法3:'
    for i, val in enumerate(list): print ("序号:%s 值:%s" % (i + 1, val)) # 方法3
    print '\n遍历列表方法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' >>>

5、条件判断与循环

  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("正常执行完成")

 

 

 

6、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()等

  参考:http://www.javashuo.com/article/p-gakvarct-cm.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

在函数内对全局变量操做赋值?:http://www.javashuo.com/article/p-scpbccsz-gt.html

相关文章
相关标签/搜索