Day5作业-2019/07/26

作业1

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

num_list = [12, 34, 5, 76, 87, 90, 3, 6]
if len(num_list) & 1 == 0:
    print(num_list[(len(num_list) // 2) - 1], num_list[len(num_list) // 2])
else:
    print(num_list[len(num_list) // 2])

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

num_list = [12, 34, 5, 76, 87, 90, 3]
sum1 = 0
for num in num_list:
    sum1 += num
print(sum1)

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

num_list = [12, 34, 5, 76, 87, 90, 3, 6]
for index in range(1, len(num_list), 2):
    print(index, num_list[index])
# print(num_list[1::2])

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

num_list = [12, 34, 5, 76, 87, 90, 3, 6, 7, 45]
for num in num_list:
    if num & 1:
        print(num, end=' ')

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

例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]

num_list = [12, 34, 5, 76, 87, 90, 3, -5]
for x in range(len(num_list)):
    num_list[x] *=  2
print(num_list)

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

例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']

names = ['张三', '李四', '张三', '王五', '赵六', '钱七', '孙八',\
         '李四', '吴十', '赵六']
new_names = []
for name in names:
    if name not in new_names:
        new_names.append(name)
names = new_names
print(names)

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

例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']

num_list = [97, 34, 33, 76, 87, 90, 102, 50, 69, 45]
index = -1
for num in num_list:
    index += 1
    num_list[index] = chr(num_list[index])
print(num_list)

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

num_list = [69, 85, 76, 79, 87, 90, 97, 71]
max_num = num_list[0]
min_num = num_list[0]
for num in num_list:
    if num > max_num:
        max_num = num
    if num < min_num:
        min_num = num
num_list.remove(min_num)
num_list.remove(max_num)
print(num_list)
sum1 = 0
count = 0
for num1 in num_list:
    count += 1
    sum1 += num1
average = sum1 / count
print(average)

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

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

list_1 = [1, '我', 20, 'abc', -8, 20]
list_2 = ['他', 45, 67, 'abc', 12, 1]
list_3 = []
for element in list_1:
    for element_2 in list_2:
        if element == element_2:
            list_3.append(element)
print(list_3)

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

例如: nums = [19, 89, 90, 600, 1] —> 600

num_list = [69, 34, 123, 76, 87, 90, 211, -5]
max_num = num_list[0]
for num in num_list[1:]:
    if num > max_num:
        max_num = num
print(max_num)

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

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3

nums = [5, 4, 67, 1, 87, 90, 1, 67, 45, 1, 90, 103, -45, 90, 86, 90]
index1 = 0      # 出现次数最多的元素的下标
max1 = 0        #最大的元素出现次数
for i in range(len(nums)):
    count = 0   #每一个元素出现的次数
    for j in range(i+1, len(nums)):
        if nums[i] == nums[j]:
            count += 1
    if count > max1:
        max1 = count
        index1 = i
print(nums[index1])

作业二

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

paper_height = 0.00008
count = 0
while True:
    paper_height *= 2
    count += 1
    if paper_height >= 8848.13:
        break
print(count)
  1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
n = int(input('请输入月份:'))
n2 = 0
n1 = 1
current = 1
for x in range(1, n):
    current = n2 + n1
    n2 = n1
    n1 = current
print('第%d个月数量是%d' % (n, current))
  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
list1 = []
def prime_factor(num):
    while True:
        for i in range(2, num+1):
            if num % i == 0:
                num = int(num / i)
                list1.append(i)
                break
        if num == 1 or list1 == []:
            break
n = int(input('输入一个整数:'))
prime_factor(n)
print('%d=' % n, end='')
for x in range(len(list1)):
    print(list1[x], end='')
    if x == len(list1)-1:
        print('')
    else:
        print('*', end='')
  1. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
m, n = int(input('m=')), int(input('n='))
max_num = 1
for x in range(2, min(m, n)+1):
    if m % x == 0 and n % x == 0:
        max_num = x
min_num = int(m * n / max_num)
print('最大公约数:', max_num)
print('最小公倍数:', min_num)
  1. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
for i in range(2, 1001):
    list1 = [1]
    for x in range(2, i // 2 + 1):
        if i % x == 0:
            list1.append(x)
    if sum(list1) == i:
        print(i, '是完数')

6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
y, m, d = int(input('年份:')), int(input('月份:')), int(input('日子:'))
if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0:
    month[1] = 29
sum_day = sum(month[0:m-1]) + d
print(sum_day)
  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num = int(input('请输入4位整数:'))
list_num = [num // 1000, num // 100 % 10, num % 100 // 10, num % 10]
for x in range(4):
    list_num[x] = (list_num[x] + 5) % 10
list_num = list_num[::-1]
print(list_num[0] * 1000 + list_num[1] * 100 + list_num[2] * 10 + list_num[3])
  1. 获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数

    6 =1* 2*3 -> 丑数

    2 = 1*2 -> 丑数

    7 = 1*7 -> 不是丑数

    1, 2, 3, 4, 5, 6, 8,9,10, 12 ….

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

推荐阅读更多精彩内容

  • work1 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输...
    Lis_reak阅读 312评论 0 0
  • 1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)? h = 0.08n...
    扎克chen阅读 369评论 0 1
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    容荔阅读 496评论 0 0
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    Ed97001阅读 251评论 0 0
  • 為什麼不行?你有什麼事嗎?能不能提早? 對於這樣的問題,社會教育我們不能隨心所欲的回答:因為我不想。 總是必須絞盡...
    陳群阅读 118评论 0 0