注释
python中的注释有单行注释和多行注释:
-
- 单行注释以 # 开头
- 多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
print("Hello, World!") #这是输出字符串到屏幕,字符串里可以为任何字符
# 我的注释
print("hello me")
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
关键字
关键字,我们不能把它们用作任何标识符(变量)名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
import keyword
keyword.kwlist
list1=keyword.kwlist
list1
#变量名,不能是保留字,不能数字开头
a=3
#7a=5
_a=4
a =4
print(a)
b=3
print(b)
c=a+b
print(c)
行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
if True:
print ("True")
print('error')
else:
print ("False")
数字(Number)类型
python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- bool (布尔), 如 True。
- float (浮点数), 如 1.23、3E-2
- complex (复数), 如 1 + 2j、 1.1 + 2.2j
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
字符串(String)
python中单引号和双引号使用完全相同。
- 使用三引号('''或""")可以指定一个多行字符串。
- 转义符 ''
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with n" 则n会显示,并不是换行。
- 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
- 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
- Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- Python中的字符串不能改变。
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
- 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
str='Runoobkkklh88kiobb'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始的后的所有字符
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
print('------------------------------')
print('hellonrunoob') # 使用反斜杠()+n转义特殊字符
print(r'hellonrunoob') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
字符串格式化:将数据转换为想要的字符串格式 %s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
#字符串格式化
print("hello %d"%1) #1 以整数输出
print("hello %.2f"%123.123456) #浮点类型 小数点后为2位
#字符串大小写
print('lk with psr'.capitalize())
'lk with psr'.upper()
'KDJFKSDKFSL'.lower()
#字符串查找
'hello world'.replace('world','python')
'hello world'.replace('l','p',2)
#字符串分割
#split()
'h e lo'.split()
'h e-l t-p'.split('-')
#字符串搜索
s='lkdkafkdakd'
s.find('kd')
s.index('d')
s.rfind('ka')
s.count('a')
Python运算符与表达式
算数运算符
- + 加
- - 减
- * 乘
- / 真正除法
- // 整数除法
- % 取模
- ** 幂
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c = a - b
print ("2 - c 的值为:", c)
c = a * b
print ("3 - c 的值为:", c)
c = a / b
print ("4 - c 的值为:", c)
c = a % b
print ("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值为:", c)
a = 10
b = 5
c = a//b
print ("7 - c 的值为:", c)
比较运算符
- == 等于 - 比较对象是否相等
- != 不等于 - 比较两个对象是否不相等
- < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。
- <= 小于等于 - 返回x是否小于等于y。
- > 大于 - 返回x是否大于y
- >= 大于等于 - 返回x是否大于等于y。
a = 21
b = 10
c = 0
if ( a == b ):
print ("1 - a 等于 b")
else:
print ("1 - a 不等于 b")
if ( a != b ):
print ("2 - a 不等于 b")
else:
print ("2 - a 等于 b")
if ( a < b ):
print ("3 - a 小于 b")
else:
print ("3 - a 大于等于 b")
if ( a > b ):
print ("4 - a 大于 b")
else:
print ("4 - a 小于等于 b")
# 修改变量 a 和 b 的值
a = 5;
b = 20;
if ( a <= b ):
print ("5 - a 小于等于 b")
else:
print ("5 - a 大于 b")
if ( b >= a ):
print ("6 - b 大于等于 a")
else:
print ("6 - b 小于 a")
赋值运算符
- = 简单的赋值运算符
- += 加法赋值运算符
- -= 减法赋值运算符
- *= 乘法赋值运算符
- /= 除法赋值运算符
- %= 取模赋值运算符
- **= 幂赋值运算符
- //= 取整除赋值运算符
a = 21
b = 10
c = 0
c = a + b #31
c+=2 # c=c+2
print ("c 的值为:", c)
逻辑运算符
- not 逻辑非
- and 逻辑与
- or 逻辑或
print(not True)
print(True and False)
print(True or False)
if 4>3 and 3>2:
print("ok")
Python数据结构
List(列表)
- List(列表) 是 Python 中使用最频繁的数据类型。
- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
- 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
- 列表截取的语法格式:变量[头下标:尾下标],索引值以 0 为开始值,-1 为从末尾的开始位置。
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
print (list + tinylist) # 连接列表
#列表操作符
list1=[1,2,3]
list2=[4,5,6]
print(len(list1))
print(list1+list2)
print(list1*2)
print(2 in list1)
for x in list1 :print(x)
Tuple(元组)
- 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
- 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (tinytuple * 2) # 输出两次元组
print (tuple + tinytuple) # 连接元组
Set(集合)
- 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
- 基本功能是进行成员关系测试和删除重复元素。
- 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Rose' in student :
print('Rose 在集合中')
else :
print('Rose 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
Dictionary(字典)
- 字典(dictionary)是Python中另一个非常有用的内置数据类型。
- 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
- 键(key)必须使用不可变类型。
- 在同一个字典中,键(key)必须是唯一的。
dict = {}
dict['one'] = "1 - 教程"
dict[2] = "2 - 工具"
tinydict = {'name': 'leike','code':1, 'site': 'www.leike.com'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
Python条件和循环
条件语句
if first_condition:
first_body
elif second_condition:
second_body
elif third_condition:
third_body
else:
fouth_body
def unlock_door():
print("Unlock door!")
def open_door():
print("Open door!")
def advance():
print("Advance!")
door_is_closed = True
door_is_locked = True
if door_is_closed:
if door_is_locked:
unlock_door()
open_door()
advance()
循环语句
while 循环
while condition: body
for 循环
for element in iterable: body
break和continue语句
- break 语句可以跳出 for 和 while 的循环体
- continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。pass 语句
- Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句
print("Welcome to the GPA calculator")
print("Please enter all your letter grades, one per line.")
print("Enter a blank line to designate the end.")
# map from letter grade to point value
points = { 'A+': 4.0, 'A': 3.8, 'A-': 3.67, 'B+': 3.33, 'B': 3.0, 'B-': 2.67, 'C+': 2.33, 'C': 2.0, 'C-': 1.67, 'D': 1.0, 'F': 0.0, }
num_courses = 0
total_points = 0
done = False
while not done:
# readline from user input
grade = input()
if grade == '': # empty line was entered
done = True
elif grade not in points:
print("Unknow grade '{0}' being ignored".format(grade))
else:
num_courses += 1
total_points += points[grade]
if num_courses > 0: # avoid division by zero
print("Your GPA is {0:.3}".format(total_points / num_courses))