python:第四章 列表与元组作业2

题目

6. 甲、乙、丙、丁四人中有一人做了好事不留名。请大家编写程序,根据以下线索找出做好事的人。
甲说:不是我。
乙说:是丙。
丙说:是丁
丁说:丙说的不对。
其中三人说的真话,一人说的假话。
7. 编写程序,对用户输入的英文字符串中出现的英文字母进行提取(不区分大小写,重复字母只计一次),并将提取的结果按照字母表顺序升序排列后输出。例如,用户输入“I miss you.”,程序输出“i,m,o,s,u,y”或“I,M,O,S,U,Y”。
8. 编写程序,生成一个包含20个三位随机整数的列表,将其前十个元素升序排列,后十个元素降序排列后输出。

============================================================================

程序代码

# 6
# -1代表不是,0代表不确定,1代表是
a = [-1, 0, 0, 0]
b = [ 0, 0, 1, 0]
c = [ 0, 0, 0, 1]
d = [ 0, 0, 0, -1]
info = [a, b, c, d]
for i in range(len(info)):
    info[i] = [-x for x in info[i]]#假设撒谎
    judge = [info[0][x]+info[1][x]+info[2][x]+info[3][x] for x in range(len(info))]
    check = [judge.index(x) for x in judge if x>0]
    if len(check)==1:
        print('第{}个人撒谎了,做好事的人是第{}个人'.format(i+1, check[0]+1));break
    info[i] = [-x for x in info[i]]#复原
print()

# 7
# word = input()
word = 'I very like you, and I want to drink something delicious.'
element = [x for x in list(set(word)) if x.isalpha()]
element.sort()
print(element)
print()

# 8
import random; random.seed(666)
random_list = [random.randrange(100,999) for x in range(20)]
print(random_list)
former = random_list[:10]; former.sort()
laster = random_list[10:]; laster.sort(reverse=True)
print(former)
print(laster)

输出结果

3个人撒谎了,做好事的人是第3个人

['I', 'a', 'c', 'd', 'e', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'r', 's', 't', 'u', 'v', 'w', 'y']

[567, 486, 544, 390, 612, 114, 930, 660, 666, 897, 829, 441, 226, 150, 934, 245, 494, 744, 578, 692]
[114, 390, 486, 544, 567, 612, 660, 666, 897, 930]
[934, 829, 744, 692, 578, 494, 441, 245, 226, 150]

好物分享
python: 数据科学代码速查表(强烈推荐!)
入门总结:
python入门:有关字符串的操作代码总结
python入门:有关math包以及内置函数的数值操作代码总结
Python练习:
python:第二章 字符串和数值程序作业
python:第三章 程序流程控制作业
python:第三章 程序流程控制作业2
python:第四章 列表与元组作业
python:第四章 列表与元组作业2

发布了20 篇原创文章 · 获赞 3 · 访问量 1485

猜你喜欢

转载自blog.csdn.net/qq_42830966/article/details/105510125