Python演習2

(1) 3 つの整数の入力の最大値を返す関数 max(x, y, z) を定義します。

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) 文字列内の大文字、小文字、数字の数をカウントし、結果として辞書とともに呼び出し元に返す関数 count() を定義します。

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) 点が正方形の中にあるかどうかを判定するプログラムを書きます。正方形があり、四隅の座標(x,y)は(1,-1)、(1,1)、(-1,-1)、(-1,1)、xは横軸です, y は縦軸です。指定された点が正方形 (正方形の境界を含む) 内にあるかどうかを判断するプログラムを作成します。点が正方形の中にある場合は「yes」を出力し、それ以外の場合は「no」を出力します。(点の座標(m,n)は外部から入力)

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) 出力三角形の面積を計算する関数を書きます。浮動小数点型の 3 辺の長さを外部から入力する必要があります。三角形の面積公式は次のとおりであることが知られています: A=(s*(sa)*(sb)*(sc)) ** 0.5、ここで a、b、c は三角形の 3 辺の長さです。 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) ルーレット宝くじゲームをシミュレートするプログラムを作成します。

ルーレットホイールは 1 等、2 等、3 等の 3 つの部分に分かれており、ルーレットホイールの回転はランダムです。範囲が [0, 0.08) の場合は 1 等を表し、範囲が [0.08, 0.3) の場合は 2 等を表し、範囲が [0.3, 1.0) の場合は 3 等を表します。賞。

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) 入力された n が素数かどうかを判定する関数 is_prime(n) を定義し、素数であれば True を返し、素数でなければ False を返します。キーボードから 2 つの整数 X と Y を入力し、この関数を呼び出して 2 つの範囲内の素数の数 (X と Y を含む) を出力します。

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) 数値を左から右に読んでも、右から左に読んでも同じであることがわかっている場合、その数値は回文数と呼ばれます。たとえば、121、1221、および 15651 はすべて回文数です。ここで、n が回文数であるかどうかを判断する関数 h(n) を作成してください。回文数である場合は True を返し、そうでない場合は False を返します。上記の関数を使用して素数を決定し、回文と素数の両方である 3 桁の 10 進数をすべて見つけます。

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()

おすすめ

転載: blog.csdn.net/weixin_68479946/article/details/128793525