一、基本语法

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

五、条件判断与循环

  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

Python3入门(三)——Python基础语法的更多相关文章

  1. [ Python入门教程 ] Python基础语法

    Python的语法非常简练,因此用Python编写的程序可读性强.容易理解.本章将介绍Python的基本语法和概念. Python文件类型 1.源代码.Python的源代码的扩展名以py结尾,可直接运 ...

  2. 萌新入门之python基础语法

    首先我们先了解一些python最最基础的入门 1.标识符 定义:我们写代码的时候自己取得名字比如项目名,包名,模块名这些: 规范:1.数字/字母/下划线组成,不能以数字开头 2.起名字要见名知意 3. ...

  3. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  4. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  5. 三. Python基础(3)--语法

    三. Python基础(3)--语法 1. 字符串格式化的知识补充 tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提 ...

  6. 011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三—— 变量值——即Java中的“字面值”

    011 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 05 变量的三个元素的详细介绍之三-- 变量值--即Java中的"字面值" 变量值可以是 ...

  7. 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型

    010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...

  8. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

  9. 【转】Python基础语法

    [转]Python基础语法 学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组 ...

  10. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

随机推荐

  1. 基于docker搭建jumpserver堡垒机

    一.环境信息 1.jumpserver 192.168.137.129 CentOS6.4   kernel版本为 3.10.5-3.el6.x86_64 2.客户机 dev01-04 3.docke ...

  2. 【three.js练习程序】随机生成100个方块

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. ASP.NET Core Razor生成Html静态文件

    一.前言 最近做项目的时候,使用Util进行开发,使用Razor写前端页面.初次使用感觉还是不大习惯,之前都是前后端分离的方式开发的,但是使用Util封装后的Angular后,感觉开发效率还是杠杠滴. ...

  4. VMware部署ubuntu后开机提示piix4_smbus: Host SMBus controller not enabled!

    在虚拟机部署ubuntu10.04-server,每次启动完成之后,出现“piix4_smbus0000:00:07.3: Host SMBus controller not enabled!”提示信 ...

  5. Azure 中虚拟机的区域和可用性

    Azure 在中国的两个数据中心运行. 这些数据中心分组到地理区域,让用户可灵活选择构建应用程序的位置. 请务必了解 Azure 中虚拟机 (VM) 运行的方式和位置,以及最大化性能.可用性和冗余的选 ...

  6. Oracle EBS FTP显示无法与某IP 连接

    首先 用root用户登录 如果可以登录 那么应该是权限的问题 这里选择 方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示: ## Allow root to ...

  7. SQL2005中的事务与锁定(九)-(1)- 转载

    ------------------------------------------------------------------------ -- Author : HappyFlyStone - ...

  8. python基础学习2

    一.算数运算符 +加法,-减法,*乘法,/除法,//地板除,%求余,**幂运算. 二.逻辑运算符 非not.且and.或or.优先级依次为not,and,or. 三.print()end结尾 prin ...

  9. fedora27安装后的配置工作(持续更新)

    换源 没什么可说的,安装后更换国内软件源是必须做的事,推荐更换阿里的镜像源.换源教程 添加epel源 EPEL (Extra Packages for Enterprise Linux)是基于Fedo ...

  10. Vue.js Is Good, but Is It Better Than Angular or React?

    Vue.js is a JavaScript library for building web interfaces. Combining  with some other tools It also ...