python学习基础基本数据类型介绍

一、 运算符

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社区 其它相关文章!

Posted in 未分类

发表评论