此章节过一遍python3基础,方便日后回忆。
目录:
一、python3保留字
二、python3数据类型
三、基本逻辑
一、python3保留字
可以通过引入keyword模块查看。
import keyword
print(keyword.kwlist)
#输出
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
二、python3数据类型
python3 中有六个标准数据类型:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
1、Number(数字)
python3数字支持int、float、bool、complex(复数)
四种类型。
这里插一句,笔者也是从C语言到JAVA一路学过来的,许多语言都有必须先声明再使用的习惯,而这一点在python上不存在。甚至说变量的数据类型是跟着赋值操作一直改变的,这一点对某些语言来说、引起强烈不适!
a=1
print(type(a))
a=1.0
print(type(a))
#输出
<class 'int'>
<class 'float'>
运算符大全速查:
http://www.runoob.com/python3/python3-basic-operators.html
2、String(字符串)
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
str = 'RabbitMask'
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # 输出字符串两次
print ('hello '+str) # 连接字符串
#输出
RabbitMask
RabbitMas
R
bbi
bbitMask
RabbitMaskRabbitMask
hello RabbitMask
关于字符串的输出,我们来拓展几点:
(1)r
实现强制输出
print('请输入你的姓名:')
a=input()
print('请输入你的年龄:')
b=input()
print('name is %s \n ,age is %s' %(a,b))
print(r'name is %s \n,age is %s'%(a,b))
#输出
请输入你的姓名:
rabbit
请输入你的年龄:
18
name is rabbit
,age is 18
name is rabbit \n,age is 18
(2)数据格式化:占位符%
与format
占位符%
的格式化方法比较常见,上面的例子以及使用了,我们使用format函数来进行数据格式化做对比,伴随着python3推广,format函数逐渐被重视起来。
print('请输入你的姓名:')
a=input()
print('请输入你的年龄:')
b=input()
#基于位置的格式化(不可乱序)
print('name is {},age is {}'.format(a,b))
#基于关键字的格式化(可以乱序)
print('name is {name},age is {age}'.format(name=a,age=b))
#基于字典的格式化(可以乱序)
c={'name':a,'age':b}
print('name is {name},age is {age}'.format(**c))
#基于列表的格式化(不可乱序)
d=[a,b]
print('name is {0[0]},age is {0[1]}'.format(d))
#输出
请输入你的姓名:
rabbit
请输入你的年龄:
18
name is rabbit,age is 18
name is rabbit,age is 18
name is rabbit,age is 18
name is rabbit,age is 18
(3)三引号跨行字符串
三对引号不仅仅有注释的功能,还具有定义跨行字符串的功能,而且你可以在三引号内自由回车或空格,你编辑的界面即输出的样子,而且其中允许使用换行符、制表符等其它特殊字符,三连击单引号或双引号即可开启三引号。
a='''
这座城市、
风很大,
孤独的人、
总是晚回家'''
b='''这座城市、\n\t风很大,\n\t孤独的人、\n\t\t总是晚回家'''
print(a)
print(b)
#输出
这座城市、
风很大,
孤独的人、
总是晚回家
这座城市、
风很大,
孤独的人、
总是晚回家
3、List(列表)
list是一种有序的集合,可以随时添加和删除其中的元素。
列表有两种顺序即[0]开始或者[-1]结束,顺序均为升序,python没有数组的概念,其实列表就是其它语言的数组,只是在操作规则是有一丢丢小差异,在此以最精简的例子全面介绍列表的增删改查操作。
a=[1,2,3,4]
b=[-1,-2,-3,-4]
c=[]
print('原始:',c)
#增(1)
c=a+b
print('增(1):',c)
#增(2) 该方法插入位置为列表末尾
c.append(0)
print('增(2):',c)
#删(1)
del c[6:9]
print('删(1):',c)
#删(2) 该方法如果不加参数,则删除最后一位,参数含义为正数序号
c.pop()
c.pop(4)
print('删(2):',c)
#改(1) 覆盖
c[3]=666
print('改(1):',c)
#改(2) 插入任意指定位置,非覆盖,之前此处的数据后移一位
c.insert(0,888)
print('改(2):',c)
#查(1)正向查询
print('查(1):',c[0:4])
#查(2)反向查询
print('查(2):',c[-4:-1])
#输出
原始: []
增(1): [1, 2, 3, 4, -1, -2, -3, -4]
增(2): [1, 2, 3, 4, -1, -2, -3, -4, 0]
删(1): [1, 2, 3, 4, -1, -2]
删(2): [1, 2, 3, 4]
改(1): [1, 2, 3, 666]
改(2): [888, 1, 2, 3, 666]
查(1): [888, 1, 2, 3]
查(2): [1, 2, 3]
最后补充一句就是,我们此处的例子为了主观用的是数字,但类型没有限制,甚至是列表,对的,列表中的元素是列表。
4、Tuple(元组)
元组、emmmm,和列表太像了,唯一的区别就是它定义以后无法增删改。区别于列表的[ ]
定义,元组使用( )
定义,或者甚至可以不加括号。
a=(1,2,3,4)
b=1,2,3,4
print(a)
print(b)
#当元组中只有一个元素时,
#需要加“,”用以与正常类型作区分
c=1
d=1,
print(type(c))
print(type(d))
#输出
(1, 2, 3, 4)
(1, 2, 3, 4)
<class 'int'>
<class 'tuple'>
元组可通过list方法将内容复制到一个列表中,但这跟类型转换还是有区别的。
a=1,2,3,4
print (type(a))
b=list(a)
print (type(b))
#输出
<type 'tuple'>
<type 'list'>
5、Dictionary(字典)
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。
键必须是唯一的,但值则不必。
键必须是不可变的,如字符串,数字或元组,值可以取任何数据类型。
a={'rabbit':18,'carrot':14}
print (a)
#增
a['test']='test'
print (a)
#改
a['test']=666
print (a)
#删(1)
del a['test']
print (a)
#删(2)
a.pop('carrot')
print (a)
#查字典
print (a['rabbit'])
#查全部键
print (a.keys())
#查全部值
print (a.values())
#输出
{'carrot': 14, 'rabbit': 18}
{'test': 'test', 'carrot': 14, 'rabbit': 18}
{'test': 666, 'carrot': 14, 'rabbit': 18}
{'carrot': 14, 'rabbit': 18}
{'rabbit': 18}
18
['rabbit']
[18]
我们可以发现,相对于列表,字典不会随着元素的增多而降低查询时间,但占用的内存空间会增加,列表特点刚好完全相反。
6、Set(集合)
集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。
a={'rabbit','carrot'}
print ('a:',a)
#如果使用set方法创建集合,必须使用一个列表作为数据源,切此方法可用于创建空集合
b=set(['rabbit','carrot'])
print ('b:',b)
#增
a.add('test')
print ('a:',a)
#删
a.remove('test')
print ('a:',a)
#输出
('a:', set(['carrot', 'rabbit']))
('b:', set(['carrot', 'rabbit']))
('a:', set(['test', 'carrot', 'rabbit']))
('a:', set(['carrot', 'rabbit']))
三、基本逻辑
1,判断
借助下面的小例子大家感受下if判断嵌套以及用户交互input的使用。
值得一提的是python3取消了python2中的raw_input()函数,只保留了input()函数,在这里栽了个小坑,还好小伙伴们捞了一下。
a='''
====================================================
____ _ _ _ _ __ __ _
| _ \ __ _| |__ | |__ (_) |_| \/ | __ _ ___| | __
| |_) / _` | '_ \| '_ \| | __| |\/| |/ _` / __| |/ /
| _ < (_| | |_) | |_) | | |_| | | | (_| \__ \ <
|_| \_\__,_|_.__/|_.__/|_|\__|_| |_|\__,_|___/_|\_\
====================================================
| 欢迎来到rabbitmask——python入门系列
| 1、登录
| 2、关于
| 3、退出
'''
print(a)
b=input()
if b=='1':
print ('请输入你的用户名:')
username=input()
if username=='rabbit':
print ('请输入密码:')
password=input()
if password=='rabbit':
print ('我就是想跟你说下啊if三层嵌套的问题~')
else:
print ('密码不正确,再见!')
else:
print ('用户名不正确,再见!')
elif b=='2':
print('''\t对,\n\t 今天咱也是个废物!''')
elif b=='3':
print("")
input("点击 enter 键退出")
print("")
else:
print('输入不合法')
input("点击 enter 键退出")
2,循环
(1)for循环
for循环的语法是for...in...,我们高斯定理举例。
sum=0
for i in range(101): #range函数用于生成数列
sum =sum+i
print('1-100求和结果:',sum)
#输出
1-100求和结果: 5050
(2)while循环
sum=0
n=100
while n>0:
sum=sum+n
n=n-1
print('1-100求和结果:',sum)
#输出
1-100求和结果: 5050
3,循环+判断
更多的时候,我们需要结合使用判断与循环逻辑,我们尝试引入break、continue改写我们上面的例子。
break 语句可以跳出 for 和 while 的循环体,continue语句被用来告诉Python跳过当前循环块中的剩余语句,
这两个方法语句几乎全语言通用,如果不方便记忆,可以这么理解:break跳出整个循环,continue跳出当前循环。
a='''
====================================================
____ _ _ _ _ __ __ _
| _ \ __ _| |__ | |__ (_) |_| \/ | __ _ ___| | __
| |_) / _` | '_ \| '_ \| | __| |\/| |/ _` / __| |/ /
| _ < (_| | |_) | |_) | | |_| | | | (_| \__ \ <
|_| \_\__,_|_.__/|_.__/|_|\__|_| |_|\__,_|___/_|\_\
====================================================
| 欢迎来到rabbitmask——python入门系列
| 1、登录
| 2、关于
| 3、退出
'''
while 'rabbitmask': #关于这里,只要while后跟的只要不是0或false,皆为真
print(a)
b = input()
if b == '1':
print('请输入你的用户名:')
username = input()
if username == 'rabbit':
print('请输入密码:')
password = input()
if password == 'rabbit':
print('我就是想跟你说下啊if三层嵌套的问题~,这里就算你拿到小红花啦,再见啦!')
input("点击 enter 键返回首页")
else:
print('密码不正确!')
input("点击 enter 键返回首页")
continue
else:
print('用户名不正确!')
input("点击 enter 键返回首页")
continue
elif b == '2':
print('''\t对,\n\t 今天咱也是个废物!''')
input("点击 enter 键返回首页")
continue
elif b == '3':
print("")
input("点击 enter 键退出")
print("")
break #只在用户需要退出时才退出程序,其它情况继续循环
else:
print('输入不合法')
print("")
input("点击 enter 键返回首页")
print("")
continue