一、数据分不同类型的原因:因为数据是用来表示状态的,不同状态需要用不同类型的数据去表示。
二、数据类型的分类:数字、字符串、列表、元组、字典、集合。
三、基础数据类型:
1、数字int:主要用于计算。
#bit_length()当十进制用二进制表示时,转换成二进制时最少使用的位数 a=3 b=6 data=a.bit_length() data1=b.bit_length() print(data,data1)
2、bool值:只有2种:False 0和True 1.
3、字符串str
3.1字符串的索引与切片
索引就是下标,字符串组成的元素从第一个开始索引为0,之后索引依次递增。
a='dkajhskdjhs' print(a[0]) print(a[1]) print(a[2]) print(a[3]) print(a[4])
切片就是通过索引(起始索引位置:最后索引位置:步长)来截取字符串的一段,但是截取出来的字符串是一个新的字符串,切片对原字符串没有影响。
a='hshdkjhwuhiuwi' print(a[0:3]) # 从索引为0的一直到索引为2的 print(a[2:5]) # 从索引为2的一直到索引为4的 print(a[0:]) #默认从索引0切片到最后 print(a[0:5:2]) #取从索引0开始到索引4的字符,且是每两个字符取一个 print(a[0:-1]) #其中-1就是指最后一个字符,即从第一个开始切片到倒数第二个截止 print(a[-3:-5:-1]) #反向加步长,即从右到左的第三个切片到第四个
3.2字符串常用方法:
1、replace 替代
replace(old,new,numble) #numble是指替换的次数
a='刘奶奶找牛奶奶借榴莲牛奶,但是牛奶奶没有榴莲牛奶借给刘奶奶!' print(a.replace(爷爷,奶奶)) print(a.replace(爷爷,奶奶,3))
#结果:刘爷爷找牛爷爷借榴莲牛奶,但是牛爷爷没有榴莲牛奶借给刘爷爷!
#刘爷爷找牛爷爷借榴莲牛奶,但是牛爷爷没有榴莲牛奶借给刘奶奶!
2、starswith() # 以...为开始。返回的是bool值。
a='djhdiudiuhdih' b=a.startswith('d') c=a.startswith('dh') print(b,c) #结果True False 是将字符dh看做一个整体。
3、endswith() #以...为结束。返回的是bool值。
a='djhdiudiuhdih' b=a.endswith('h') c=a.endswith('dh') print(b,c) #结果True False 是将dh看做一个整体
4、center() #居中,默认填充空格,也可以自己设定填充的内容例如a.center(20,*)就是以*来填充a左右两边。
a='gdjhasgd' print(a.center(20)) #结果 gdjhasgd
5、find()寻找元素下标,如果字符串中有多个则只输出该元素第一次出现时的下标。当找不到元素时返回值为-1。
a='sdidiuskldj' print(a.find('d')) print(a.find('u'))
print(a.find('g'))
#结果1 # 5
# -1
6、index() 与find()用法一样,只是find()在找不到元素时返回值为-1,index()在找不到元素时会报错,没有返回值。
a='sdidiuskldj' print(a.index('d')) print(a.index('u')) print(a.index('g')) #结果1 #Traceback (most recent call last): #5 #File "C:/Pythonbc/课堂/day5.py", line 19, in <module> #print(a.index('g')) #ValueError: substring not found
7、capitalize()将字符串的首字母变成大写,其它的变成小写。
a='sdidiuskldj' print(a.capitalize()) #结果 Sdidiuskldj
8、split():以什么分割,最终形成一个不含该分割元素的列表。
#以i为分隔符将字符串分割成一个列表
a='sdidiuskldj' print(a.split('i')) #结果 ['sd', 'd', 'uskldj']
9、strip() 去除两边的空格,但不能去除字符串中间的空格。
a=' sdidiusk ldj ' print(a.strip()) #结果:sdidiusk ldj
10、lstrip() 去除左边的空格。
a=' sdidiusk ldj ' print(a.lstrip()) #结果:sdidiusk ldj
11、rstrip() 去除右边的空格。
a=' sdidiusk ldj ' print(a.rstrip()) #结果: sdidiusk ldj
12、*******is系列:
a='shk2798372shduh' print(a.isdigit()) # 判断字符串是否只由数字组成 print(a.isalnum()) # 判断字符串是否由字母或数字组成 print(a.isalpha()) # 判断字符串是否只由字母组成 # 结果: # False # True # False
13、count() 数字符串中元素出现的个数,可以切片。
a='shk27h98h3h72shduh' print(a.count('h'))
#结果:6
a='shk27h98h3h72shduh' print(a[0:8:2].count('h')) #从'sk79'之中数出h的个数 print(a[0::2].count('h')) #从'sk79hh2hu'中数出h的个数 #结果:0 # 3
14、swapcase() :大小写翻转:即将大写转换成小写,将小写转换成大写。
a='dhhDHadSDH67238' print(a.swapcase()) print(a[0::2].swapcase()) #结果:DHHdhADsdh67238 # DHhDd628
15、title() :将每个单词的首字母变成大写,单词与单词之间默认是以空格为分界的,也可以是逗号或其他的特殊字符。
a='hight short,bian/fu;xia|charry' print(a.title())
print(a[0:9].title())
#结果:Hight Short,Bian/Fu;Xia|Charry
# Hight Sho
16、expandtabs() :将tabe前的补全,默认tabe前不足八位的补全至八位,若多于八位且小于16位,则补全至16位。
a='j dh ' a2 = "hqw " print(a.expandtabs()) r= a2.expandtabs() print(r) #结果:j dh qw
17、format() :格式化输出。
①第一种:有对应顺序,不可调换。
people='name:{},sex:{},high:{}'.format('alix','不详','和老王一样') print(people) #结果:name:alix,sex:不详,high:和老王一样
②第二种:可重复使用,但是必须要按顺序使用。
people='name:{0},sex:{1},high:{2},name:{0},头发数量:{3}'.format('jinxin','不详','150cm','几乎没有') print(people) #结果:name:jinxin,sex:不详,high:150cm,name:jinxin,头发数量:几乎没有
③第三种:后面的format可以打乱顺序。
people='name:{name},sex:{sex},high:{high}'.format(name='jinxin',high=150,sex='女') print(people) #结果:name:jinxin,sex:女,high:150
18、upper() :将字符串中的字母全部转换成大写。
a='dhjkh3798279iuiujl' print(a.upper()) #结果:DHJKH3798279IUIUJL
19、lower() :将字符串中的字母全部转换成小写。
a='JKSHDKJH73987398 389SKJHDHSD' print(a.lower()) #结果:jkshdkjh73987398 389skjhdhsd
举例:
c='hsks' your_c=input('请输入验证码,不区分大小写!') if your_c.upper()==code.upper(): print('输入正确,登陆成功!') else:print('请重新输入!') #结果请输入验证码,不区分大小写!HSKS #输入正确,登陆成功!
20、for循环。for 变量 in 可迭代对象。但是只遍历一次,适用于有限循环。
a='jsdg82jhsd' for i in a: print(i) #将a中的元素一个一个打印出来
s='hjh3hjkh4hkj89dih' count=0for i in s: if i.isdigit(): count+=1 else:print(666)print(count)#若i是数字,则count+1,否则输出666,最后输出count(即字符串中的数字的个数)
浮点型:
浮点数即为小数
浮点数是浮动的
1.2===》12*0.1 1.2===》0.12*10
复数:a+bj或a+bJ,其中j不区分大小写
其中j的平方是-1
复数之间是不能比较大小的