7-1 求最大值及其索引

本题要求编写程序,找出给定的n个数中的最大值(如果有多个最大值,只找第一个)及其对应的正向索引。
输入格式:
在第一行输入若干个整数,用空格分隔。
输出格式:
在一行中输出最大值及最大值的索引,中间用一个空格分开。
输入样例:
在这里给出一组输入。例如:

2 8 10 1 9 10

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

10 2

参考写法

lst = list(map(int, input().split()))
largest = max(lst)
position = lst.index(largest)
print(largest, position)

不使用 max,求最大值(对应第二行)

for i in lst:
    if i > largest:
        largest = i

不使用 index,找对应索引(对应第三行)

position = 0
for i in lst:
    if i != largest:
        position += 1
    else:
        break

7-2 奇特的四位数

一个四位数,各位数字互不相同,所有数字之和等于6,并且这个数是11的倍数。
满足这种要求的四位数有多少个?各是什么?
输入格式:
该题目没有输入
输出格式:
第一行输出符合条件的数字个数
第二行以列表形式输出所有满足条件的四位数,列表元素按由小到大顺序排列
输出样例:
在这里给出相应的输出。例如:

6
[1023, 1320, 2013, 2310, 3102, 3201]

参考写法

应该有更简洁的写法。

num = []
for i in range(1000, 10000, 1):
    if i % 11 != 0:  # 整除
        continue
    lst = list(str(i))
    set1 = set(lst)
    if len(set1) != len(lst):  # 数字均不同
        continue
    a = 0
    for j in lst:
        a += int(j)
    if a == 6:  # 和等于六
        num.append(i)
print(len(num))
print(num)

7-3 最短跑道长度(高教社,《Python编程基础及应用》习题3-12

假设某飞机的加速度是a,起飞的速度是v,下述公式可以计算出该飞机起飞所需的最短跑道长度: L = v2/(2a)。编写一个程序,提示用户输入起飞速度v(m/s)和加速度a(m/s2),计算飞机起飞的最短跑道长度,输出时保留2位小数。计算过程宜封装成一个函数,该函数接受参数v和a,返回计算所得的L。
输入样例:
在这里给出一组输入。例如:

100
5

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

最短跑道长度为:1000.00

提示:本题中的冒号均为英文冒号。

参考写法

v = eval(input())
a = eval(input())
L = (v ** 2) / (2 * a)
print(f"最短跑道长度为:{L:.2f}")
# 注:如果无法理解f格式化,建议使用.format()

7-4 鸡兔同笼(高教社,《Python编程基础及应用》习题3-7)

鸡兔同笼问题,从键盘读取脚数,头数,输出鸡数和兔数。
输入格式:
脚数
头数
输出格式:
鸡数
兔数
输入样例:
在这里给出一组输入。例如:

94
35

输出样例:

23
12

参考写法

也可以使用抬脚的写法。

f = eval(input())  # foot
h = eval(input())  # head,等于总数
for x in range(0, h):
    y = h - x
    if eval("2*x+4*y") == f:
        print(x, y, sep="\n")
        break

7-5 输入三角形三边长,求三角形面积(高教社,《Python编程基础及应用》习题3-8)

编程序实现功能:输入三角形的三条边边长,求三角形面积,其中面积计算使用用户自定义函数实现。
输出的面积保留两位小数。
输入格式:
边长1
边长2
边长3
输出格式:
当三条边可能构成合法的三角形时,输出应为:

面积

当三条边无法构成合法的三角形时,输出:

数据错误

输入样例:

3
4
5

输出样例:

6.00

提示:面积计算可使用海伦公式;两边之和大于第3边;两边之差小于第3边。

参考写法

def isTriangular(a, b, c):
    if a + b > c and a + c > b and b + c > a:
        return True
    return False


def calArea(a, b, c):
    p = (a + b + c) / 2  # 半周长
    s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
    return s


x, y, z = eval(input()), eval(input()), eval(input())
if isTriangular(x, y, z):
    A = calArea(x, y, z)
    print(f"{A:.2f}")
else:
    print("数据错误")

7-6 3,5,7的倍数判定(高教社,《Python编程基础及应用》习题6-4)

编程序实现功能:输入一个整数,判断其是否能同时被3、5、7整除。能被整除则输出“Yes”,否则, 输出“No”。
输入格式:
一个整数
输出格式:
Yes 或 No
输入样例:

7

输出样例:

No

参考写法

i = int(input())
if i % 3 == 0 and i % 5 == 0 and i % 7 == 0:
    print("Yes")
else:
    print("No")

7-7 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7)

编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。
输入格式:
单词1 单词2 .... 单词n
输出格式:
单词个数,单词平均长度(保留两位小数)
输入样例:

aaa bbb ccccccccccc

输出样例:

3,5.67

参考写法

lst = input().split()
length = len(lst)
total = 0
for i in lst:
    total += len(i)
average = total / length
print(f"{length},{average:.2f}")

7-8 平均值

在一行上输入若干整数,每个整数以一个空格分开,求这些整数的平均值。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入一个字符串(仅包含数字字符和空格)。
输出格式:
对于每组测试,输出以空格分隔的所有整数的平均值,结果保留一位小数。
输入样例:

1
1 2 3 4 5 6 7 8 9 10

输出样例:

5.5

参考写法

t = int(input())
for i in range(t):
    lst = input().split()
    sum = 0
    for i in lst:
        sum += int(i)
    a = sum / len(lst)
    print(f"{a:.1f}")

7-9 求圆周长和面积

已知一个圆的半径,计算该圆的周长和面积,结果保留2位小数。半径用实数表示,由键盘输入。设圆周率等于3.14159。
输入格式:
输入在一行中给出1个实数r,表示圆的半径。
输出格式:
在一行中输出圆的周长和面积,结果保留2位小数。数据之间留一个空格。
输入样例:

3

输出样例:

18.85 28.27

参考写法

from math import pi

r = eval(input())
c = 2 * pi * r
s = pi * r ** 2
print(f"{c:.2f} {s:.2f}")

7-10 电费

某电价规定:月用电量在150千瓦时及以下部分按每千瓦时0.4463元收费,月用电量在151~400千瓦时的部分按每千瓦时0.4663元收费,月用电量在401千瓦时及以上部分按每千瓦时0.5663元收费。
请编写一个程序,根据输入的月用电量(单位以千瓦时计),按该电价规定计算出应缴的电费(单位以元计)。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试,输入一个整数n(0≤n≤10000),表示月用电量。
输出格式:
对于每组测试,输出一行,包含一个实数,表示应缴的电费。结果保留2位小数。
输入样例:

1
267

输出样例:

121.50

参考写法

T = int(input())
for i in range(T):
    elect = eval(input())
    if elect <= 150:
        cost = elect * 0.4463
    elif elect <= 400:
        cost = 150 * 0.4463 + (elect - 150) * 0.4663
    else:
        cost = 150 * 0.4463 + 250 * 0.4663 + (elect - 400) * 0.5663
    print(f"{cost:.2f}")