Python-Übung 2

(1) Definieren Sie die Funktion max(x, y, z), um den Maximalwert der Eingabe von drei Ganzzahlen zurückzugeben.

def max(x, y, z):
   if x>=y>=z or x>=z>=y:
       return x
   elif y>=x>=z or y>=z>=x:
       return y
   elif z>=x>=y or z>=y>=x:
       return z

a = max(4, 5, 7)
print(f"这三个数字中的最大值为{a}")

(2) Definieren Sie die Funktion count(), um die Anzahl der Großbuchstaben, Kleinbuchstaben und Zahlen in einer Zeichenfolge zu zählen und sie mit einem Wörterbuch als Ergebnis an den Aufrufer zurückzugeben.

def count(s):
    smallCount=0
    bigCount=0
    numberCount=0
    for i in s:
        if i>='a' and i<='z':
            smallCount=smallCount+1
        elif i>='A'and i<='Z':
             bigCount=bigCount+1
        elif i>='0'and i<='9':
            numberCount=numberCount+1
    print(f"这个字符串中的大写字母有{bigCount}个,小写字母有{smallCount}个,字母有{numberCount}个")
aaa=input("请输入你的字符串:")
count(aaa)

(3) Schreiben Sie ein Programm, um zu bestimmen, ob der Punkt innerhalb des Quadrats liegt. Es gibt ein Quadrat, die Koordinaten (x, y) der vier Ecken sind (1, -1), (1, 1), (-1, -1), (-1, 1), x ist die horizontale Achse , y ist die vertikale Achse. Schreiben Sie ein Programm, um zu bestimmen, ob ein bestimmter Punkt innerhalb des Quadrats (einschließlich der Quadratgrenzen) liegt. Wenn der Punkt innerhalb des Quadrats liegt, geben Sie „Ja“ aus, andernfalls geben Sie „Nein“ aus. (Die Koordinaten (m, n) des Punktes werden von außen eingegeben)

point = input("请输入一个点的坐标,用空格分开").split()
m = float(point[0])
n = float(point[1])
if -1<=m<=1 and -1<=n<=1:
    print("yes")
else:
    print("no")

(4) Schreiben Sie eine Funktion zur Berechnung der Fläche des Ausgabedreiecks. Es erfordert eine externe Eingabe der Seitenlängen der drei Seiten, bei denen es sich um Gleitkommatypen handelt. Es ist bekannt, dass die Flächenformel eines Dreiecks lautet: A=(s*(sa)*(sb)*(sc)) ** 0,5, wobei a, b, c die Längen der drei Seiten des Dreiecks sind, und s=(a+b +c)/2.

s = input("请输入三角形的三边长,用空格分开").split()
a = float(s[0])
b = float(s[1])
c = float(s[2])
def sjxmj(sa, sb, sc):
    ss = (sa+sb+sc)/2
    A =(ss*(ss-sa)*(ss-sb)*(ss-sc))**0.5 # **是幂运算
    return A
B=sjxmj(a,b,c)
print(f"该三角形的面积为{B}")

(5) Schreiben Sie ein Programm zur Simulation des Roulette-Lotteriespiels:

Das Roulette-Rad ist in drei Teile unterteilt: erster Preis, zweiter Preis und dritter Preis; es ist zufällig, wann sich das Roulette-Rad dreht. Wenn der Bereich zwischen [0, 0,08) liegt, stellt er den ersten Preis dar, wenn der Bereich zwischen [0,08, 0,3) liegt, stellt er den zweiten Preis dar, und wenn der Bereich zwischen [0,3, 1,0) liegt, stellt er den dritten Preis dar Preis.

import random
def fun(num):
    if num >= 0 and num < 0.08:
        return 1
    elif num >= 0.08 and num < 0.3:
        return 2
    else:
        return 3
A= random.uniform(0,1)
B=fun(A)
print(f'该玩家获得了{B}等奖励')

(6) Definieren Sie eine Funktion is_prime(n), um zu bestimmen, ob die Eingabe n eine Primzahl ist. Wenn ja, gibt sie True zurück, andernfalls gibt sie False zurück. Geben Sie zwei ganze Zahlen X und Y über die Tastatur ein und rufen Sie diese Funktion auf, um die Anzahl der Primzahlen innerhalb der beiden Bereiche (einschließlich X und Y) auszugeben.

def is_prime(n):
    import math
    k = int(math.sqrt(n))
    for i in range(2, k + 2):
        if n % i == 0:
            break
    if i == k + 1:
        return True
    else:
        return False
def num(a,b):
    count=0
    for i in range(a,b+1):
        if is_prime(i):
            count = count+1
    print(f'共有{count}个素数')
X = int(input("请输入X的值:"))
Y = int(input("请输入Y的值:"))
num(X,Y)

(7) Wenn bekannt ist, dass eine Zahl beim Lesen von links nach rechts und von rechts nach links gleich ist, wird die Zahl als Palindromzahl bezeichnet. Beispielsweise sind 121, 1221 und 15651 allesamt Palindromzahlen. Schreiben Sie nun bitte eine Funktion h(n), um zu bestimmen, ob n eine Palindromzahl ist. Wenn ja, gibt sie True zurück, andernfalls gibt sie False zurück. Verwenden Sie die obige Funktion zur Bestimmung von Primzahlen, um alle dreistelligen Dezimalzahlen zu finden, die sowohl Palindrome als auch Primzahlen sind.

def h(a):
    b = len(str(a))
    n=str(a)
    for i in range(b):
        if n==n[::-1]:
            return True
        else:
            return False
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True
def main():
    print("既是回文数又是素数的3位十进制数")
    for j in range(100,1000):
        if is_prime(j) and h(j):
            print(j)
main()

Ich denke du magst

Origin blog.csdn.net/weixin_68479946/article/details/128793525
Empfohlen
Rangfolge