一、python3 数据类型
1.1 数字
例如:1,2,3,4等
1.2 int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
1.2.1 long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
1.3 float(浮点型)
有理数:实数,虚数。
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
1.4 复数
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
1.5 布尔值
真或假 True or False
1 或 0
1.6 字符串
"python3"
1.6.1 字符串的拼接(“+”)
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,数据量小还可以这么干,如果数据量非常大,没必要单独在拷贝一份相同的数据。
1.6.2 字符串格式化输出(%占位符,{}占位符,format()方法)
name = "python3"
print ("This is %s " % name)
print ("This is %s " % name)
注意:%s,字符串,%d,数字,%f,浮点数
{name = "python3"}
print('I\'m {},{}'.format('python3','Welcome to my space!'))
1.7 python数据类型之 列表(list)
例子:
names = ['python2','python2.7','python3','python3.6']
print(names)
print(names)
1.7.1 select 查询 切片
print(names[-4:])
print(names[:])
print(names[:-1])
print(names[::-1])
print(names[1:2])
print(names.index('python2'))
print(names.count('python3.6'))
1.7.2 insert 插入
names.append(1)
names.insert(1,"pth")
1.7.3 update 更新
names[1]="py"
names[:]="py"
1.7.4 del 删除
del names[1]
del names
names.pop()
names.pop(1)
names.remove(names[1])
names.remove(“python2”)
1.8 python数据类型之 元组(tuple)
例子:
names = ('python2','python2.7','python3','python3.6','python3.6')
names.count("py") ### 统计py出现的次数
print(names.index('python2.7')) ###返回下标值
1.9 python数据类型之 列表(字典)
例子:
names = {'python2','python2.7','python3','python3.6','python3.6'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.clear())
#输出:None
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
stu2 = stu.copy()
print(stu2)
name = ['tom','lucy','sam']
print(dict.fromkeys(name))
print(dict.fromkeys(name,25)) #指定默认值
#输出:{'tom': None, 'lucy': None, 'sam': None}
# {'tom': 25, 'lucy': 25, 'sam': 25}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.get('num2'))
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.keys())
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.valuses())
#输出:Lucy
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.items())
#输出:dict_items([('num2', 'Lucy'), ('num3', 'Sam'), ('num1', 'Tom')])
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.keys())
#输出:dict_keys(['num3', 'num1', 'num2'])
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.pop('num2')
print(name,stu)
#输出:Lucy {'num1': 'Tom', 'num3': 'Sam'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.popitem()
print(name,stu)
#输出:('num2', 'Lucy') {'num3': 'Sam', 'num1': 'Tom'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.setdefault('num5')
print(name,stu)
#输出:None {'num1': 'Tom', 'num2': 'Lucy', 'num5': None, 'num3': 'Sam'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
stu.update({'num4':'Ben'})
print(stu)
#输出:{'num2': 'Lucy', 'num3': 'Sam', 'num1': 'Tom', 'num4': 'Ben'}
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.clear())
#输出:None
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
stu2 = stu.copy()
print(stu2)
name = ['tom','lucy','sam']
print(dict.fromkeys(name))
print(dict.fromkeys(name,25)) #指定默认值
#输出:{'tom': None, 'lucy': None, 'sam': None}
# {'tom': 25, 'lucy': 25, 'sam': 25}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.get('num2'))
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.keys())
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.valuses())
#输出:Lucy
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.items())
#输出:dict_items([('num2', 'Lucy'), ('num3', 'Sam'), ('num1', 'Tom')])
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
print(stu.keys())
#输出:dict_keys(['num3', 'num1', 'num2'])
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.pop('num2')
print(name,stu)
#输出:Lucy {'num1': 'Tom', 'num3': 'Sam'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.popitem()
print(name,stu)
#输出:('num2', 'Lucy') {'num3': 'Sam', 'num1': 'Tom'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
name = stu.setdefault('num5')
print(name,stu)
#输出:None {'num1': 'Tom', 'num2': 'Lucy', 'num5': None, 'num3': 'Sam'}
stu = {
'num1':'Tom',
'num2':'Lucy',
'num3':'Sam',
}
stu.update({'num4':'Ben'})
print(stu)
#输出:{'num2': 'Lucy', 'num3': 'Sam', 'num1': 'Tom', 'num4': 'Ben'}
PS:注意copy 和deepcopy的区别,update和setdefault的区别。
二、python3 数据运算
算数运算:
+
-
*
/
%
**
//
比较运算:
==
!=
<>
<
>
<=
>=
赋值运算:
=
+=
-=
*=
/=
%=
**=
//=
+
-
*
/
%
**
//
比较运算:
==
!=
<>
<
>
<=
>=
赋值运算:
=
+=
-=
*=
/=
%=
**=
//=
逻辑运算:
and
or
not
成员运算:
in
not in
身份运算:
is
is not
位运算:
& 交 与
|| 并 或
^ 异或
~ 取反
>> 左移动
<< 右移动
#!/usr/bin/env python
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c
c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c
c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1
print "Line 3 - Value of c is ", c
c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c
c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c
c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c
三、python3 控制循环表达式
3.1 if-else
场景一、用户登陆验证
# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
username = input("输入用户名:")
password = input("输入密码:")
if username == "python3" and password == "python3":
print ("欢迎,%s!", % username)
else
print ("error username or password")
#!/usr/bin/env python
# -*- coding: encoding -*-
import getpass
name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
if name == "python3" and pwd == "python3":
print("欢迎,%s!", % username)
else:
print("用户名和密码错误")
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
username = input("输入用户名:")
password = input("输入密码:")
if username == "python3" and password == "python3":
print ("欢迎,%s!", % username)
else
print ("error username or password")
#!/usr/bin/env python
# -*- coding: encoding -*-
import getpass
name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
if name == "python3" and pwd == "python3":
print("欢迎,%s!", % username)
else:
print("用户名和密码错误")
PS:注意缩进格式。
3.2 if elif else
场景二、猜年龄游戏
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age = 18
user_input = int(input("input your guess num:"))
if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age = 18
user_input = int(input("input your guess num:"))
if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")
count = 0
while True:
print("一直会循环99次",count)
count +=1
if count == 100:
print("测试通过")
break
while True:
print("一直会循环99次",count)
count +=1
if count == 100:
print("测试通过")
break
3.4 for
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i )
for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i )