zoukankan      html  css  js  c++  java
  • 【Python入门】 —— 和我一起用pycharm写7道PTA的题目吧!

    环境:Win10操作系统;Python3.7;Pycharm 

    题目来源:PTA

    编程实例1:日期格式化

    世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

    输入格式:

    输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

    输出格式:

    在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

    输入样例:

    03-15-2017

    输出样例:

    2017-03-15

    str = input()
    mm = str.split("-",2)[0]
    dd = str.split("-",2)[1]
    yy = str.split("-",2)[2]
    date = yy+"-"+mm+"-"+dd
    print(date)

    split()方法:

    str.split(str="", num=string.count(str)).

    • str -- 分隔符,默认为所有的空字符,包括空格、换行( )、制表符( )等。
    • num -- 分割次数。默认为 -1, 即分隔所有。

    编程实例2:整数四则运算

    本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

    输入格式:

    输入在一行中给出2个正整数A和B。

    输出格式:

    在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。

    输入样例:

    3 2

    输出样例:

    3 + 2 = 5

    3 - 2 = 1

    3 * 2 = 6

    3 / 2 = 1

    方法1:

    a,b = map(int,input().split())
    print("{} + {} = {}".format(a,b,a+b))
    print("{} + {} = {}".format(a,b,a-b))
    print("{} * {} = {}".format(a,b,a*b))
    print("{} / {} = {}".format(a,b,a//b))

    方法2:

    A,B = map(int, input().split())
    c = str(A)
    d = str(B)
    print(c+" + "+d+" =",A+B);
    print(c+" - "+d+" =",A-B);
    print(c+" * "+d+" =",A*B);
    print(c+" / "+d+" =",A//B);

    map()方法:

    会根据提供的函数对指定序列做映射。

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

    map(function, iterable, ...)

    • function -- 函数
    • iterable -- 一个或多个序列

     format方法:

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

    基本语法是通过 {} 和 : 来代替以前的 % 。

    format 函数可以接受不限个参数,位置可以不按顺序。

    举个栗子:

    print("{}{}".format(" hello ", " world "))  #一一对应,输出 hello  world 
    print("{0}{1}".format(" hello ", " world ")) #输出 hello  world
    print("{1}{0}".format(" hello ", " world ")) #设置指定位置,输出 world  hello 
    print("{0}{0}{1}".format(" hello ", " world ")) #设置指定位置,输出 hello  hello  world

     format另一个常用用法是分割字符串

    print('{:.2f}'.format(11.25555)) #表示保留两位小数,输出11.26
    print('{:.2%}'.format(0.1125555)) #表示转化为保留两位小数的百分位数,输出11.26%

    编程实例3:计算各对应位乘积之和

    读入两个整数a和b,输出绝对值a和绝对值b的各对应位乘积之和,如a=1234,b=608,则输出值为:“1×0+2×6+3×0+4×8“的值,即44。

    输入格式:

    在一行中输入两个数

    输出格式:

    在一行中输出对应位乘积之和

    输入样例:

    在这里给出一组输入。例如:

    1234 608

    输出样例:

    在这里给出相应的输出。例如:

    44

    a,b = map(int,input().split())
    a = abs(a)
    b = abs(b)
    a = str(a)
    b = str(b)
    sum = 0
    if len(a)>len(b):
        for i in range(0,len(b)):
            sum = sum + int(a[i+len(a)-len(b)])*int(b[i])
    if len(a)<len(b):
        for i in range(0,len(a)):
            sum = sum + int(b[i+len(b)-len(a)])*int(a[i])
    if len(a)==len(b):
        for i in range(0,len(a)):
            sum = sum + int(a[i])*int(b[i])
    print(sum)

    编程实例4:求出歌手的得分

    输入一个正整数n (n>4),再输入n个实数,求出歌手的得分(保留2位小数)。设一歌唱评奖晚会上有n(n>4)个评委为歌手打分.评分规则:每个评委依次打分,再去掉2个最高分和2个最低分,计算余下的分数平均值为歌手的得分.

    输入格式:

    在第一行中输入n 在第二行中输入n个分数

    输出格式:

    在一行中输出平均分数

    输入样例:

    在这里给出一组输入。例如:

    10

    10 10 9 9 9 8 8 8 7 7

    输出样例:

    在这里给出相应的输出。例如:

    aver=8.50

    n = input()
    num = [int(n) for n in input().split()]
    num.sort()
    for i in range(0,4):
        num.pop()
        num.reverse()
    sum = 0
    for j in range(len(num)):
        sum += num[j]
    aver = sum/len(num)
    print("{:.2f}".format(aver))
    import numpy as np
    n = input()
    num = [int(n) for n in input().split()]
    num.sort()
    for i in range(0,4):
        num.pop()
        num.reverse()
    sum = 0
    for j in range(len(num)):
        sum += num[j]
    #可以使用numpy自带的均值函数
    avg = np.mean(num)
    print("{:.2f}".format(avg))

    reverse()方法:

    将表中的元素反向存储

    pop()方法:

    Python 字典 pop() 方法删除字典给定键 key 及对应的值,返回值为被删除的值。key 值必须给出。 否则,返回 default 值。

    pop(key[,default])

    • key: 要删除的键值

    • default: 如果没有 key,返回 default 值

    注意1:在调用pop函数后,会对原来的列表产生影响,也就是说,pop函数删除的是原列表的值

    举个栗子:

    num = [1,2,3,4,5]
    num.pop()
    print(num)
    #输出[1, 2, 3, 4]

    注意2:pop函数里加入不同的值结果是不同的,默认列表中的元素首位标号为0,末尾元素为-1,依次类推

    举个栗子:

    num = [1,2,3,4,5]
    num.pop(-1)
    print(num)#输出[1, 2, 3, 4]
    num.pop(0)
    print(num)#输出[2, 3, 4]

    编程实例5:删除字符

    输入一个字符串 str,再输入要删除字符 c,大小写不区分,将字符串 str 中出现的所有字符 c 删除。

    输入格式:

    在第一行中输入一行字符 在第二行输入待删除的字符

    输出格式:

    在一行中输出删除后的字符串

    输入样例:

    在这里给出一组输入。例如:

            Bee
       E
    

    输出样例:

    在这里给出相应的输出。例如:

    result: B

    str = list(input().strip())
    x = input().strip()
    s = [i for i in str if not(i.lower() == x or i.upper() == x)]
    print(s)
    print('result: %s' %''.join(s).strip())

    strip()方法:

    Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

    注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

    str.strip([chars]);

    •  chars -- 移除字符串头尾指定的字符序列。

     举个栗子:

    str = "123abcrunoob321"
    print (str.strip( '12' ))  # 字符序列为 12,输出3abcrunoob3
    str1 = "    123456     "
    print(str1.strip())  #输出123456,无首位空格

    lower()方法与upper()方法:

    Python lower() 方法转换字符串中所有大写字符为小写。 python upper()方法转换字符串中所有小写字符为大写

    举个栗子:

    str = "hello!"
    print (str.upper())  # 输出HELLO!
    str1 = "HELLO!"
    print(str1.lower())  #输出hello!

    编程实例6:jmu-python-统计成绩

    输入一批学生成绩,计算平均成绩,并统计不及格学生人数。

    输入格式:

    每行输入一个数据,输入数据为负数结束输入

    输出格式:

    平均分=XX,不及格人数=XX,其中XX表示对应数据。如果没有学生数据,输出没有学生

    输入样例:

    30

    50

    70

    80

    90

    20

    -1

    输出样例:

    平均分=56.67,不及格人数=3

    a = float(input())
    list = []
    sum = a
    list.append(a)
    count = 1
    if a >= 0:
        while 1:
            a = float(input())
            if a < 0:
                break
            list.append(a)
            sum = a + sum
            count = count + 1
        print("平均分={:.2f},不及格人数=".format(sum / count), end="")
        n = 0
        for i in list:
            if i < (sum / count):
                n = n + 1
        print("%d" % n)
    else :
        print("没有学生")

    编程实例7:jmu-python-重复元素判定

    每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。
    编写函数判定列表中是否包含重复元素,如果包含返回True,否则返回False
    然后使用该函数对n行字符串进行处理。最后统计包含重复元素的行数与不包含重复元素的行数。

    输入格式:

    输入n,代表接下来要输入n行字符串。
    然后输入n行字符串,字符串之间的元素以空格相分隔。

    输出格式:

    True=包含重复元素的行数, False=不包含重复元素的行数
    ,后面有空格。

    输入样例:

    5

    1 2 3 4 5

    1 3 2 5 4

    1 2 3 6 1

    1 2 3 2 1

    1 1 1 1 1

    输出样例:

    True=3, False=2

    n = int(input())
    f = 0
    t = 0
    for i in range(n):
        a = input()
        a = list(a.split())
        if len(list(a)) == len(set(a)):
            f += 1
        else:
            t += 1
    print('True=%d, False=%d' %(t,f))

    set()方法:

    set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

    举个栗子:

    x = set('aaabbc')
    print(x)  #输出{'a', 'c', 'b'}
    y = set('abcddee') 
    print(y)   #输出{'d', 'c', 'b', 'a', 'e'}
    print(set(x&y))  #输出{'a', 'b', 'c'}
    print(set(x|y)) #输出{'d', 'a', 'c', 'b', 'e'}
    print(set(y-x)) #输出{'d', 'e'}

     

     

     
  • 相关阅读:
    Linux命令之find exec rm-删除所有日志文件
    Linux常用系统信息查询命令
    shell后台运行脚本
    Linux 下后台运行程序
    Ubuntu配置和修改IP地址
    ssh免密码登录配置方法
    (转)linux如何将新硬盘挂载到home目录下
    Shell中if [ ] 中-a到-z的意思
    安防监控相关
    本地yum源的建立
  • 原文地址:https://www.cnblogs.com/CoffeeSoul/p/12084135.html
Copyright © 2011-2022 走看看