一、 运算符
1、算数运算:
ps:
示例1:
python2.7示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#算数运算符
from future import pision #python2.x必须引入pision模块。python3.x不需要。
val = 9 / 2
print(val)
执行结果:
1 4.5
python3.x示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#算数运算符
val = 9 / 2
print(val)
执行结果:
1 4.5
2、比较运算:
ps:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
start = 1
start = start + 1 #加 减乘 除 一样
print(start)
执行结果:
1 2
4、逻辑运算:
示例
>>> a = 0
>>> if a:print(‘a’)
…
>>> a = 1
>>> if a:print(‘a’)
…
a
>>> false
false
或
>>> true
true
5、成员运算
ps:
in 的示例:
指的是这个sb是不是在上面那个字符串中,在就返回ture
方法一:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
name = “郑建文”
if “建文” in name:
print(‘ok’)
else:
print(‘error’)
执行结果:
1 ok
方法二:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#成员运算符
s = “alex sb”
ret = “sb” in s #指的是这个sb是不是在上面那个字符串中,在就返回true
print(ret)
执行结果:
1 true
示例三:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#成员运算符
s = “alex sb”
ret = “rsb” in s #指的是这个rsb是不是在上面那个字符串中,如果不在就返回false
print(ret)
执行结果:
1 false
not in示例
示例一:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
name = “郑建文”
if “文1” not in name:
print(‘1’)
else:
print (‘2’)
执行结果:
1 1
示例二:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#粒度大
li = [‘alex’,’eric’,’rain’]
ret = “alex” not in li #在里面就是false,不在里面就是ture
print(ret)
执行结果:
1 false
6、三元运算
1 result =值1 if 条件 else 值2
如果条件为真:result =值1
如果条件为假 :sesult =值2
示例
>>> a,b,c = 1,3,5
>>> d =a if a >b else c
>>> d
5
>>> d = a if a >> d
1
>>> if a >b:d=a
… else:d=c
…
7、身份运算
#!/usr/bin/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
print “line 3 – value of c is “, c
c = ~a; # -61 = 1100 0011
print “line 4 – value of c is “, c
c = a > 2; # 15 = 0000 1111
print “line 6 – value of c is “, c
九、运算符优先级
说明:字符串转(string)转成bytes类型,再转成string。
示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: huzhihua
#import login
msg = “我爱北京天安门”
print(msg)
print(msg.encode(encoding=”utf-8″))
print(msg.encode(encoding=”utf-8″).decode(encoding=”utf-8″))
执行结果:
我爱北京天安门
b’\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8′
我爱北京天安门
十一、进制
16位数表示方法
二、基本数据类型
1、数字:1231
ps:
age = 18
2、int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,而.在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
ps:
数字 int ,所有的功能,都放在int里
a1 = 123
a1 = 4561、将字符串转换为数字#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
a = “123”
print(type(a),a) #输出他是什么类型,并转换为数字
b = int(a)
print(type(b),b) #输出他是什么类型,并转换为数字
执行结果:
(, ‘123’)
(, 123)2、把这个字符串以16进制的方式转成10进制#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#二进制表示方法:
#00 10 11 #二进制
#1 2 3 #十进制
#把这个字符串以16进制的方式,转成10进制
num = “0011” #字符串
int(num)
v = int(num, base=2) #base=2 以二进制的方式进行
v = int(num, base=16) #base=16 就是转成16进制
print(v)
执行结果:
1 17
3、将16进制转成10进制
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#把b以16进制的方式转成10进制
num = “b”
v = int(num,base=16)
print(v)
执行结果:
1 11
常识:
1个字节=8位
1个汉字=3个字节
gb2312=2汉字
utf-8=3汉字(表示:最少3个汉字)
4、当前数字的二进制,至少用n位表示#当前数字的二进制,至少用n位表示
age = 5
# 1 1 #表示二进制,用几位表示
# 2 10
# 3 11
# 4 100
# 5 101
r = age.bit_length()
print(r)
执行结果:
1 3 #表示位数
2、字符串:
表示方法:
a1 = “asdf” #第一种 “”
a1 = ‘ffa’ #第二种‘’
a1 =”””assdfafdsafdas””” #第三种“““ ”””
1、首字母大写:capitalize()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#首字母大写
test = “alex”
v = test.capitalize() #首字母大写
print(v)
执行结果:
1 alex
2、功能:所有变小写
二者对比:casefold更牛逼,很多未知的对相应变小写
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#所有变小写,casefold更牛逼,很多未知的对相应变小写
test = “alex”
v1 = test.casefold()
print(v1)
v2 = test.lower()
print(v2)
执行结果:
1 alex2 alex
3、设置宽度并将内容居中
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
# 3、设置宽度并将内容居中
# 20代指总长度
# * 代表空白未知填充 ,一个字符,可有可无
a1 = “alex”
ret = a1.center(20, ‘*’)
print(ret)
执行结果:
1 ********alex********
4、去字符串中寻找,寻找子序列出现的次数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
# 去字符串中寻找,寻找子序列出现的次数
a1 = “alex is alph”
ret = a1.count(“a”)
ret = a1.count(“al”,0,10)
print(ret)
执行结果:
1 2
5、查看是否已什么结尾
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
# 查看是否已什么结尾
# 查看是否已什么开始
name = “xiaoming”
v = name.endswith(‘g’)
v1 = name.startswith(‘e’)
print(v)
print(v1)
执行结果:
1 true2 false
6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
# 6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1
name = “xiaoming”
v = name.find(‘ao’,2,6)#从那个位置开始找 前面的是大于等于 后面是小于
# print(v)
name = “xiaoming” #index 用法同find 但是如果index找不大值直接报错
v = name.index(“ming”)
print(v)
执行结果:
1 4
7、格式化输出,将一个字符串中的占位符替换为指定的值
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#格式化输出,将一个字符串中的占位符替换为指定的值
test = ‘i am {name},age {a}’
print(test)
v = test.format(name = ‘xiaoming’,a = 24)
print(v)
test = ‘i am {0},age {1}’
print(test)
v = test.format(‘xiaoming’,24)
print(v)
执行结果:
i am {name},age {a}
i am xiaoming,age 24
i am {0},age {1}
i am xiaoming,age 24
9、test.format_map的方法类似format 区别如下图
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#test.format_map的方法类似format 区别如下图
test = ‘i am {name},age {a}’
print(test)
v = test.format(name = ‘xiaoming’,a = 24)
v1 = test.format_map({“name”:”xiaoming”,”a”:19})
print(v)
print(v1)
执行结果:
i am {name},age {a}
i am xiaoming,age 24
i am {0},age {1}
i am xiaoming,age 24
9、判段字符串中是否只包含字母和数字
name = “uuuuaa888”
v = name.isalnum()
print(v)
执行结果:
1 true
10、expandtabs,断句20,\t表示六个字符,不够的空格补齐6个。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
#expandtabs,断句20,\t表示六个字符,不够的空格补齐6个。
test = “username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123”
v = test.expandtabs(20)
print(v)
执行结果:
username email password
laiying ying@q.com 123
laiying ying@q.com 123
laiying ying@q.com 123
3、long(长整型)
为什么会有这个概念呢?
因为在python2.2起,如果放置在内存里的数特别大发生溢出,python就会自动将整型数据转换为长整型,但是现在,在python3里就不存在长整型这么一说了,同意都是整型。
4、float(浮点型)
简单理解就是带有小数的数字
5、complex(复数)
复数是由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y呢是复数的虚数部分,这里的x和y都是实数。
5、布尔值(0或1)
就是真和假。
true/false
a4 = true #真
a5 = false #假
7、查看数据类型(type)
>>> type(1)
>>> type(1.2)
>>> type(jixuege)
traceback (most recent call last):
file “”, line 1, in
nameerror: name ‘jixuege’ is not defined
上面报错原因就是没有用双引号引起来,他就不是字符串,而是认为是一个变量。
>>> type(“jixuege”)
三、for和while循环
这里呢就需要涉及到break和continue的区别了。
如何理解呢?
break: 只能跳出当前循环,当前这一套循环就结束了。
continue: 跳出当次循环,然后呢还会去继续下一次别的循环。
for循环示例1:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
for i in range(10):
print(“loop”,i)
执行结果:
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
loop 7
loop 8
loop 9
原理图:
for循环示例2:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
for i in range(0,10,2):
print(“loop”,i)
执行结果:
loop 0
loop 2
loop 4
loop 6
loop 8
原理图:
for循环示例3:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
for i in range(0,10,3):
print(“loop”,i)
执行结果:
loop 0
loop 3
loop 6
loop 9
for循环示例4:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
age_of_oldboy = 56
count = 0
while count age_of_oldboy:
print(“think smaller… “)
else:
print(“think bigger!”)
count +=1
if count == 3:
countine_confirm = input(“do you want to keep guessing..?”)
if countine_confirm != ‘n’:
count = 0
else:
print(“you have tried too many times..fuck off”)
执行结果:
输入三次数字,按回车就继续,按n 就退出。
guess age:1
think bigger!
guess age:23
think bigger!
guess age:3
think bigger!
do you want to keep guessing..?
guess age:1
think bigger!
guess age:2
think bigger!
guess age:3
think bigger!
do you want to keep guessing..?n
you have tried too many times..fuck off
原理:
for循环示例5:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
age_of_oldboy = 56
for i in range(3):
guess_age = int(input(“guess age:”))
if guess_age == age_of_oldboy :
print(“yes, you got it. “)
break
elif guess_age > age_of_oldboy:
print(“think smaller… “)
else:
print(“think bigger!”)
else:
print(“you have tried too many times..fuck off”)
执行结果:
guess age:23
think bigger!
guess age:58
think smaller…
guess age:56
yes, you got it.
原理图:
for循环示例6:
说明:打印五次hehe…
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#author: nulige
for i in range(0,10):
if i 5:
break
执行结果:
————- 0
0
1
2
3
4
5
6
————- 1
0
1
2
3
4
5
6
————- 2
0
1
2
3
4
5
6
————- 3
0
1
2
3
4
5
6
————- 4
0
1
2
3
4
5
6
————- 5
0
1
2
3
4
5
6
————- 6
0
1
2
3
4
5
6
————- 7
0
1
2
3
4
5
6
————- 8
0
1
2
3
4
5
6
————- 9
0
1
2
3
4
5
6
示例2:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#author: nulige
for n in range(4):
print(n)
for j in range(3):
if j >:”).strip()
if choice == “b”:
current_layer = layers[-1]
#print(“change to laster”, current_layer)
layers.pop()
elif choice not in current_layer:continue
else:
layers.append(current_layer)
current_layer = current_layer[choice]
以上就是python学习基础基本数据类型介绍的详细内容,更多请关注 第一php社区 其它相关文章!