@Python3 record [Record Practice]

@Python3 record Record Practice

https://www.hackerrank.com/challenges/write-a-function/problem

Basic Practice

整数和小数 Division

Read two integers and print two lines. The first line should contain integer division, // . The second line should contain float division, / .

if __name__ == '__main__':
    a = int(input())
    b = int(input())
**print(a//b)
print(a/b)**

output: 第一个是整数, 第二个是小数

Loops

Sample Input 0

5
Sample Output 0

0
1
4
9
16

if __name__ == '__main__':
    n=int(input())
if n>=1 and n<=20:
    for i in range(n):
        print(i*i) **or i**2

**注意缩进–if --for --print ** ,*python3注意冒号

Define a function

> `def is_leap(year):
>     leap = False
>     if (year %4==0):
>         if (year%400==0):
>             leap = True
>     else :
>             leap = False
>     
>     return leap

**else后冒号 注意缩进,如:

def is_leap(year):
    leap = False
    if(year%4==0):
        if(year%100==0):
            if(year%400==0):
                leap=True
            else:
                leap=False
        else:
            leap=True
    else:
        leap=False
    return leap

亚军得分(remove max number)

Given the participants’ score sheet for your University Sports Day, you are required to find the runner-up score. You are given scores. Store them in a list and find the score of the runner-up.

Input Format

The first line contains . The second line contains an array of integers each separated by a space.

Constraints

Output Format

Print the runner-up score.

Sample Input 0

5
2 3 6 6 5
Sample Output 0

5
Explanation 0

Given list is . The maximum score is 6, second maximum is 5. Hence, we print 5 as the runner-up score.

  1. Remove the max value: list(set())
    区别:list 一个列表 有序;set 一组数,无序。
    对于访问一个set的意义就仅仅在于查看某个元素是否在这个集合里面,注意大小写敏感 i.e
s = set(['A', 'B', 'C'])
>>> print 'A' in s
True
>>> print 'D' in s
False

#或者用for访问
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for x in s:
    print x[0],':',x[1]

>>>
Lisa : 85
Adam : 95
Bart : 59

通过add和remove来添加、删除元素(保持不重复),添加元素时,用set的add()方法i.e. a.add & a.remove
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了; 反之, 如果删除的元素不存在set中,remove()会报错

if __name__ == '__main__':
    n = int(input())
    arr = map(int, input().split())
    a=list(set(arr))
    a.remove(max(a))
    print(max(a))
  1. 这个题还可以sort一下后,用len()-2个6。 其中:
    len():返回对象的长度,注意不是length()函数
    len([1,2,3]),返回值为3
    len([[1,2,3],[3,4,5]]),返回值为2
if __name__ == '__main__':
    n = int(input())
    arr = map(int, input().split())
    a=list(set(arr))
    a.sort()
    print(a[len(a)-2])

Nested Lists

  • get() 方法的语法:

    get() 函数返回指定键的值,如果值不在字典中返回默认值:
    dict.get(key, default=None)
    key – 字典中要查找的键。
    default – 如果指定键的值不存在时,返回该默认值值。

  • enumerate() 方法的语法:
    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

    enumerate(sequence, [start=0])

    sequence – 一个序列、迭代器或其他支持迭代对象。
    start – 下标起始位置。

  • Map()&Lamdax:x

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

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

语法

map(function, iterable, ...)

参数
function – 函数
iterable – 一个或多个序列

返回值
Python 2.x 返回列表。

Python 3.x 返回迭代器。

实例
以下实例展示了 map() 的使用方法:
其中 匿名函数 lamda x: x function, 元素1,元素2…

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

你可能感兴趣的:(@Python3 record [Record Practice])