2019-07-27

作业

1.已知一个数字列表,求列表中心元素

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
s = len(li)
num = int(s/2)
print(li[num])

2.已知一个数字列表,求所有元素和

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
mild = sum(li)
print(mild)

3.已知一个数字列表,输出所有奇数下标元素。

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for index in range(len(li)):
    if index & 1 != 0:
        print(li[index], end=" ")

print("")

4.已知一个数字列表,输出所有元素中,值为奇数的元素。

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in li:
    if num & 1:
        print(num, end=" ")

print("")

5.已知一个数字列表,将所有元素乘二。

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
li_1 = []
for num in li:
    num *= 2
    li_1.append(num)
print(li_1)
# print(num)

6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的

使用内置函数list(set(列表名))

li_names = [1, 1, 2, 3, 4, 3, 6, 7, 2, 9]
li_2 = list(set(li_names))
print(li_2)

7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表

li_asc = [97, 98, 99, 100]
li_3 = []
for i in li_asc:
    i = chr(i)
    li_3.append(i)
print(li_3)

8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

# scores = []
# while True:
#     score = float(input("请输入得分:"))
#     scores.append(score)
#     if len(scores) >= 10:
#         print(scores)
#         break
# # print(max(scores))
# sum1 = 0
# average = 0
# scores.remove(max(scores))
# # print(scores)
# scores.remove(min(scores))
# sum1 = sum(scores)
# # long = len(scores)
# average = sum1 / (len(scores) - 2)
# print(average)

9. 有两个列表A和B,使用列表C来获取两个列表中公共的元素

例如: A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] --> C = [1, 'a']

# li_1 = [1, "a", 4, 9, "b"]
# li_2 = ["a", 8, "b", 3, 1]
# li_3 = []
# for i in li_1:
#     for j in li_2:
#         if i == j:
#             li_3.append(i)
# print(li_3)

10.有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)

# sum_1 = 0
# list_num = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
# for i in list_num:
#     if i > sum_1:
#         sum_1 = i
# print(sum_1)

11.获取列表中出现次数最多的元素

num_1 = [1, 2, 7, 1, 4, 2, 1, 3, 7, 3, 3, 7, 7]
num_2 = []
for i in num_1:
    if i not in num_2:
        num_2.append(i)
# print(num_2)
num_3 = 0
for j in num_2:
    s = num_1.count(i)
    if s > num_3:
        num_3 = s
print(i)
num_2 = []
n = 0
for i in num_1:
     num_2.append(i)
     if i in num_2:
         n += 1
for i in num_1:
     s = num_1.count(i)
print(s)
print(num_1.count(1))

1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

thickness = 8/100000
n = 0
while True:
    if thickness <= 8848.13:
        thickness *= 2
        n += 1
    else:
        print(n)
        break

2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,

假如兔子都不死,问每个月的兔子总数为多少?

n_2 = 1
n_1 = 1
for i in range(3, 21):
    n_2, n_1 = n_1, n_2 + n_1
    print("第%d个月的兔子总数是%d对:" % (i, n_1))

3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

num = int(input("请输入一个任意正整数:"))
num_1 = num
k = 2
product = []
while num > 1:
    if num % k:
        k = k + 1
    else:
        product.append(k)
        num = num / k
print(product)
s = []
s = [str(i)for i in product]   # 将数据类型列表转换为字符类型的列表
# print(s)
print("{} = {}".format(num_1, "x".join(s)))

4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。

m = int(input("请输入任意正整数:"))
n = int(input("请输入任意正整数:"))
if m > n:
    while True:
        if m % n != 0:
            t_1 = m
            m = n
            n = t_1 % n
        else:
            print(n)
            break
else:
    while True:
        if n % m:
            t_2 = n
            n = m
            m = t_2 % m
        else:
            print(m)
            break

5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。

例如6=1+2+3. 编程 找出1000以内的所有完数

list_sum = []
for i in range(0, 1000):
    list_num = []
    for j in range(1, i):
        if i % j == 0:
            list_num.append(j)
    if sum(list_num) == i:
        # print(list_num)
        list_sum.append(i)
print(list_sum)

6.输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,

特殊情况,闰年且输入月份大于3时需考虑多加一天。

years = int(input("请输入年份:"))
mouths = int(input("请输入月份:"))
days = int(input("请输入日期:"))
day_leap = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day_ord = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if mouths <= 12:
    if days <= 31:
        if (years % 4 == 0 or years % 100 != 0) and years % 400 == 0:
            sum_1 = days
            for i in day_leap[:mouths]:
                sum_1 += i

        else:
            sum_1 = days
            for i in day_ord[:mouths]:
                sum_1 += i
        print("这是%d年的第%d天" % (years, sum_1))
    else:
        print("日期输入错误")
else:
    print("月份输入错误")

7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:

每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

求输入的四位整数加密后的值

num_s = input("请输入一个四位整数:")
list_s = []
for i in num_s:
    list_s.append(i)
# print(list_s)
# list_i = []

list_i = [int(i)for i in list_s]  #转换类型
# print(list_i)

# 每位数字+5
list_j = []
for j in list_i:
    j += 5
    list_j.append(j)
# print(list_j)

# 每位数字 除10去余
list_h = []
for h in list_j:
    h = h % 10
    list_h.append(h)
print(list_h)
# 交换位置
list_h[0], list_h[3] = list_h[3], list_h[0]
list_h[1], list_h[2] = list_h[2], list_h[1]
print(list_h)

8. 获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数

6 =1* 2*3 -> 丑数
2 = 1*2 -> 丑数
7 = 1*7 -> 不是丑数
1, 2, 3, 4, 5, 6, 8,9,10, 12 ….
n = int(input("请输入一个任意整数:"))
num = 0
b = 1
while True:
    a = b
    if num == n:
        print(b - 1)
        break
    while True:
        if a == 1:
            num += 1
            break
        elif a % 2 == 0:
            a = a // 2
        elif a % 3 == 0:
            a = a // 3
        elif a % 5 == 0:
            a = a // 5
        else:
            break
    b += 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356