第三天
- 整型
- 布尔类型
- 字符串
内容回顾和补充
- 思维导图
- xmind软件
- processon网页
- 补充
- 运算符: in /not in
value = '我是中国人'
# 判断'中国'是否为value的子序列
v = '中国' in value
# 示例
while True:
content = input('请输入内容:')
if '退钱' in content:
print('包含敏感字符,请重新输入')
else:
print('输入成功!')
break
整型
- 特殊
- python2:
- 在32位机器上,整数的位数为32位,取值范围是:
-2**31~2**31-1,即-2147483648~2147483647
- 在64位系统上,整数的位数是64位,取值范围为:
-2**63~2**63-1,即-9223372036854775808~9223372036854775807
- 超出长度后会变成long长整型
- 整型除法结果会取整,需要增加:
from __future__ import division
后才能得到正确结果
- python3
-
- 只有int没有long,所有数字都是int类型
- 正常计算
布尔值
- bool
- True
- False
- 转换
字符串(str)
- 大写/小写(.upper()/.lower())
value = 'hello world'
new_big_value = value.upper()
new_small_value = new_big_value.lower()
print(new_big_value, new_small_value)
- 不区分验证码大小写实例:
check_code = 'HiOn'
code = input('请输入验证码 %s :' % (check_code,))
if code.lower() == check_code.lower():
print('验证成功')
- 判断字符串是否可以转换为数字(.isdigit())
while True:
num = input('请选择服务:')
if num.isdigit():
num = int(num)
print(num)
else:
print('请输入数字!')
- 去除左右边空格(.lstrip()/ .retrip() / .scrip())
- 替换(.replace())
- 敏感词替换
- .replace(‘被替换子序列’,‘替换成的内容’,‘替换前几个’)
message = input('请输入')
new_message = message.replace('大爷', '**')
print(new_message)
- 切割
- .split(‘切割标志’,用几个切割标志切割)
- rsplit(从左到右)
- 得到一个序列
message = input('请输入')
new_message = message.split('/')
print(new_message)
- 计算长度(len() 公共的不知用于字符串)
- 对字符串:字符的长度
- 索引
- 字符串变量[n] (取出索引为N的字符,索引从0开始往后取,-1为倒数第一)
- 练习
# 计算用户输入字符串中数字的个数
text = input('请输入内容:')
index = 0
count = 0
while index != len(text):
character = text[index]
if character.isdigit():
count += 1
index += 1
else:
print(count)
- 切片
- 字符串变量[N:M](取出N<=索引<M之间的字符)
- [N:](从N开始取到最后)
作业
- 有变量name = "aleX leNb " 完成如下操作:
- 移除 name 变量对应的值两边的空格,并输出处理结果
name = "aleX leNb "
new_name = name.strip()
print(new_name)
- 判断 name 变量是否以 “al” 开头,并输出结果(用切片)
name = "aleX leNb "
new_name = name[0:2]
result = new_name == 'al'
print(result)
- 判断name变量是否以"Nb"结尾,并输出结果(用切片)
name = "aleX leNb "
new_name = name[-3:-1]
print(new_name)
result = new_name == 'Nb'
print(result)
- 将 name 变量对应的值中的 所有的"l" 替换为 “p”,并输出结果
name = "aleX leNb "
new_name = name.replace('l', 'p')
print(new_name)
- 将name变量对应的值中的第一个"l"替换成"p",并输出结果
name = "aleX leNb "
new_name = name.replace('l', 'p', 1)
print(new_name)
- 将 name 变量对应的值根据 所有的"l" 分割,并输出结果
name = "aleX leNb "
new_name = name.split('l')
print(new_name)
- 将 name 变量对应的值变大写,并输出结果
name = "aleX leNb "
new_name = name.upper()
print(new_name)
- 将 name 变量对应的值变小写,并输出结果
name = "aleX leNb "
new_name = name.lower()
print(new_name)
`
- 请输出 name 变量对应的值的第 2 个字符?
```python
name = "aleX leNb "
new_name = name[1]
print(new_name)
- 请输出 name 变量对应的值的前 3 个字符?
name = "aleX leNb "
new_name = name[2]
print(new_name)
- 请输出 name 变量对应的值的后 2 个字符?
name = "aleX leNb "
new_name = name[-3:]
print(new_name)
- 字符串 s=“123a4b5c”
- 通过对s切片形成新的字符串 “123”
s = '123a4b5c'
new_s = s[0:3]
print(new_s)
- 通过对s切片形成新的字符串 “a4b”
s = '123a4b5c'
new_s = s[3:6]
print(new_s)
- 通过对s切片形成字符串s5,s5 = “c”
s = '123a4b5c'
s1 = s[5:6]
s2 = s[3:4]
s3 = s[1:2]
s6 = '%s%s%s' % (s1, s2, s3,)
print(s6)
- 使用while循环字符串 s=“asdfer” 中每个元素
s = 'asdfer'
index = 0
while index != len(s):
new_s = s[index]
print(new_s)
index += 1
- 使用while循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,"出发!“
s = '321'
index = 0
while index != len(s):
print('倒计时%s秒' % (s[index],))
index += 1
else:
print('出发!')
- 实现一个整数加法计算器(两个数相加):
如:content = input(“请输入内容:”) 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算得到结果。
# 方法1
content = input('请输入内容:')
new_content = content.strip()
c1 = int(new_content[0])
c2 = int(new_content[-1])
print(c1 + c2)
# 方法2可执行多位数加法
content = input('请输入:')
content = content.strip()
content_new = content.split('+')
v1 = int(content_new[0].strip())
v2 = int(content_new[-1].strip())
print(v1 + v2)
- 获取用户两次输入的内容,并将所有的数据获取并进行相加,如
```python
"""
要求:
将num1中的的所有数字找到并拼接起来:1232312
将num1中的的所有数字找到并拼接起来:1218323
然后将两个数字进行相加。
"""
num1 = input("请输入:") # asdfd123sf2312
num2 = input("请输入:") # a12dfd183sf23
# 请补充代码
count = 0
index = 0
while index != len(num1) or index != len(num2):