Python基础数据类型之整型,布尔值,字符串

1.数据类型

Python中常用的数据类型有多种,如下:

整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).

  •  int。整型:数字,主要用于运算。1 ,2,3...
  •  bool。布尔:判断真假:True, False.
  •  str。字符串:简单少量的储存数据,并进行相应的操作。name = 'alex',
  •  tuple。元组:只读,不能更改。(1,'xiaobai') 
  •  list。列表:大量有序数据,[1,'ses',True,[1,2,3],{'name':'xiaohei'}]
  •  dict。字典:大量数据,且是关联性比较强的数据  {'name':'xiaohei','age':18,'name_list':['张三','李四']}
  • set。集合:存储大量的数据,{1,2,3}

2.基础数据类型

1. 整型  int

首先要给大家讲下是十进制与二进制之间的转换。

十进制整数转换为二进制整数

  采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

 

 

 42转换二进制为 101010

二进制整数转换为十进制整数

ob0001 1010
 b = 1 * 2**4 + 1 * 2**3 + 0 * 2**2 + 1 * 2**1 + 0 * 2**0
 print(b)  # 26

常用的方法:

bin_lenth   用于十进制数转换成二进制的有效长度

   i = 4      
   print(i.bit_length())  
  #
3
i
= 42 print(i.bit_length())
  #
6

2.布尔

布尔值就两种:True,False。就是反应条件的正确与否。

真   1   True。

假   0   False。

其他数据类型转换成布尔数据的假的数据

整形 :0
字符串 :“”
列表 :[]
元组: ()
字典: {}
集合:set()

 

3.字符串str

  Python中凡是用引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。

1.字符串的切片,索引

  - 对字符串进行索引,切片出来的数据都是字符串类型。

 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

s1 = "蜉蝣及夕而死,夏蝉不知春秋"
print(s1[0])
print(s1[3])
print(s1[5])

# 输出结果为:
蜉
夕
死

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

a = "蜉蝣及夕而死,夏蝉不知春秋"
print(a[0:3])  # print(a[:3]) 从开头开始取0可以默认不写
print(a[2:5])
print(a[:])  # 默认到最后
print(a[:-1])  # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到最后一个元素
print(a[:5:2])  # 加步长
print(a[-1:-5:-1])  # 反向加步长
print(a[-1:-5:-2])  # 反向加步长
print(a[::-1])  # 字符串反转

# 输出结果为:
蜉蝣及
及夕而
蜉蝣及夕而死,夏蝉不知春秋
蜉蝣及夕而死,夏蝉不知春
蜉及而
秋春知不
秋知
秋春知不蝉夏,死而夕及蝣蜉

2.字符串常用的方法

upper() / lower()  大写与小写

v = "qwer"
v2 = v.upper()
print(v2)
# QWER


v = "QWER"
v3 = v.lower()
print(v3)
# qwer 

应用:

username = input("请输入用户名")
password = input("请输入密码")
code = "qwER"
code2 = input("请输入验证码")
if code2.upper() == code.upper():
    if username == "小白" and password == "123":
        print("登录成功")
    else:
        print("用户名密码错误")
else:
    print("验证码输入错误")

startswith() / endswith() 以什么开头/ 以什么结尾,返回布尔值

s = 'taifdsa'
print(s.startswith('t'))
# True
print(s.startswith('tai'))
# True
print(s.startswith('B',3,6))
# False

replace() 替换

# replace参数的定义
replace(需要将要替换的元素,被替换成的元素,控制替换个数)


a = "为了寻找你,我住进了鸟的眼睛,可是我却迷路了"
msg = a.replace("","小白")    # 默认替换全部
print(msg)
# 为了寻找你,小白住进了鸟的眼睛,可是小白却迷路了

a = "为了寻找你,我住进了鸟的眼睛,可是我却迷路了" msg = a.replace("","小白",1) # 控制替换个数 print(msg) # 为了寻找你,小白住进了鸟的眼睛,可是我却迷路了

strip()  去空白;包含空格,\t,\n

s4 = '  \n小白\t'
s5 = s4.strip()
print(s5)
# 小白

s = 're小r白qsd'
s7 = s.strip('reqsd')
print(s7)
# 小r白

s4 = 'rrrreee小r白qsd'
s5 = s4.strip('reqsd')
s6 = s4.strip('qrsed')
print(s5)
print(s6)
# 小r白
# 小r白

split()  分割,默认按照空格分割,返回一个列表

s6 = '西游记 红楼梦 三国演义'
lis = s6.split()
print(lis)
# ['西游记', '红楼梦', '三国演义']

s6 = "西游记,红楼梦,三国演义"
lis = s6.split(",")
print(lis)
# ['西游记', '红楼梦', '三国演义']

s6 = ':barry:nvshen:wu'
print(s6.split(':'))
 # ['', 'barry', 'nvshen', 'wu']
 
可以指定分割的索引位置
s6 = ':barry:nvshen:wu'
print(s6.split(":",2))
# ['', 'barry', 'nvshen:wu']

join()  链接

s6 = "西游记"
msg = "+".join(s6)
print(msg)
# 西+游+记

lis = ['西游记', '红楼梦', '三国演义']  # 列表的元素不能出现整形,嵌套
s1 = "+".join(lis)
print(s1)
# 西游记+红楼梦+三国演义

dic = {"吴承恩": "西游记","曹雪芹":"红楼梦"}  # 字典的键不能是整形
msg = "+".join(dic)
print(msg)
# 吴承恩+曹雪芹

count()   元素出现的个数

s8 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa'    
# 计算a在s8中总共有多少个 
print(s8.count('a'))
# 5

len()  计算字符串的长度

s8 = 'sdfgsf'
print(len(s8))

format()  格式化输出

# 第一种用法:
msg = '我叫{}今年{}性别{}'.format('小白',25,'')
print(msg)

#第二种用法:
msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('小白', 25,'')
print(msg)

#第三种用法:
a = 100
msg = '我叫{name}今年{age}性别{sex}'.format(age=18,sex='',name='小白')
print(msg)

is 系列(返回布尔值)

name = 'xiaobai123'
print(name.isalnum())   #字符串由字母或数字组成
print(name.isalpha())   #字符串只由字母组成
print(name.isdecimal()) #字符串只由十进制数组成


s1 = input('请输入您的金额:').strip() if s1.isdecimal(): print(int(s1)) else: print('输入有误')

find 与 index:

s1 = 'barry'
find :通过元素找索引,找到第一个就返回,找不到返回-1
index:通过元素找索引,找到第一个就返回,找不到报错
print(s1.find('a'))
# 1
print(s1.find('r')) # 2
print(s1.find('o')) # -1
print(s1.index('r')) # 2
print(s1.index('o')) # 报错 substring not found

待续

posted @ 2019-12-29 16:28  菜鸟学小白  阅读(451)  评论(0编辑  收藏  举报
ヾ(≧O≦)〃嗷~