一、基本语法

  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. easyui+webuploader+ckeditor实现插件式多图片上传

    需求:在ckeditor编辑器上实现多图片上传并要求另外单独选择ckeditor上传的图片作为封面 页面效果说明: 动态效果图: 第一步:页面布局 <html xmlns="http: ...

  2. SQLServer 学习笔记之超详细基础SQL语句 Part 10

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 9------------------- 删除约束的语法 ALTER T ...

  3. ethernaut 以太坊靶场学习 (1-12)

    前言 这个靶场搜集了许多不同的 solidity 开发的问题,通过这个可以入门 区块链安全 Fallback 给出了源码 pragma solidity ^0.4.18; import 'zeppel ...

  4. 【Zookeeper】Zookeeper集群单节点提供服务

    以下只在特殊情况下使用,不要用在生产环境. 一.问题背景 公司的产品使用Zookeeper做为集群支持,但是客户在验收的时候提出了一个很为难人的要求,那就是3台集群服务,停止2台以后,还要求我们的应用 ...

  5. Expo大作战(二十四)--expo sdk api之Accelerometer

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  6. react+spring 记录跨域问题的解决方法

    react 跨域访问后台,默认是有跨域问题,并且火弧和谷歌浏览器,对跨域问题展示还不一样. 谷歌浏览器如下图: 此处状态是200,然而在Response却没有任何信息,如下图 然而火弧浏览器,对该问题 ...

  7. LeetCode题解之Number of Segments in a String

    1.题目描述 2.题目分析 找到字符串中的空格即可 3.代码 int countSegments(string s) { ){ ; } vector<string> v; ; i < ...

  8. 服务器重启可能会导致SQL Server中部分数据库变为single user mode

    今天检查公司生产服务器的SQL Server数据库,惊讶的发现有三个生产数据库变为了single user mode.奇怪的是没有任何人和程序执行过SQL语句将这三个数据库设置为single user ...

  9. Cisco DHCP 配置方法

    首先假设两台思科路由器,R1(服务端)连接R2(客户端),组成一个简单的链式局域网,下面就来实现DHCP,配置的命令及其解释如下: 1.R1 dhcp服务的配置 dhcp#configure term ...

  10. win10连接外接鼠标怎么禁用触摸板

    Win10笔记本如何禁用触摸板呢?Win10笔记本如何设置“插入鼠标自动禁止触摸板功能”呢?虽然笔记本触摸板在一定程度上可以方便我们的 操作,但是在以鼠标和键盘做为重要的输入设备的情况下,笔记本触摸板 ...