day3:数据类型

一、数据分不同类型的原因:因为数据是用来表示状态的,不同状态需要用不同类型的数据去表示。

二、数据类型的分类:数字、字符串、列表、元组、字典、集合。

 三、基础数据类型:

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\t'
a2 = "hqw\t"
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

复数之间是不能比较大小的

 

posted on 2017-10-23 20:28  卖火柴的嫩火柴  阅读(198)  评论(0编辑  收藏  举报

导航