当前位置: 首页 > news >正文

《练习100》91~95

题目91

# 自动生成字符串
# a = ['小马','小羊','小鹿']
# b = ['草地上','电影院','家里']
# c = ['看电影','听音乐','吃晚饭']
# 随机生成三个0~2的数字,若是1,0,2 ,则输出: 小羊在草地上吃晚饭
import random
a = ['小马','小羊','小鹿']
b = ['草地上','电影院','家里']
c = ['看电影','听音乐','吃晚饭']
d = [random.randint(0,2) for _ in range(3)]
print(f'{a[d[0]]}{b[d[1]]}{c[d[2]]}')

题目92

# 保留重复项
# 在一个全是字符串的列表中,保留那些只有重复相同字符的字符串。
# 单个字符的字符串被认为是重复字符串
# 输入
# ['aa','123','444','b','xyz']
# ['ann','123','4g4','de','xyz']# 第一种利用字符串*代表重复
def is_repeat(string:str):return string[0]*len(string) == string# 利用set去重,如果去重后的字符串只包含原字符串的第一个字符,说明该字符串是重复字符串
# 换个说法:去重后只有一个字符
def is_repeat1(string:str):return len(set(string)) == 1list1 = ['aa','123','444','b','xyz']
list2 = ['ann','123','4g4','de','xyz']
list3=list1[:]
list4=list2[:]
print(list1)
print(list2)
list1 = [x for x in list1 if is_repeat(x)]
list2 = [x for x in list2 if is_repeat(x)]
print(list1)
print(list2)print(list3)
print(list4)
list3 = [x for x in list3 if is_repeat1(x)]
list4 = [x for x in list4 if is_repeat1(x)]
print(list3)
print(list4)

题目93

# 给定两个值,m和n,n始终为正整数,要求返回一个最接近m的n的整倍数。如果m正好处于两个整倍数中间,则返回较大的整倍数# 输入【47,7】
# 输出:49m = int(input('请输入一个数字作为m:'))
n = int(input('请输入一个数字作为n:'))# 将题目中的返回条件,换个说法,这题就简单许多(其实本身也不难)
# m 一定是介于第一个比m大的n的倍数和最后一个比m小的n的倍数之间
# 还有对‘中间’这个词语的理解: 某个数到另外两个数的距离相等,说明这个数在这两个数中间
# 根据举例的说法来看,题目中的‘中间’,应该解释为之间。42 47 49, 好了不咬文嚼字,就这样吧。# 第一种:缺点:在m比n大很多的时候,前面浪费一定的时间
each = 1
while True:if each * n > m:print(each*n)breakeach += 1# 第二种:是为了解决上一种的缺点来的
each = 1    
while True:if not (m + each) % n:print(m+each)breakeach += 1

题目94

# 出现顺序比较
# 给出一个全部为小写字母的字符串,并给出两个一定存在的字母a和b.当字母a在字符串中最后一次出现的位置比b第一次出现的位置还要靠前时
# 返回True否则返回False# 获取index 使用index
# index 返回最小的index, 意思就是第一次出现的
# rindex 返回最大的index, 意思就是最后一次出现str1 = 'zheng zai xue xi python ni xin bu'
print(str1)
char_a = input('请输入在上述字符串中的一个字母:')
char_b = input('请输入在上述字符串中的另一个字母:')if str1.index(char_a) < str1.rindex(char_b):print('True')
else:print('False')

题目95

# 输入一个多位数字,输出一个一位数字。这个一位数是数字多位数字各位数字之和,若和不是一位数字,那么继续对和的各位数字求和,直到和为一个一位数字为止
# 第一眼就想到了递归
def sum_num(num:int):print('num in:', num)return num if num < 10 else sum_num(sum(int(x) for x in str(num)))print(sum_num(987))# 不用递归
def sum_num1(num:int):while True:print('num in:', num)if num < 10:return numnum = sum(int(x) for x in str(num))print(sum_num1(987))# 再优化一下:break的条件是num < 10, 意思就是循环的条件是num > 9. 减少了一行
def sum_num2(num:int):while num > 9:print('num in:', num)num = sum(int(x) for x in str(num))return numprint(sum_num2(987))
http://www.lryc.cn/news/119529.html

相关文章:

  • 3.6 Spring MVC文件上传
  • # X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系
  • rknn3588如何查看npu使用情况
  • “Can‘t open perl script configure : No such file or directory”的解决办法
  • ChatGLM2-6B在windows下的部署
  • nodejs+vue+elementui学生档案信息管理系统_06bg9
  • Nginx location
  • 数据库字段命名导致的SQL报错
  • 【办公自动化】使用Python一键提取PDF中的表格到Excel
  • 【基础类】—原型链系统性知识
  • ddia(3)----Chapter3. Storage and Retrieval
  • SpringBoot自定义拦截器interceptor使用详解
  • AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
  • gitlab-Runner搭建
  • 【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率
  • 计算机网络 网络层 路由 路由信息协议RIP
  • 【Spring】-Spring项目的创建
  • SQL | 使用通配符进行过滤
  • make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
  • Android Studio实现简单ListView
  • 【设计模式】模板模式
  • 配置docker和复现
  • Qt应用开发(基础篇)——工具箱 QToolBox
  • 地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
  • 【UE4 RTS】08-Setting up Game Clock
  • 百度chatgpt内测版
  • [GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片
  • (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用
  • Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例
  • Docker_docker runContainerd