python 编程 求答案!2 3两题(python编程题及答案)

2023-03-19 7:47:13 密语知识 思思

#!/usr/bin/env python

#coding=utf-8

import re

from datetime import datetime as dt, timedelta

import platform

if platform.python_version()[:1] == '2': #判断python版本是2还是3

    import sys

    reload(sys)

    sys.setdefaultencoding('utf8')

class Idcard(object):

    ''' 

     m = Idcard('225122198611134730')

     print(m.sex)

    男

     m.birth

    '1986-11-13'

     m.age

    30

    '''

    def __init__(self,idcard):

        self.idcard = idcard        

        if len(idcard) == 15:

            sex, birth = idcard[-1:], '19' + idcard[6:12]

        elif len(idcard) == 18:

            sex, birth = idcard[-2:-1], idcard[6:14]   

        else:

            raise Exception('len(idcard) is {} (15/18)'.format(len(idcard)))

        self._sex = int(sex) % 2

        self._birth = birth

    

    @property

    def sex(self):

        return u'男' if self._sex % 2 else u'女'

    @property

    def age(self):  

        now, bir = dt.now(), dt.strptime(self._birth, '%Y%m%d')

        beforebirth = (now - dt(now.year, bir.month, bir.day)).days  0

        return dt.now().year - int(self._birth[:4]) - beforebirth

    @property

    def birth(self):

        return dt.strptime(self._birth, '%Y%m%d').strftime('%Y-%m-%d')

def alignment(str1, space, align = 'left'):

    length = len(str1.encode('gb2312'))

    space = space - length if space =length else 0

    if align == 'left':

        str1 = str1 + ' ' * space

    elif align == 'right':

        str1 = ' '* space +str1

    elif align == 'center':

        str1 = ' ' * (space //2) +str1 + ' '* (space - space // 2)

    return str1

    

def main():

    fname = 'customer.txt'

    '''

    with open(fname, 'w') as f:

        f.write("""

        郑文杰 225122198611134730

        文萍 225122198912094740

        郑妈妈  225122590303476

        郑爸爸 225122560506471

        """)

    '''    

    newf = 'ourcustomers.txt'

    with open(fname) as f:

        s = f.readlines()

    L, newL = [re.split(r'\s+', i.strip()) for i in s], []

    for i in L:

        if len(i) == 2:

            g = Idcard(i[1])

            newL.append('{}{}{}'.format(

                alignment(i[0], 10), alignment(g.sex, 8), g.age))

    with open(newf, 'w') as f:

        f.write('\n'.join(newL))

    print('\n'.join(newL[:100]))

    print('Customer data has been write into {}'.format(newf))

if __name__ == '__main__':

    import doctest

    doctest.testmod()

    main()

用Python语言设计程序,5道题,谢谢!

第一题,用input()接受用户输入,int()把输入转换成整型,if... else语句判断条件。能被2整除的是偶数,否则奇数

代码:

n = int(input())

if n % 2 == 0:

..#前面的点表示缩进。

..print("是偶数")

else:

..print("是奇数")

第二题input()、int()和嵌套if语句

代码:

n = int(input())

if n % 100 != 0:

..if n % 4 == 0:

....print("是闰年")

..else:

....print("是平年")

elif n % 400 == 0:

..print("是闰年")

else:

..print("是平年")

第三题还是一样滴,用input(),int()和if...else语句

代码:

a = int(input())

b = int(input())

if a b:

..print(a – b)

else:

..print(b – a)

第四题也是一样滴

代码:

m = int(input())

n = int(input())

if m n:

..print(m, n)

else:

..print(n, m)

第五题 (*^▽^*)

代码:

a = int(input())

if a =60:

..print("合格")

else:

..print("不合格")

python的题目?

1.将列表的元素按逆序重新存放。

my_list = [1, 2, 3, 4, 5]

my_list.reverse() # 将列表元素反转

print(my_list) # 输出反转后的列表

2.将列表中的偶数变成其平方值,奇数保持不变。

my_list = [1, 2, 3, 4, 5]

for i in range(len(my_list)):

if my_list[i] % 2 == 0: # 如果元素是偶数

my_list[i] = my_list[i] ** 2 # 将元素平方

print(my_list) # 输出更改后的列表

3.生成包含100个100以内的随机正整数的元组,统计每个数出现的次数。

生成包含100个100以内的随机正整数的元组,统计每个数出现的次数。

4.输入5X5的矩阵a,完成下列要求:a.输出矩阵ab.将第2行和第5行元素对调后,再重新输出a

# a.

a = [[1, 2, 3, 4, 5],

[6, 7, 8, 9, 10],

[11, 12, 13, 14, 15],

[16, 17, 18, 19, 20],

[21, 22, 23, 24, 25]]

for row in a:

print(row) # 每行输出矩阵

# b.

a[1], a[4] = a[4], a[1] # 将第2行和第5行元素对调

# c.

for row in a:

print(row) # 重新输出矩阵

5.创建由星期一到星期日的7个值组成的字典,输出键列表、值列表和键值列表。

days_of_week = {

"Monday": 1,

"Tuesday": 2,

"Wednesday": 3,

"Thursday": 4,

"Friday": 5,

"Saturday": 6,

"Sunday": 7

}

keys = list(days_of_week.keys()) # 将字典键转换为列表

values = list(days_of_week.values()) # 将字典值转换为列表

key_values = list(days_of_week.items()) # 将字典键值对转换为列表

print("Keys:", keys) # 输出键列表

print("Values:", values) # 输出值列表

print("Key-Values:", key_values) # 输出键值列表

6.输入10名学生的姓名和成绩,输出其最高分和最低分。要求使用字典存放学生的姓名和成绩。

my_dict = {}

for i in range(10):

name = input("Enter student name: ") # 输入学生姓名

score = int(input("Enter student score: ")) # 输入学生成绩

my_dict[name] = score # 将学生姓名和成绩存入字典

highest_score = max(my_dict.values()) # 获取最高成绩

lowest_score = min(my_dict.values()) # 获取最低成绩

print("Highest score: ", highest_score) # 输出最高成绩

print("Lowest score: ", lowest_score) # 输出最低成绩

7.随机产生10个[0,10]范围的整数,分别组成集合A和集合B。输出集合A、集合B的内容、长度以及他们的并集、交集和差集。

import random

A = set(random.sample(range(11), 10)) # 随机从0到10范围内选取10个不重复的整数,将其作为集合A的元素

B = set(random.sample(range(11), 10)) # 随机从0到10范围内选取10个不重复的整数,将其作为集合B的元素

print("Set A: ", A) # 输出集合A

print("Set B: ", B) # 输出集合B

print("Length of A: ", len(A)) # 输出集合A的长度

print("Length of B: ", len(B)) # 输出集合B的长度

print("Union of A and B: ", A.union(B)) # 输出集合A和集合B的并集

print("Intersection of A and B: ", A.intersection(B)) # 输出集合A和集合B的交集

print("Difference of A and B: ", A.difference(B)) # 输出集合A和集合B的差集

Python编程题求助

该答案为组合数学中著名的卡特兰数,其通式为C(2n,n)-C(2n,n-1)

这里采用递推关系求解,即动态规划的方法

设n对父子有d[n]种出场策略,注意初值d[0]=1

因为每个孩子前面必有一个父亲与之对应

对于i对父子,遍历第j个孩子,该孩子前面有j-1个孩子,对应d[j-1]种出场策略

后面有i-j个孩子,对应d[i-j]种出场策略,则d[i]+=d[j-1]*d[i-j],最终d[n]即为所求

python代码如下:

n = int(input())

d = [0] * (n+1)

d[0] = 1

for i in range(n+1):

  for j in range(i+1):

      d[i] += d[j-1] * d[i-j]

print(d[n])

运行结果如下:

望采纳~