"""
步骤:
1、提示用户输入一个字符串
2、设置一个标记flag
3、遍历字符串1/2的角标
3.1若对应字符不相等,则输出False,循环停止
3.2若循环正常结束,则表示回文,则True
"""
n = input("请输入一个字符串:")
flag = True
for i in range(len(n) // 2 + 1) :
if n[i] != n[-i-1]:
flag = False
print(flag)
break
if flag:
print(flag)
测试结果:
"""
步骤:
1、提示用户输入一个社会安全号码
2、如果满足长度为11,角标0,1,2,4,5,7,8,9,10位为数字并且角标3,6为‘-’,则是正确的社会安全号码
"""
def isValid(ssn):
if len(ssn) != 11:
return False
# d d d - d d - d d d d
# 0 1 2 3 4 5 6 7 8 9 10
for i in range(len(ssn)):
if i == 3 or i == 6:
if ssn[i] != "-":
return False
else :
if not ssn[i].isdigit():
return False
return True
ssn = input("Enter ssn :")
print(isValid(ssn))
测试结果:
"""
步骤:
1、提示用户输入一个密码
2、判断密码是否合法
如果在字符串中找到一个字母则alpha_num + 1
如果在字符串找到一个数字则digit_num + 1
如果字符串总长度大于8,数字digit_num大于1,并且英文字母alpha_num不为0则密码合法
否则不合法
"""
num = input("请设置一个密码:")
def isValid(num):
digit_num = 0
if len(num) < 8:
return False
if not num.isalnum():
return False
for i in num:
if i.isdigit():
digit_num += 1
return digit_num >= 2
print(isValid(num))
测试结果:
"""
步骤:
1、定义函数判断字符串是否为某个字符串子字符串
2、提示用户输入两个字符串
3、调用函数,输出结果
"""
def finds(n1,n2):
for i in range(len(n2)):
if n1 == n2[i:i+len(n1)]:
return True
return False
n1 = input("请输入一个字符串:")
n2 = input("请输入一个字符串:")
print(finds(n1,n2))
测试结果:
"""
步骤:
1、定义统计字符出现次数的函数
2、提示用户输入字符串和要统计的字符
3、调用函数,输出结果
"""
s = input("请输入一个字符串:")
ch = input("请输入一个字符:")
def counts(s,ch):
count = 0
for i in range(len(s)):
if s[i] == ch:
count += 1
return count
print(counts(s,ch))
测试结果:
"""
步骤:
1、定义统计字符串出现次数的函数(不重叠)
2、提示用户输入字符串以及要统计的字符串
3、调用函数
"""
def counts(s1,s2):
count = 0
for i in range(len(s1)):
if s1[i:i+len(s2)] == s2:
count += 1
return count
s1 = input("Enter s1:")
s2 = input("Enter s2:")
print(counts(s1,s2))
测试结果:
"""
步骤:
1、定义二进制转十进制函数
1.1将接收数据倒序
1.2然后对应角标乘2的n次幂
1.3 累加求和
2、提示用户输入二进制数
3、调用函数,输出结果
"""
def binaryToDecimal(binaryString):
binaryString = binaryString[::-1]
sum = 0
for i in range(len(binaryString)):
sum += int(binaryString[i]) * (2 ** i)
return sum
s = input("Enter a binaryString:")
print(binaryToDecimal(s))
测试结果:
"""
步骤:
1、定义二进制转十进制函数
2、定义十进制数如果转向十六进制函数
3、定义二进制转十六进制函数
3.1 将数字遍历从后向前切片操作,每四个一切
3.2 将每一组切出来的数字转为十进制,调用函数1
3.3 转为十进制后判断该数字是否大于10,若大于则转为对应字母ABCDEF
3.4 将转化的数字倒序拼接起来
4、提示用户输入一个二进制数
5、调用函数,输出结果
"""
def binaryToDecimal(binaryString):
binaryString = binaryString[::-1]
sum = 0
for i in range(len(binaryString)):
sum += int(binaryString[i]) * (2 ** i)
return sum
def getHex(binStr):
for i in binStr:
n = binaryToDecimal(binStr)
if n < 10:
return str(n)
else:
return chr(55 + n)
def binaryToHex(binaryValue):
hexStr = ""
i = len(binaryValue) - 4
while True:
j = i + 4
if i < 0:
i = 0
hexStr = getHex(binaryValue[i:j]) + hexStr
break
hexStr = getHex(binaryValue[i:j]) + hexStr
i = i - 4
return hexStr
binaryValue = input("Enter a binary number:")
print(binaryToHex(binaryValue))
测试结果:
"""
步骤:
1、定义十进制转二进制函数
1.1若数字为0,结束循环
1.2数字不为0,和2取余,将结果拼接起来,再整除2
2、提示用户输入一个数字
"""
def decimalToBinary(value):
str1 = ""
while value != 0:
y = value % 2
str1 = str(y) + str1
value //= 2
return int(str1)
value = int(input("Enter a number:"))
print(decimalToBinary(value))
测试结果 :
def reverse(s):
str1 = ""
for i in range(len(s)):
str1 = s[i] + str1
return str1
s = input("Enter a str:")
print(reverse(s))
测试结果:
"""
步骤:
1、定义求两个字符串最长公共前缀函数
1.1 以两个字符串长度最小的那个结束遍历
1.2 从第一个字符开始比较,若相同,继续;不同直接停止遍历
2、提示用户输入两个字符串
3、调用函数,输出结果
"""
def prefix(s1,s2):
a = min(len(s1),len(s2))
for i in range(a):
if s1[i] != s2[i]:
return s1[:i]
return s1[:i + 1]
s1 = input("Enter s1:")
s2 = input("Enter s2:")
print(prefix(s1,s2))
测试结果:
"""
步骤:
1、定义检测ISBN的函数
1.1 依据公式计算校验数
1.2 若校验数为10,第10位数字为x
1.3 若校验数不为10,则第10位为校验数
2、提示用户输入一个ISBN-10号码
3、调用函数,输出结果
"""
def isbn(s):
sum = 0
str1 = ""
for i in range(len(s)):
str1 += s[i]
sum = sum + int(s[i]) * (i + 1)
if sum % 11 == 10:
return (str1+"X")
return (str1+str(sum % 11))
s = input("Enter the first 9 digits of a ISBN-10 as a string:")
print("The ISBN-10 number is ",isbn(s))
测试结果:
"""
步骤:
1、定义检测ISBN的函数
1.1 根据公式计算校验数
1.2 若校验数为10,第13位为0
1.3 若校验数不为10,则第13位为校验数
2、提示用户输入一个ISBN-13号码
3、调用函数,输出结果
"""
def isbn(s):
sum = 0
sum1 = 0
sum2 = 0
for i in range(len(s)):
if i % 2 == 0:
sum2 += int(s[i])
else:
sum1 += 3 * int(s[i])
sum = 10 - (sum1 + sum2) % 10
if sum == 0:
return s+"0"
else:
return s + str(sum)
s = input("Enter the first 12 digits of ISBN-13 as a string:")
print("The ISBN-13 number is ",isbn(s))
测试结果: