python入门_老男孩_数据类型简介_int/bool/str转换_字符串索引和切片_字符串操作_day3

关键词

  •   数据类型
  •   int, bool, str之间的相互转换
  •   字符串的索引与切片
  •   字符串的操作

数据类型

  int  1 2 3 用于计算

  bool  True  False  用户判断

  str  'haojile'  存储少量数据  进行操作  

  list  ['xiaoming', 123]  存储大量数据

  元祖  ('haojile', 1, 23)

  dict  {'name':'xiaoming', 'age':16, 'sex':'nan'}

  集合  {1, 2, 3, 'asdf’}

int, str, bool之间的相互转化

# int >> str
i = 1
s = str(i)

# str >> int
i = int(str)

# int >> bool 
# 只要是0, False,其他为True
b = bool(i)
print(b)

# 后者效率高
while True:
    pass
while 1:
    pass

# str >> bool
# 非空字符串都是True
s
if s:
    print('你输入的为空,请重新输入')
else:
    pass

字符串的索引和切片

# 字符串的索引与切片
s = 'hello,world'

# 索引
print(s[0])
print(s[2])
print(s[-1])
print(s[-2])

#切片 
print(s[0:5])       #hello
print(s[:])    
print(s[0:0])
print(s[0:5:2]    #[start,end,step]

print(s[4:0:-1]) # olle
print(s[4::-1]) # olleh
print(s[4::-2]) # olh
print(s[-1::-1]) # dlrow,olleh
print(s[::-1])

字符串的操作

  1 # 字符串的操作
  2 s = 'forDIGNITY'
  3 
  4 s1 = s.capitalize()    # 首字母大写
  5 s2 = s.upper()    # 全部大写
  6 s3 = s.lower()    # 全部小写
  7 print(s1, s2, s3)
  8 
  9 # 验证码是否正确,不区分大小写, 三次机会
 10 # verifyCode = 'ABcd'
 11 # i = 0
 12 # while i < 3:
 13 #     temp =  input('请输入验证码: ')
 14 #     if temp.upper() == verifyCode.upper():
 15 #         print('输出正确')
 16 #     else:
 17 #         print('请重新输入')
 18 #     i += 1
 19 
 20 # 大小写翻转
 21 s4 = s.swapcase()
 22 print(s4)
 23 
 24 # 每个隔开(特殊字符或者数字)的单词字母大写
 25 s = 'hello world3i am%larry'
 26 s5 = s.title()
 27 
 28 # 居中, 空白填充
 29 s = 'guess'
 30 s6 = s.center(8)
 31 s7 = s.center(20, '#')
 32 
 33 # 	 = 8 - 之前字符
 34 s = 'gue	ss'   
 35 s8 = s.expandtabs()
 36 
 37 # 计算长度,汉字算作一
 38 s = 'hello小明'
 39 s9 = len(s)
 40 print(s4, s5, s6, s7, s8, s9)
 41 
 42 # 是否以特定字母开头或结尾
 43 s = 'freedom the best'
 44 s10 = s.startswith('free')
 45 
 46 if s10:
 47     pass
 48 
 49 s11 = s.startswith('d', 4,6)
 50 print(s10, s11)
 51 
 52 # find通过元素找索引,找不到返回-1
 53 # index通过元素着索引,找不到报错
 54 s12 = s.find('e')
 55 s13 = s.index('e')
 56 print(s12, type(s13))
 57 
 58 # strip默认删除前后空格
 59 # 指定字符,从前后删除,删完即停
 60 s = '   &love&story%    '
 61 s14 = s.strip()
 62 s15 = s14.strip('&%')
 63 print(s12, s13, s14, s15)
 64 
 65 # strip情景案例
 66 # 有时候会习惯性键入空格,导致出错,strip贴心守护
 67 username = input('请输入名字:').strip()
 68 if username == 'xiaoming':
 69     print('you got it!')
 70 
 71 # 删除左边空格
 72 s17 = s.lstrip()
 73 
 74 # 删除右边空格
 75 s18 = s.rstrip()
 76 
 77 # 计算元素或者切片出现的次数
 78 s = 'nothing is perferct'
 79 s19 = s.count('no')
 80 s20 = s.count('e')
 81 print(s19, s20)
 82 
 83 # str -- list
 84 s = ';harry;potter;glory'
 85 s21 = s.split(';')
 86 print(s21)
 87 
 88 # format的三种方法,格式化输出
 89 s = '我是{},年龄{},性别{}, 再说一次我叫{}'.format('xiaoming', 18, 'nan', 'xiaoming')
 90 print(s)
 91 
 92 s = '我是{0},年龄{1},性别{2},再说一次我叫{3}'.format('xiaoming', 18, 'nan')
 93 print(s)
 94 
 95 s = '我是{name},年龄{age},性别{sex}, 再说一次我叫{name}'.format(name ='xiaoming', sex='nan', age=18)
 96 print(s)
 97 
 98 # 替换
 99 s = '哦啊哥好饿好皇宫护卫哦佛好饿好我'
100 s22 = s.replace('好饿','明显')
101 s23 = s.replace('好饿','明显', 1)
102 print(s22, s23)
103 
104 # for
105 s = 'haojile'
106 for i in s:
107     print(i)
108 
109 # 敏感词汇查找
110 s = 'fs苍井空hhaha'
111 if '苍井空' in s:
112     print('您的评论里有敏感词汇..')

习题

字符串的切片

# 字符串的切片
s = '132a4b5c'

# 132
print(s[0:3])

# a4b
print(s[3:6])

# 1245
print(s[0:7:2])

# 3ab
print(s[1:6:2])

# c
print(s[-1])

# ba3
print(s[5:0:-2])
View Code

字符串的操作

# 在变量name = "  aleX laNb " 完成如下操作
name = "  aleX laNb "

# 移除name变量中的空格,并输出处理结果
n1 = name.strip()
print(n1)

# 移除n1中的al,并输出
n2 = n1[2:]
print(n2)

# 移除n1中的Nb,并输出
n3 = n1[:-2]
print(n3)

# 移除n1开头的a和结尾的b,并输入
n4 = n1[1:-1]
print(n4)

# 判断n1是否是以al开头
n5 = n1.startswith('al')
print(n5)

# 判断n1是否以Nb结尾
n6 = n1.endswith('Nb')
print(n6)

# 将n1中所有的l都替换成p,并输出
n7 = n1.replace('l', 'p')
print(n7)

# 将n1中的第一个l替换成p,并输出
n8 = n1.replace('l', 'p', 1)
print(n8)

# 将n1中的值根据所有的l分割,并输出
n9 = n1.split('l')
print(n9)

# 将n1中的值根据第一个l分割,并输出
n10 = n1.split('l', 1)
print(n10)

# 将n1中对应的值大写,并输出
n11 = n1.upper()
print(n11)

# 将n1中对应的值小写,并输出
n12 = n1.lower()
print(n12)

# 将n1中对应的值首字母a大写,并输出
n13 = n1.title()
print(n13)

# 判断n1中对应字幕l出现几次,并输出
n14 = n1.count('l')
print(n14)

# 如果判断n1中前四位l出现几次,并输出
n15 = n1.count('l', 4)
print(n15)

# 找到N对应的索引,如果找不到则报错,并输出
n16 = n1.index('N')
print(n16)

# 找到x对应的索引,如果找不到则返回-1,并输出
n17 = n1.find('x')
print(n17)

# 找到X le对应的索引,并输出结果
n18 = n1.find('X la')
print(n18)

# 反转
n19 = n1.reverse()
print(n19)
 
# 大小写反转
n20 = n1.swapcase()
print(n20)
View Code

for & while 遍历字符串中的元素

# 使用while和for循环分别打印字符串s='asdfer'中的每个元素

s = 'asdfer'

# for
for i in s:
    print(i)

# while
i = 0
while i < len(s):
    temp = s[i]
    print(temp)
    i += 1
View Code

加法计算器

# 实现一个加法计算器
# 如:content = input('请输入内容: ')
# 如用户输入: 5+9  5+ 9  5 + 9
# 先进行分割在加和计算

content = input('>>>').strip().split('+')

sum = 0
for i in content:
    sum += int(i)
print(sum)
View Code

求出字符串中整数的个数

# 计算用户输入的内容有几个整数
# 如:content = input('请输入内容: ') 
# 如 fsssae3fh890

j = 0
content = input('请输入内容: ').strip()

for i in content:
    if i.isdigit():
        j += 1 
print(j)

# while
k = 0
count = 0
content = input('请输入内容: ').strip()

while k < len(content):
    if content[k].isdigit():
        count += 1
    k += 1
print(count)
View Code
原文地址:https://www.cnblogs.com/dignity/p/9733431.html