python基础数据类型一

一、基础数据类型初始

     int 运算。+ - * / ** %...

    bool :判断,真假,作为条件。

    str.存储少量的数据。'太白','password'...操作简单,便于传输。

    list 列表 [1,2,'alex',{'name':'老男孩'}] 存放大量的数据,大量的数据放在列表中便于操作。

    tuple 元组 只读列表。(1,2,{'name':'老男孩'})

    dict 字典 {'name_list':[nana...]},储存关系型的数据。查询速度非常快,二分查找。

    set 集合。交集,并集,差集....

二、INT型

  

# bit_lenth
i = 4
print(i.bit_length())
# # 转化成二进制的最小位数。
# """
# 1     0000 0001
# 2     0000 0010
# 3     0000 0011
# 4     0000 0100
# """

三、bool型

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

  真 1 True

  假 0 False

  int-->str str(int)

  str-->int int(str)

  int--->bool 0 代表false 非零代表True

  str--->bool 非空 为True ,空字符串就是False

  bool-->str 无意义 ,很少用到

s1 = ''
if s1:
    print(666)
else:
    print(111)
s = str(True)
print(s,type(s))
# 结果
# 111
# True <class 'str'>

四、str型

  一、索引与切片

      

#索引与切片 s[起始索引:截止索引:步长]
s = '老男孩是最好的培训机构'
#索引
s1 = s[0]
print(s1)
s2 = s[2]
print(s2)
s3 = s[-1]
print(s3)
#切片  顾头不顾腚
s4 = s[0:3]
print(s4)
s41 = s[:3]
print(s41)
s5 = s[3:7]
print(s5)
s6 = s[:]
print(s6)
#步长
s7 = s[:5:2]
print(s7)
s8 = s[:7:3]
print(s8)
# 反向步长
s7 = s[-1:-5:-1]
print(s7)

答案:




老男孩
老男孩
是最好的
老男孩是最好的培训机构
老孩最
老是的
构机训培

  二、字符串常用方法

 

s = 'laonanHai'
#*** 首字母大写,其他字母小写
s1 = s.capitalize()
print(s1)

#***全部大写,全部小写
s2 = s.upper()
s3 = s.lower()
print(s2,s3)
code = 'aeQu'.upper()
your_code = input('请输入验证码').upper()
if your_code == code:
    print('验证码输入成功')
s = 'laonanHai'
# * 居中center
s4 = s.center(30)
print(s4)
s4 = s.center(30,'*')
print(s4)

#**大小写翻转
s5 = s.swapcase()
print(s5)
s = 'alex wusir*laonanhai2taibai'
#每个单词的首字母大写(非字母隔开)
s6 =s.title()
print(s6)

s = 'alexlaonanhai'
#***判断以什么为开头,以什么为结尾。
# startswith endswith()
s7 = s.startswith('a')
s71 = s.startswith('al')
s72 = s.startswith('alex')
s73 = s.startswith('alex')
s74 = s.startswith('l', 4)
print(s74)
print(s7,s71,s72,s74)
s = '  laonanhai '
s = '
laonanhai	'
# ***去除首尾的空格,换行符,tab
# 去除左边的空格,换行符,tab   lstrip()
# 去除右边的空格,换行符,tab   rstrip()
#strip()
print(s)
print(s.strip())
print(s.lstrip())
print(s.rstrip())
name = input('请输入用户名:').strip()
if name == 'alex':
    print(666)
s = ',laoxnanhaialexl'
print(s.strip(',lax'))
s = 'alexex'
# *** find  index 通过元素找索引
print(s.find('e'))
print(s.find('e',3))
print(s.find('A'))
# print(s.index('A')) #执行报错
s = 'alexex'
#*** count 寻找元素出现的个数 可切片
print(s.count('e'))
print(s.count('ex'))
a1='ladsfaldfakd000lsd32320'
ret3 = a1.count("a") # 可切片
print(ret3)
#***replace 替换
s = '将发生多了范德萨发范德萨回复'
s1 = s.replace('范德萨', '小粉嫩')
print(s1)
s2 = s.replace('范德萨', '小粉嫩',1)
print(s2)
s3 = s.replace('范德萨', 'sb')
print(s3)

# ***** split 分割  str ---> list
s = 'alex wusir taibai'
print(s.split())
s1 = 'alex,wusir,taibai'
print(s1.split(','))
s2 = 'alexawusirataibai'
print(s2.split('a'))
s3 = 'alexawusirataibai'
print(s3.split('a',1))  # 分割次数


#***** format 格式化输出
#三种用法
#第一种用法:
s = '我叫{},今年{},爱好{}'.format('MT',18,'母牛')
print(s)
#第二种用法
s = '我叫{0},今年{1},爱好{2},我依然叫{0},今年还是{1}'
    .format('MT',18,'母牛')
print(s)
#第三种 键值对
s = '我叫{name},今年{age},爱好{hobby}'.format(age=18, name='MT', hobby='闷儿')
print(s)
name='123a'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
if name.isdigit():
    name = int(name)
    print(name,type(name))
else:
    print('您输入的由非数字元素')

答案:

Laonanhai
LAONANHAI laonanhai
请输入验证码abc
laonanHai
**********laonanHai***********
LAONANhAI
Alex Wusir*Laonanhai2Taibai
True
True True True True

laonanhai
laonanhai
laonanhai

laonanhai
请输入用户名:asb
oxnanhaiale
2
4
-1
2
2
3
将发生多了小粉嫩发小粉嫩回复
将发生多了小粉嫩发范德萨回复
将发生多了sb发sb回复
['alex', 'wusir', 'taibai']
['alex', 'wusir', 'taibai']
['', 'lex', 'wusir', 't', 'ib', 'i']
['', 'lexawusirataibai']
我叫MT,今年18,爱好母牛
我叫MT,今年18,爱好母牛,我依然叫MT,今年还是18
我叫MT,今年18,爱好闷儿
True
False
False
您输入的由非数字元素

五、for用法

  for...else和while...else用法一样:

  都是正常执行完结执行else,非正常退出执行else

s = 'fdsafdsaf'
count = 0
while count < len(s):
    print(s[count])
    count += 1

s = 'fdsafdsaf'
for i in s:
    print(i)

答案:

9
f
d
s
a
f
d
s
a
g
f
d
s
a
f
d
s
a
g

 六、练习题

1,有变量name = "aleX leNb" 完成如下操作:

1)       移除 name 变量对应的值两边的空格,并输出处理结果

2)       移除name变量左边的’al’并输出处理结果

3)       移除name变量右面的’Nb’,并输出处理结果

4)       移除name变量开头的a’与最后的’b’,并输出处理结果

5)       判断 name 变量是否以 "al" 开头,并输出结果

6)       判断name变量是否以”Nb”结尾,并输出结果

7)       将 name 变量对应的值中的 所有的“l” 替换为 “p”,并输出结果

8)       将name变量对应的值中的第一个’l’替换成’p’,并输出结果

9)       将 name 变量对应的值根据 所有的“l” 分割,并输出结果。

10)  将name变量对应的值根据第一个’l’分割,并输出结果。

11)  将 name 变量对应的值变大写,并输出结果

12)  将 name 变量对应的值变小写,并输出结果

13)  将name变量对应的值首字母’a’大写,并输出结果

14)  判断name变量对应的值字母’l’出现几次,并输出结果

15)  如果判断name变量对应的值前四位’l’出现几次,并输出结果

16)  从name变量对应的值中找到’N’对应的索引(如果找不到则报错),并输出结果

17)  从name变量对应的值中找到’N’对应的索引(如果找不到则返回-1)输出结果

18)  从name变量对应的值中找到’X le’对应的索引,并输出结果

19)  请输出 name 变量对应的值的第 2 个字符?

20)  请输出 name 变量对应的值的前 3 个字符?

21)  请输出 name 变量对应的值的后 2 个字符?

22)  请输出 name 变量对应的值中 “e” 所在索引位置?

 1 name = "aleX leNb"
 2 print(name.strip())
 3 print(name.lstrip('al'))
 4 print(name.rstrip('Nb'))
 5 print(name.strip('ab'))
 6 print(name.startswith('al'))
 7 print(name.endswith('Nb'))
 8 print(name.replace('l','p'))
 9 print(name.replace('l','p',1))
10 print(name.split('l'))
11 print(name.split('l',1))
12 print(name.upper())
13 print(name.lower())
14 print(name.capitalize())
15 print(name.count('l'))
16 print(name.count('l',0,4))
17 print(name.index('N'))
18 print(name.find('N'))
19 print(name.find('X le'))
20 print(name[1])
21 print(name[:3])
22 print(name[-2:])
23 place = name.index('e')
24 print(place,"and",name.find( 'e',place+1))

结果:

aleX leNb
eX leNb
aleX le
leX leN
True
True
apeX peNb
apeX leNb
['a', 'eX ', 'eNb']
['a', 'eX leNb']
ALEX LENB
alex lenb
Alex lenb
2
1
7
7
3
l
ale
Nb
2 and 6

获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。

s = 'oldboy'
print(s[:-1])

2,有字符串s = ‘123a4b5c’

1)通过对li列表的切片形成新的字符串s1,s1 = ‘123’

2)通过对li列表的切片形成新的字符串s2,s2 = ‘a4b’

3)通过对li列表的切片形成新的字符串s3,s3 = ‘1345’

4)通过对li列表的切片形成字符串s4,s4 = ‘2ab’

5)通过对li列表的切片形成字符串s5,s5 = ‘c’

6)通过对li列表的切片形成字符串s6,s6 = ‘ba2’

1 s = '123a4b5c'
2 s1 = s[:3]
3 s2 = s[3:-2]
4 s3 = s[::2]
5 s4 = s[1:-1:2]
6 s5 = s[-1:]
7 s6 = s[-3::-2]

3,使用while和for循环分别打印字符串s=’asdfer’中每个元素。

 1 #while
 2 s = 'asdfer'
 3 counte = 0
 4 while counte < len(s):
 5     print(s[counte])
 6     counte += 1
 7 #for    
 8 s = 'asdfer'
 9 for i in s:
10     print(i)

4,实现一个整数加法计算器(两个数相加):

如:content = input(‘请输入内容:’)  # 如用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。

1 content = input('请输入内容:')
2 number = content.split('+')
3 sum = 0
4 for i in number:
5     sum += int(i.strip())
6 print(sum)

5,计算用户输入的内容中有几个整数(以个位数为单位)。

如:content = input(‘请输入内容:’)   # 如fhdal234slfh98769fjdla

1 counte = 0
2 content = input('请输入内容:')
3 for i in content:
4     if i.isdigit():
5         counte += 1
6 print(counte)

明日默写内容:

分别用while,for循环输出字符串s = input(‘你想输入的内容’)的每一个字符。

 1 #while
 2 s = input('你想输入的内容')
 3 counter = 0
 4 while counter < len(s):
 5     print(s[counter])
 6     counter += 1
 7 #for
 8 s = input('你想输入的内容')
 9 for i in s:
10     print(i)
原文地址:https://www.cnblogs.com/qiujie/p/8609175.html