python数据类型

python数据类型

# 拉取最新的数据
git pull 仓库 分支
git pull teacher master

python数字类型

img

int 整型

# 整型,表示的范围无穷大
a = 1
print(a, "是", type(a), "类型")
a = -1
print(a, "是", type(a), "类型")
# 2的10次方
a = 2**10
print(a, "是", type(a), "类型")

img

进制
# 进制 print进行输出时,默认情况是以十进制的形式输出
# 二进制(0,1)
a = 0b10101
print(a, "是", type(a), "类型")

# 十六进制(0-9,a-f)
a = 0x1fb
print(a, "是", type(a), "类型")

# 八进制(0-7)
a = 0o127
print(a, "是", type(a), "类型")

img

进制转换

返回的都是字符串类型

将任意类型变量强制转换为二进制

# 进制转换 bin,oct,hex
# bin 将任意类型转换为二进制
help(bin)
# bin(number) =>二进制字符串
a = 10
print(a,"转换成二进制的结果:",bin(a))
a = 0x10
print(a,"转换成二进制的结果:",bin(a))

img

返回二进制字符串

将任意类型变量强制转换为八进制

# oct 将任意类型转换为八进制
help(oct)
a = 34
print(a,"转换成八进制的结果:",oct(a))
a = 0b11101001
print(a,"转换成八进制的结果:",oct(a))

img

返回八进制字符串

将任意类型变量强制转换为十六进制

# hex 将任意类型转换为十六进制
help(hex)
a = 34
print(a,"转换成十六进制的结果:",hex(a))
a = 0b11101001
print(a,"转换成十六进制的结果:",hex(a))

img

返回十六进制字符串

将任意类型变量强制转换为十进制

int(str,base) base没有指定时,默认为十进制

int(1.1) 将浮点数据转换为int型

返回int类型

a = 10
# a_oct是八进制字符串
a_oct = oct(a)
print(a_oct)

# help(int)
# 将八进制字符串强制转换为十进制,必须指定base的值,表示需要转换的变量是几进制
# base默认为10
a_int = int(a_oct, base=8)
print("结果是", a_int)
a_int = int(123)
print("结果是", a_int)
a_int = int('1010', base=2)
print("结果是", a_int)
a_int = int('0b1010', base=2)
print("结果是", a_int)

img

练习

img

print("计算两数之和")
a = input("请输入数字a:")
b = input("请输入数字b:")
print("a + b = ", int(a) + int(b))
print("进制转换器")
number = int(input("请输入一位10进制数:"))
print(number, "的二进制是", bin(number))
print(number, "的八进制是", oct(number))
print(number, "的十六进制是", hex(number))

img

float 浮点型

# float数据是不精确的
i = 0.7
i = i - 0.1
print(i)
i = i - 0.1
print(i)
i = i - 0.1
print(i)
i = i - 0.1
print(i)

img

float不精确的原因

"""
10 => 1010 
因为在计算机里面数字都是用二进制保存的,而部分浮点型数据的小数无法用二进制精确的表示出来
条件判断 如果浮点数据变量尽量要使用<或>来进行比较
避免使用 a==0.7
"""
decimal
# Decimal 可以表示精确的浮点数
# 2.1 = > 整数位和小数分别存储 =》 使用整数的存储方式进行存储
# 所以小数部分也可以精确的表示
# 2 =>10
# 1 =>01

from decimal import Decimal
# Decimal 数据类型
# 表示精确的0.1数据
my_dec = Decimal('2.1')
print(my_dec, type(my_dec))
my_dec = Decimal(2.1)
print(my_dec, type(my_dec))
my_dec = Decimal('2.123')
print(my_dec, type(my_dec))
my_dec = Decimal(2.123)
print(my_dec, type(my_dec))

img

complex 复数

复数的基本形式是a+bi,其中a,b是实数,a称为实部,bi称为虚部,i是虚数单位

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数

部分,这里的x和y都是实数。

# 复数
c = 1+1j
print(c,type(c))
d = -3+2j
sum = c + d
print(sum)

img

字符串

字符序列 有顺序的

字符串表示

单引号和双引号定义的字符串必须在一行,三引号定义的字符串可以分布在连续的多行

img

单引号 :‘word’

双引号:“It’s a hot day”

str1 = "It's a hot day!"
print(str1)
str2 = 'It\'s a hot day!'
print(str2)

三引号:

prompt = """
请选择您要选择的业务:
1.存款
2.取款
3.转账
"""
choice = input(prompt)

img

转义字符

img

raw功能的作用:

返回到原始(原生)的字符,

让\t失去代表tab键的功能

# 以反斜杠开头的字符,转义字符
prompt = "请选择您要选择的业务:\n1.存款\n2.取款\n3.转账"
print(prompt)
# r => raw =>原始 => 正则表达式
# 使用r时转义字符不起作用
prompt = r"请选择您要选择的业务:\n1.存款\n2.取款\n3.转账"
print(prompt)

img

字符串取值

下标法
prompt = "Today is a hot day!"
# 下标法取字符 =》 从0开始
# 正下标/索引,负下标/索引
print(prompt[0])    # T
print(prompt[-1])   # !
切片法
# 取多个字符 =》切片 =》str[开始下标:结束下标:步长] 包含开始值,不包含结束值
# 开始下标不写时,默认是字符串的开始
# 结束下标不写时,默认是字符串的结束
# 默认步长为1
print(prompt[0:5])  # Today
print(prompt[-4:-1])  # day
print(prompt[-4:])  # day!
print(prompt[::2])  # 步长为2,跳过一个输出
print(prompt[::3])  # 步长为3,跳过两个输出
# 倒叙输出,步长为负
print(prompt[::-1])

img

练习

取出yadoT

# 如果步长为负,从右到左取值
print(prompt[4::-1])
# 先取出Today,再逆向输出
print(prompt[0:5])
print(prompt[0:5][::-1])

img

字符串序列是不可变的

prompt = "Today is a hot day!"
print(prompt[6])
# 字符串是不可变序列,如果定义好了,不能修改它的值
prompt[6] = 'I'
# TypeError: 'str' object does not support item assignment

级连字符串

如果把两个字符串相邻放着,它们会被python自动级连。

如“cali,”'18’会自动转换为”cali, 18”

info = "cali," "18"
print(info)		# cali,18

img

字符串常用方法

prompt = "Today is a hot day"
# dir => 查看对象有什么方法
print(dir(prompt))
print(dir(str))

# help => 查看方法如何用
# 对象.方法
# help(对象.方法)
help(prompt.title)
print(prompt.title())
判断类

img

img

# str.isdigit ()  字符串中是否只包含数字
# str.isnumeric()   字符串中是否只包含数字,包括中文数字
mystr = '1234'
print(mystr.isdigit())    # T
mystr = '1234一二三q'	   
print(mystr.isnumeric())  # F

mystr = 'Hello world!'
print(mystr.istitle())    # F
print(mystr.isalpha())	  # F
mystr='我是cali'
print(mystr.isalpha())    # T

mystr = "Today is a hot day!"
print(mystr.startswith("Today"))   # T
print(mystr.startswith("hot",11))  # T
print(mystr.endswith("day!"))      # T
统计类

img

mystr = "Today is a hot day"
print(len(mystr))          # 18
print(mystr.count("ay"))   # 2
# 使用index方法时,如果没找到会报错,找到了就返回第一次出现的位置
print(mystr.index('day'))  # 2
# 使用find方法时,如果没找到就返回-1,找到了返回第一次出现的位置
print(mystr.find('cold'))  #-1
转换类

img

img

str = "Today is a hot day!"
print(str.upper())  #TODAY IS A HOT DAY!
print(str.lower())  #today is a hot day!
print(str.title())  #Today Is A Hot Day!
split
# split => 切割字符串 =》默认分隔符为一个或多个空格
str = "cali##18##female"
print(str.split('##'))
# 返回结果为列表
# ['cali', '18', 'female']
join
# join => 拼接字符串
mylist = ['cali', '18', 'female']
# "分隔符".join(列表)
print("##".join(mylist))
strip
# str.strip([string])
# strip 去除首尾指定的字符,默认为空白字符
my_email = " ladfieaf@123.com "
print(my_email.strip())  #ladfieaf@123.com

my_email = "ladfieaf@123.com"
print(my_email.strip("lamo"))   #dfieaf@123.c
练习

img

s = "i,am,lilei"
s1 = s.replace(',', ' ')
print(s1)       # i am lilei
print(s1[-5:])  # lilei
print(s1.upper())   # I AM LILEI
print(s1.lower())   # i am lilei

Python字符串拼接

# join
mylist = ['i', 'love', 'python']
mystr = " ".join(mylist)
print(mystr)

# + 效率差
mystr = ""
for item in mylist:
    mystr = mystr + item
    print(mystr)

Python字符串格式化-%

字符串格式化(%)

基本格式

%[(name)][flags][width].[precision]typecode

- (name):命名

- flags: +,-,’ ‘或0。+表示右对齐;-表示左对齐;’ '为一个空格,表示在正数的左侧填充一个空

格,从而与负数对齐,0表示使用0填充。

- width表示显示宽度

- precision表示小数点后精度

name = "cali"
age = 18
mystr = "%s %s" %(name,age)
print(mystr)    # cali 18
字符串格式化-format

字符串格式化(format)

{变量:[填充字符][对齐方式 <^>][宽度][格式]}

name = "cali"
age = 18
mystr = "{1} {0}".format(name,age)
print(mystr)    # 18 cali
字符串格式化-f
# 推荐 {变量名:[填充字符][对齐方式<^>][宽度][格式]}
# < 向左对齐,^居中对齐,>向右对齐
name = "cali"
age = 18
mystr = f"{name} {age}"
print(mystr)    # cali 18
练习

img

a = "字符串拼接1"
b = "字符串拼接2"
c = a + b
print(c)

c = f"{a}{b}"
print(c)

mylist = [a,b]
c = "".join(mylist)
print(c)

c = ""
for item in mylist:
    c = c + item
print(c)
print(len(c))
print(c[6])

str = "8*y*cali*china**it*soft*linux*python"
mystr = ""
i = 0
for item in str:
    if item == '*':
        i = i + 1
        str = str.replace("*", "")
str = "*"*i + str
print(str)		# ********8ycalichinaitsoftlinuxpython

布尔类型

布尔值(Booleans) 布尔值是一个逻辑值。

取值范围

• 只有 True和 False(真和假)

哪些值布尔值为假

• ‘’, 0, 0.0, (), [],{},None, False

• None是一个特殊的常量,表示一种特殊的数据类型(NoneType)

哪些值布尔值为真

)

mylist = [a,b]
c = “”.join(mylist)
print©

c = “”
for item in mylist:
c = c + item
print©


```python
print(len(c))
print(c[6])

str = "8*y*cali*china**it*soft*linux*python"
mystr = ""
i = 0
for item in str:
    if item == '*':
        i = i + 1
        str = str.replace("*", "")
str = "*"*i + str
print(str)		# ********8ycalichinaitsoftlinuxpython

布尔类型

布尔值(Booleans) 布尔值是一个逻辑值。

取值范围

• 只有 True和 False(真和假)

哪些值布尔值为假

• ‘’, 0, 0.0, (), [],{},None, False

• None是一个特殊的常量,表示一种特殊的数据类型(NoneType)

哪些值布尔值为真

• 除了为假的,其他的都为真

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值