"""
第一题:求解回文字符串
回文是一个正读和反读都一样的字符串。
例如:abcba 12321 是回文字符串 hello 123456 不是回文字符串
"""
s = input("请输入字符串:") s2 = s[::-1] # 字符串逆序 if s == s2: print("{} 是回文字符串!".format(s)) else: print("{} 不是回文字符串!".format(s))
"""
第二题:猜数字小游戏
需求分析:
随机生成一个 100 以内的整数,共有 10 次机会开始游戏,输入猜测的数字。
如果猜小了,则提示:猜小了
如果猜大了,则提示:猜大了
猜对了,则提示:猜对了,并且结束游戏
10 次机会用完还没猜对,提示:游戏结束,没有猜到。
"""
import random number = random.randint(1, 100) print("系统生成的随机数:", number) for i in range(10): choice = int(input("请输入你要猜测的数字:")) if choice > number: print("猜大了!") elif choice < number: print("猜小了!") else: print("猜对了,真棒!") break print(f'还剩{9 - i}次机会!') else: # 这种情况:else 和 for 循环对齐,只有 for 循环全部执行完,没有出现任何 break 情况时,才会执行 else 语句 print('游戏结束,你没有猜到!')
"""
第三题:数字组合
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
"""
num = 0 for a in range(1, 5): # 遍历第一个数 for b in range(1, 5): # 遍历第二个输 for c in range(1, 5): # 遍历第三个数 if ((a != b) and (a != c) and (b != c)): # 每一个数不能想通 print(a, b, c) num += 1 print("1,2,3,4 组成互不相同且无重复数字的三位数总量:", num)
"""
第四题:输出九九乘法表
程序分析 分行与列考虑,共9行9列,i控制行,j控制列。
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
"""
for i in range(1, 10): for j in range(1, i + 1): print('%d*%d=%d' % (i, j, i * j), end=" ") print()
"""
第五题:求解 1000 以内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。
"""
# 定义一个函数:求解一个数的所有因数的函数 def factor(num): result = set() for i in range(1, num // 2 + 1): # 只需计算到这个数的一半即可 if num % i == 0: result.add(i) return result print("2 ~ 1000 之间的所有完数为:", end=" ") for data in range(2, 1001): if data == sum(factor(data)): print(data, end=" ")
"""
第六题:阶乘求和
求1+2!+3!+…+10!的和。
"""
def fac(num): result = 1 for i in range(1, num + 1): result = result * i return result sumValue = 0 for i in range(1, 10): sumValue = sumValue + fac(i) print("1+2!+3!+…+10!的和为:", sumValue)
"""
第七题:找出两个列表 lst1 lst2 共同存在的元素
例如:lst1 = [1, 2, 3, 4, 5, 5] lst2 = [2, 5, 6, 8, 9]
输出:共同的元素为:{2, 5}
"""
lst1 = [1, 2, 3, 4, 5, 5] lst2 = [2, 5, 6, 8, 9] result = set() # 有可能会存在重复的元素,需要去重 for i in lst1: count = lst2.count(i) if count > 0: result.add(i) print("两个集合的共同元素为:", result)
"""
第八题:计算两个元祖去重后的元素,以及元素的个数
例如:s1 = (1, 2, 3, 4, 5, 5) s2 = (2, 5, 6, 7, 8)
输出:去重后的元素为:{1, 2, 3, 4, 5, 6, 7, 8} 个数为:8
"""
s1 = (1, 2, 3, 4, 5, 5) s2 = (2, 5, 6, 7, 8) result = set(s1) # 元祖1 直接强制类型转换为集合 result for i in s2: result.add(i) print("去重后的元素为:{},个数为:{}".format(result, len(result)))
"""
第九题:字符串处理成字典类型
将字符串:"k:1|k1:2|k2:3|k3:4",处理成 python 字典:{'k':'1', 'k1':'2', 'k2':'3','k3':'4' }
"""
str1 = "k:1|k1:2|k2:3|k3:4" str_list = str1.split('|') d = {} for l in str_list: key, value = l.split(':') d[key] = value print("处理之后的字典为:", d)
"""
第十题:自定义函数,实现 len() 统计集合的元素个数
集合有可能为:字符串,列表,元祖,字典,集合等
"""
# 定义等同于 len() 功能的函数,求解集合的长度 def lenFun(data): result = 0 if isinstance(data, str): for i in data: result = result + 1 elif isinstance(data, list): for i in data: result = result + 1 elif isinstance(data, tuple): for i in data: result = result + 1 elif isinstance(data, set): for i in data: result = result + 1 elif isinstance(data, dict): for key in data.keys(): result = result + 1 else: print("输入的数据有误,不能统计数据的长度!") result = -1 return result print(lenFun("123456")) # 6 print(lenFun([1, 2, 3, 4, 5])) # 5 print(lenFun((1, 2, 3, 4, 5))) # 5 print(lenFun({1, 2, 3, 4, 5, 6})) # 6 print(lenFun({"name": "大超", "age": 28, "hoppy": ["打羽毛球", "跑步"]})) # 3
标签:练习题,实战,10,python,range,num,result,print,data From: https://www.cnblogs.com/blogtech/p/18175231