Title

基本数据类型及部分内置方法一

基本数据类型及内置方法

一、整型和浮点型

1.整型

用途:一般用于定义整数,例如年龄,身份证号,QQ号等

定义方法:age = 18 (本质是age = int(18))

进制之间的转换:

  • 二进制转十进制

    110--->1 * (2 ** 2) + 1 * (2 ** 1) + 0 * (2 ** 0) = 4 + 2 + 0 = 6

    内置方法:print(int("110",2))

  • 八进制转十进制

    123---->1 * (8 ** 2) + 2 * (8 * * 1) + 3 * (8 ** 0) = 64 + 16 + 3 = 83

    内置方法:print(int("123",8)

  • 十六进制转十进制

    321---> 3 * (16 ** 2) + 2 * (16 ** 1) + 1 * (16 ** 0) = 768 + 32 + 1 = 801

    内置方法:print(int("321",16))

  • 十进制转二进制

    内置方法:print(bin(100)) # 0b1100100

  • 十进制转八进制

内置方法:print(oct(100)) # 0o144

  • 十进制转十六进制

    内置方法: print(hex(1000)) # 0x 3e8

==============类型总结=================

有序or无序 无序

可变or不可变 int整型是不可变类型

存一个值or多个值 存一个值

=====================================

注意:有索引的类型都是有序的,不能索引的都是无序的;

值变id不变就是可变类型

值变id也变就是不可变类型

=====================================

2.浮点型

用途:用于记录小数,例如身高,体重,薪资等

定义方式:height = 1.8 (本质是height = float(1.8))

注意:字符串里面如果是浮点型不能直接转整型,需要先转浮点型再转整型

示例:
   s1 = '1.0'
   f1 = float(s1)
   a1 = int(f1)
   print(a1)
   
   

==============类型总结=================

有序or无序 无序

可变or不可变 不可变类型

存一个值or多个值 存一个值

=====================================

二、字符串

用途:用于存储一些描述型信息

定义方式:用单引号,双引号,单双三引号都可以定义字符串,但是注意不能混用

补充:字符串前面加一个小写的r代表转义,表示可以将字符串李面特殊功能的符号转成没有意义

常用方法

  • str()可以将任意内容定义成字符串格式

  • 索引取值(可以正反方向取值)

s1 = 'hello world' 
print(s1[4])   # 正向取
print(s1[-7])  # 反向取
  • 索引切片:截取字符串中的一小段字符串

s1 = 'hello world'
print(s1[2:5]) # 第二位到第五位之间的所有元素,注意顾头不顾尾
print(s1[4:])      # 第四位后面的所有元素
print(s1[:5])      # 第五位前面的所有元素
print(s1[0:-2:2])  # 参数意义:start,stop,step
print(s1[::-1])    # 反向排序
  • 成员运算:in not in

s1 = 'hello world'
print("o" in s1)   # 如果'o'在s1里面则返回True,否则是False
  • .strip:表示去除字符串左右两边的空格,字符串中间的不算

name = input(">>:").strip()
print(len(name))


a1 = "$$$jiang$$$"
print(a1.strip("$"))   # 表示指定字符删除
  • split:切分,对字符串进行切分,可以指定切分的分隔符,返回是一个列表

s1='hello world'
print(s1.split())

输出结果:['hello', 'world']
   
   
括号内指定分隔字符,则按照括号内指定的字符切割字符串
s2 = '127.0.0.1'
print(s2.split('.'))  
['127', '0', '0', '1']  # 注意:split切割得到的结果是列表数据类型

a1 = r'sean\18\male' # 反斜杠类型要先转义
print(a1.split('\\')) # 并且要双反斜杠
  • len ():表示获取当前数据中的元素的 个数

a1 = 'hello'
print(len(a1))

5
  • for:表示循环

    一般用法for 变量 in 容器类型 ,

    例如

    a1 = 'hello'

    for i in a1

  • strip,rstrip,lstrip

    和strip一样表示去字符串两边的空格或其他符号,但是rstrip表示去除的是左边的,lstrip表示去除的是右边的

  • lower\upper :表示将字符串全部小写或全部大写

    s1 = 'Hello world'
    print(s1.upper())
    print(s1.lower())
  • startswith\endswith:判断当前字符串是否以什么什么开头或结尾,返回值一定是True或者False

    s1 = 'Hello world'
    print(s1.startswith("He"))
    print(s1.endswith('ld'))
  • .format:字符串格式化

    name = 'sean'
    age = 19

    print("你的名字是:",name,"你的年龄是,",age)

    print("你的名字是:{},你的年龄是:{}".format(name,age))

    print("你的名字是:{1},你的年龄是:{0}".format(name,age))

    print("你的名字是:{name},你的年龄是:{age},{gender}".format(age=age,name=name,gender='male'))
  • f-string:也是表示字符串格式化,通过大括弧解释变量,在字符串前面一定要加个小写的r(python3.6之后才有的特性)

print(f"你的名字是:{name},你的年龄是:{age}")

  • split\rsplit:split默认表示从左开始切分,rsplit表示从右开始切分,

s1 = "name,age,gender"

print(s1.split(",",1))  # 1表示指定切分的次数
  • join:表示将列表、元祖或者字典中的每个元素按照jion前面字符串中的分隔符进行拼接,结果依然是原类型

l1 = ['sean','18','male']

print("|".join(l1))
  • replace:将字符串中的元素进行替换,参数表示先老值,再新值

print(s1.replace("sean",'大象'))

注意:替换后的元素并不能用于之后的计算

s1 = '1,2,3,'
s1.replace('1','5')
print(s1)

输出结果:
1,2,3,

 

 

 

  • isdigit() :判断当前字符串中的数据,是否是一个数字,返回布尔值

score = input("please input your score:")

if score.isdigit():
   score = int(score)
   if score >= 90:
       print('优秀')
else:
   print("输入错误")

需要了解的知识点

find\rfind: 查找当前字符串中某个元素的位置,返回索引,找不到返回-1

s1 = '你今天吃饭吃了吗?'

print(s1.find("?",))

index\rindex:查找当前字符串中某个元素的位置,返回索引,找不到返回异常

print(s1.index("?"))

count: 统计当前字符串中某一个元素的个数

print(s1.count("吃"))

print(s1.count("吃",1,6)) # 统计在1~6范围内出现的次数

  • center\ljust\rjust\zfillprint :表示填充

print("欢迎光临".center(30,"")) # 总宽度30,不够左右填充
print("欢迎光临".ljust(30,"-")) # 总宽度30,不够右边填充
print("欢迎光临".rjust(30,"-")) # 总宽度30,不够左边填充
print("欢迎光临".zfill(50))   # 总宽度为50,字符串右对齐显示,不够用0填充
  • expandtabs:表示对字符串进行分割

s1 = """
sean\t18\tmale\t     # \t表示制表符
tank\t84\tfemale\t
"""
print(s1.expandtabs())  # 修改制表符代表的空格数,默认表示8
print(s1.expandtabs())

5.is数字系列

num1 = b'4'    #  bytes 

num2 = u'4'      #unicode,python3中无需加u就unicode

num3 = '四'        #中文数字

num4 = 'Ⅳ'       #罗马数字

# isdigt:bytes,unicode
>>> num1.isdigit()
True
>>>num2.isdigit()
True
>>> num3.isdigit()
False
>>> num4.isdigit()  
False

# isdecimal:uncicode (bytes类型无isdecimal方法)
>>> num2.isdecimal()  
True
>>> num3.isdecimal()  
False
>>> num4.isdecimal()  
False

#isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)
>>> num2.isnumeric()  
True
>>> num3.isnumeric()  
True
>>> num4.isnumeric()  
True

# 三者不能判断浮点数
>>> num5 = '4.3'
>>> num5.isdigit()
False
>>> num5.isdecimal()
False
>>> num5.isnumeric()
False

 

 

===============类型总结===================

有序or无序 : 有序

可变or不可变 : 不可变类型

一个值or存多个值 存一个值

 

值变id不变就是可变类型

值变id也变就是不可变类型存

三、列表

用途:用于存一个或多个不同类型的值

定义方式:通过中括号存值,每个值之间通过逗号进行分割

优先掌握的知识点:

  • 索引取值,索引切片:正反都可以,不仅可以取还可以存,类似于字符串

l1 = [1, 2, 3, 4,5]
print(l1[2])
l1[2] = 222
print(l1)
  • append():追加值,注意只能添加到列表的最后一位,添加什么类型就加什么类型,一次性只能添加一个值

l1 = [1, 2, 3, 4,5]
l1.append(10000)
print(l1)
l1.append([9,0])  # 添加的是列表打印的也是列表
print(l1)


输出结果:
[1, 2, 3, 4, 5, 10000]
[1, 2, 3, 4, 5, 10000, [9, 0]]
  • insert():插入值,通过索引指定插入的位置

l1 = [1, 2, 3, 4,5]
l1.insert(3,999)
print(l1)

结果:[1, 2, 3, 999, 4, 5]
  • extend(): 一次性在列表尾部添加多个元素 ,可以传入值为可迭代对象(元组,列表,字符串,集合,字典添加的是key)(ID不变)

l1 = [1, 2, 3, 4,5]
l1.extend({'key1':6,'key2':7,'key':8})
l1.extend('你好帅')
print(l1)
输出结果:
[1, 2, 3, 4, 5, 'key1', 'key2', 'key', '你', '好', '帅']
  • remove : 指定值删除,比较彻底

    l1 = [1, 2, 3, 4,5]
    l1.remove(3)
    print(l1)

    输出结果:[1, 2, 4, 5]
  • pop():不传值,默认从最后开始一个一个删,但是可以指定索引删除,并且pop删除的值可以返回打印出来(通过赋值的方式)

l1 = [1, 2, 3, 4,5]
val = l1.pop(2)
print(l1)
print(val)
l1.pop()
print(l1)
l1.pop()
print(l1)
l1.pop()
print(l1)

输出结果:
[1, 2, 4, 5]
3
[1, 2, 4]
[1, 2]
[1]

 

posted @ 2019-11-05 22:35  Mr江  阅读(171)  评论(0编辑  收藏  举报