Python 階乗計算、奇数・素数判定、数当てゲーム、例外処理

1. 1からnまでの合計を求めます

N=eval(input('输入一个正整数:'))
I,S = 0,0#初始化
while i <=N:
    S= S+i
    i = i+1
print("the ressult is:",S)

2. 階乗を求める

N=eval(input('请输入一个正整数:'))
S=1
for i in range(N):
   S=S*(i+1)
print('结果是:',S)

3. 奇数かどうかを判断する

def is_odd(x):
    if x%2==1:
        return True
    else:
        return False

4. 素数かどうかを判定する

t = True
n=13
for i in range(2,n):
    if n%i==0:
        t=False
        break
print(True)

4. 例外処理: try-excel

try:
    a=eval(input('aaaa'))
    print('a')
except NameError:
    print('变量未定义')
except:
    print('异常输入')

5. 休憩の利用

a=input('a number please:')
while True:
    print('the number is ',a)
    a +='0'
    if len(a) >= 8:
        break

continue の後のループはスキップされ、次のループが実行され、break は直接
6 を終了します。 数字当てゲーム

import random
n=1 
set_num=random.randint(0,9)
while True:
    num=eval(input('请输入一个数字:'))
    if num > set_num:
        print('遗憾,太大了!')
        n+=1
    elif num < set_num:
        print('遗憾,太小了!')
        n+=1
    else: 
        print('预测{:d}次,你猜中了!'.format(n))
        break

7.ランダムふるい

from random import randint
class Die():
    """表示一个骰子的类"""
    def __init__(self, num_sides = 6):
        """色子默认6面"""
        self.num_sides = num_sides
    def roll(self):
        """方法roll返回一个位于1和骰子面数之间的随机值"""
        return randint(1, self.num_sides)

#模拟两个骰子投1000次
die1=Die()
die2=Die(50)
result=[]
for roll_num in range(1000):
    number=die1.roll()+die2.roll()
    result.append(number)
frequencies=[];
for value in range(2,die1.num_side+die2.num_sides+1):#统计两个骰子一共在value值投出次数
    frequency=result.count(value)
    frequencies.append(frequency)
hist=pygal.Bar()#生成一个统计表
hist.title="Results of rolling one D6+D50 1000 times"#标题
hist.x_labels=[]
for x_label in range(2,die1.num_side+die2.num_side+1):
    hist.x_labels.append(x_label)
hist.x_title="Result"
hist.y_title="Frequency of Result"
hist.add('D6+D50',frequencies)
hist.render_to_file('die_visual.svg')

6面サイコロのインスタンスを作成する

die_6 = Die()
num_throw = 10000
results = [die_6.roll() for i in range(num_throw)]
frequencies = [results.count(value) for value in range(1,die_6.num_sides+1)]
hist = pygal.Bar()
hist.title = "Frequencies of 6-sides throw %d times" % num_throw
hist.x_lables = list(range(1,die_6.num_sides+1))
hist.x_title = "Result"
hist.y_title = "Frequencies of each value"
hist.add("D6",frequencies)
hist.render_to_file("D6_%d.svg" % num_throw)
hist.render_to_png("D6_%d.png" % num_throw)

おすすめ

転載: blog.csdn.net/weixin_43545069/article/details/103275643