4.6字符串独有功能练习题
# 1.写代码实现判断用户输入的值否以"al"开头,如果是则输出"是的",否则输出"不是的"
data = input ("请输入您的用户名:")
if data.startswith("al") :
print("是的")
else :
print("不是的")
# 2.写代码实现判断用户输入的值否以"ab"结尾,如果是则输出"是的",否则输出"不是的"
data = input("请您输入内容:")
if data.endswith("ab") :
print("是的")
else :
print("不是的")
# 3.将name变量对应的值中的所有的"l"替换为"p",并输出结果
data = "ghjklmlop"
new_name = data.replace("l","p")
print (new_name)
# 4.写代码实现对用户输入的值判断,是否为整数,如果是则转换为整型并输入,否则直接输出"请输入数字”
center = input("请输入您的内容:")
if center.isdecimal():
center = int(center)
print(center)
else :
print("请输入数字")
# 5.对用户输入的数据使用”+"切割,判断输入的值是否都是数字?
# 提示:用户输入的格式必须是以下+连接的格式,如5+9、alex+999
data = input("请输入您的内容:")
num_data = data.split("+")
if num_data[0].isdecimal() and num_data[1].isdecimal:
print("都是整数")
else :
print("不全是整数")
# 6.写代码实现一个整数加法计算器(两个数相加)
# 需求:提示用户输入:5+9或15+9或5+29,计算出两个值的和(提示:先分割再转换为整型,再相加)
data = input("请输入内容:")
num_list = data.split("+") # ["5", "9"]
v1 = num_list[0]
v2 = num_list[1]
result = int(v1) + int(v2)
print(result)
# 7.写代码实现一个整数加法计算器(两个数相加)
# 需求:提示用户输入: 5 + 9或15 + 9 或 5+ 9,计算出两个值的和(提示:先分割再去除空白、再转换为整型再相加)
# 方法一
data = input("请输入您的内容:")
num_data = data.strip()
num_data = num_data.split("+")
v1 = num_data[0]
v2 = num_data[1]
result = int(v1) + int(v2)
print (result)
# 方法二
data = input("请输入您的内容:")
num_list = data.split("+")
v1 = int(num_list[0].strip())
v2 = int(num_list[1].strip())
result = v1 + v2
print (result)
# 8.补充代码实现用户名认证,需求:提示用户名输入手机号、验证码,全部验证通过后才能算登录成功
import random # import random 是一个导入语句,它的作用是引入Python标准库中的random 模块,这个模块提供了生成各种类型随机数的功能
code = random.randrange(1000,9999) # 生成一个1000-9999的动态验证码,是一个整型
# code = str(code) 可以转换成字符串直接和number进行比较
msg = "欢迎登录pythonAV系统,您的验证码为:{},手机号为:{}".format(code,"17817887894")
print(msg)
phone = input ("请输入您的手机号:")
number = input ("请输入您验证码:") # 是一个字符串
if phone == "17817887894" and code == int(number) :
print ("登录成功")
else :
print("手机号或验证码错误,请重新输入")
# 提示用户名输入手机号、验证码,全部验证通过后才能算登录成功(验证码大小写不敏感)
import random # import random 是一个导入语句,它的作用是引入Python标准库中的random 模块,这个模块提供了生成各种类型随机数的功能
code = random.randrange(1000, 9999)
code = str(code)
msg = "欢迎登录pythonAV系统,您的验证码为:{},手机号为:{}".format(code, "17817887894")
print(msg)
phone = input("请输入您的手机号:")
data = input("请输入您验证码:") # 是一个字符串
if code.upper() == data.upper() and phone == "17817887894" :
print("登录成功")
else:
print("手机号或验证码错误,请重新输入")
# 9.补充代码实现数据拼接
data_list = []
while True :
hobby = input ("请输入您的爱好(Q/q退出):")
if hobby.upper() == "Q":
break
# 把输入的值添加到data_list中,如:data_list = ["篮球","羽毛球"]
data_list.append(hobby)
# 将所有的爱好通过符号"、"拼接起来
# 答案示例
data_list = []
while True :
hobby = input ("请输入您的爱好(Q/q退出):")
if hobby.upper() == "Q":
break
# 把输入的值添加到data_list中,如:data_list = ["篮球","羽毛球"]
data_list.append(hobby)
# 将所有的爱好通过符号"、"拼接起来
result = "、".join(data_list)
print(result)
4.7 字符串其他部分练习题
1、请使用代码实现如下进制的转换
v1 = 675 # 请将V1转换成二进制(字符串类型)
v2="0b11000101" #请将二进制v2转换为十进制(整型)
v3="11000101" #请将二进制v3转换为十进制(整型)
# 答案
# v1 = 675 # 请将V1转换成二进制(字符串类型)
v1 = 675
data = bin(v1)
print (data) # 0b1010100011
# v2="0b11000101" #请将二进制v2转换为十进制(整型)
v2="0b11000101"
data1 = int(v2,base=2)
print (data1) # 197
# v3="11000101" #请将二进制v3转换为十进制(整型)
v3="11000101"
data2 = int(v3,base=2)
print (data2) # 197
2.按要求实现
现有v1=123和v2=456,请将这两个值转换为二进制,并将其二进制中的前缀0b去掉,然后将两个二进制拼接起来,最终再转换为整型(十进制)。
例如:
123对应二进制为"0b1111011”,去除前缀0b之后的二进制为"1111011"
456对应二进制为"0b111001000”,去除前缀0b之后的二进制为"111001000"
将两个二进制拼接起来的值为:“1111011111001000",再将此值转换为整型为:63432
# 参考答案
v1 = 123
v1 = bin(v1)
v2 = 456
v2 = bin(v2)
data1 = v1[2:] # 1111011
data2 = v2[2:] # 111001000
data = data1 + data2 # 1111011111001000
data = int(data,base=2)
print (data) #63432
# 参考答案
v1 = 123
v2 = 456
data = bin(v1)[2:] + bin(v2)[2:]
result = int(data,base=2)
print (result) # 63432
3.按要求实现
现有v1=123和v2=456,请将这两个值转换为二进制,并将其二进制中的前缀0b去掉,再补足为2个字节(16位),然后将两个二进制拼接起来,最终再转换为整型(十进制)。
例如:
123对应二进制为0b1111011”,去除前缀0b之后的二进制为"1111011”,补足16位为"00000000000001111011"
456对应二进制为"0b11100100”,去除前缀0b之后的二进制为"11100100”,,补足16位为"00000000000111001000"
将两个二进制拼接起来的值为:"0000000000000111101100000000000111001000”,再将此值转换为整型为:8061156
v1=123
v2=456
v1 = bin(v1)[2:] #1111011
v2 = bin(v2)[2:] #111001000
v1 = v1.rjust(16,"0") # 0000000001111011
v2 = v2.rjust(16,"0") # 0000000111001000
# v1 = v1.zfill(16) # zfill 自动填充0
data = v1+v2
data = int(data,base=2)
print (data) # 8061384
v1=123
v2=456
data = bin(v1)[2:].zfill(16) + bin(v2)[2:].zfill(16)
data = int(data,base=2)
print (data) # 8061384
4.列举你了解的那些数据类型的值转换为布尔值为False。
空值和0
5.看代码写结果:
if "":
print(123)
else:
print(456) #456
if " ":
print(123)
else:
print(456) #456
if 0:
print(999)
else:
print(666) #456
if "linzai":
print(345)
else:
print(110) #456
6.让 用户输入一段文字,请实现将文本中的敏感词“老师”替换成**,并输出替换后的文本
v1 = input("请输入您的内容:")
data = v1.replace("老师","**")
print (data)
7.有变量name = " lin zai "完成如下操作:
name = " lin za i "
# 移除name变量对应的值两边的空格,并输出处理结果
name1 = name.strip()
print (name1) #lin za i
# 判断name变量是否以"al"开头,并输出结果(用切片或startswith实现)
print (name.startswith("al")) # False
print (name[0:2] == "al") # False
# 判断name变量是否以"ai"结尾,并输出结果(用切片或endswith实现)
print (name.endswith("ai")) # False
print (name[-2:] == "ai") # False
# 将name变量对应的值中的所有的"i"替换为"p",并输出结果
print(name.replace("i","p")) # lpn za p
# 将name变量对应的值根据所有的"i"分割,并输出结果
print (name.split("i")) # [' l', 'n za ', ' ']
# 将name变量对应的值根据第一个"l"分割,并输出结果
print (name.split("i",1)) # [' l', 'n za i ']
# 将name变量对应的值变大写,并输出结果
print(name.upper()) # LIN ZA I
# 将name变量对应的值变小写,并输出结果
print(name.lower()) # lin za i
8.如何实现字符串的翻转?
name = "linzai"
name = name[::-1]
print (name) # iaznil
9.有字符串s="123a4b5c"
# 9.有字符串s="123a4b5c"
# - 通过对s切片形成新的字符串"123"
s = "123a4b5c"
print(s[:3]) # 123
# - 通过对s切片形成新的字符串"a4b"
print(s[3:6]) # a4b
# - 通过对s切片形成字符串"C"
print(s[7:]) # c
print(s[-1:])
print(s[len(s)-1])
# - 通过对s切片形成字符串"ba2"
print(s[-3:-8:-2])
print(s[-3:0:-2])
10.使用while循环实现对字符串message="伤情最是晚凉天,憔悴厮人不堪言"中每个字符进行输出。
message="伤情最是晚凉天,憔悴厮人不堪言"
data = len(message) -1
while data >= 0:
value = message[data]
print(value)
data -= 1
# 方法二
message = "伤情最是晚凉天,憔悴厮人不堪言"
number = 0
while number < len(message) :
print (message[number])
number += 1
11.使用for循环实现对字符串message="伤情最是晚凉天,憔悴厮人不堪言"中每个字符进行输出。
message="伤情最是晚凉天,憔悴厮人不堪言"
for char in message:
print(char)
message="伤情最是晚凉天,憔悴厮人不堪言"
for num in message:
print(num)
12.使用for循环和range实现对字符串message="伤情最是晚凉天,憔悴厮人不堪言"中每个字符进行倒叙输出。
message="伤情最是晚凉天,憔悴厮人不堪言"
for num in range(len(message)):
print(message[num])
13.使用for循环实现输出倒计时效果,例如:输出内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒"。
for num in range(3,0,-1):
text = "倒计时{}秒".format(num)
print (text)
14.让用户输入一段文本,请计算文本中“浪”出现的次数,并输入结果。
text = input ("请输入您的内容:")
count = 0
for lin in text:
if lin == "浪" :
count += 1
print (count)
15.获取用户两次输入的内容,并提取其中的数字,然后实现数字的相加(转换为整型再相加):
"""
要求:
将num1中的的所有数字找到并拼接起来:1232312
将num1中的的所有数字找到并拼接起来:1218323
然后将两个数字进行相加
"""
num1 = input ("请输入:") # asdfd123sf2312
num2 = input ("请输入:") # a12dfd183sf23
# 请补充代码
# 第一种方式
num1 = input ("请输入:") # asdfd123sf2312
num1_list = []
for i in num1:
if i.isdecimal():
num1_list.append(i)
data1 = "".join(num1_list)
print (data1)
num2 = input ("请输入:") # a12dfd183sf23
num2_list = []
for a in num2:
if a.isdecimal():
num2_list.append(a)
data2 = "".join(num2_list)
print (data2)
redult = int(data1) +int(data2)
print (redult) # 2450635
# 第二种方式
num1 = input ("请输入:") # asdfd123sf2312
data = ""
for char in num1 :
if char.isdecimal():
data += char
print (data)
标签:name,05,list,数据类型,v1,v2,print,data,day
From: https://www.cnblogs.com/linzaidehouhuayuan/p/18056941