一些简单的小程序(1)

目录:
程序1:猜一个0至99的彩票随机数,猜中会获取不同的奖励
程序2:判断最大值
程序3:猜一个随机数,并获得不同的提示
程序4: 生成5道10以内的减法运算
程序5: 1 + 2 + 3 ... + 10的值
程序6: 求任意两个数的最大公约数

## 本文规定:
## 常量全部用大写形式,如: USER_IS_NAME
## 变量格式,如: userIsName

程序1:猜一个0至99的彩票随机数,猜中会获取不同的奖励

## 程序1:猜一个0至99的彩票随机数,猜中会获取不同的奖励
# 导入随机模块
from random import randint

# 生成一个0至99的随机数,包含0,99
lottery = randint(0, 99)

# 命令用户输入一个数字
guess = eval(input("Enter your lottery pick (two digits): "))

# lotteryDigit1提取lottery的十位数,如50,则提取的数为5
# lotteryDigit2提取lottery的个位数,如52,则提取的数位2
lotteryDigit1 = lottery // 10
lotteryDigit2 = lottery % 10

# 提取用户输入数字的十位数和个位数
guessDigit1 = guess // 10
guessDigit2 = guess % 10

# 显示系统生成的随机数
print("The lottery number is", lottery)

if guess == lottery:                        # 判断用户输入是否与随机数完全相同
    print("Exact match: you win $10,000")
elif (guessDigit2 == lotteryDigit1 and \
      guessDigit1 == lotteryDigit2):        # 判断用户输入数字与随机数相同(顺序不同)
    print("match all digits: you win $3,000")
elif (guessDigit1 == lotteryDigit1
          or guessDigit1 == lotteryDigit2
          or guessDigit2 == lotteryDigit1
          or guessDigit2 == lotteryDigit2): # 判断用户数字是否猜中了随机数中的一个
    print("Match one digit: you win $1,000")
else:
    print("Sorry, no match")                # 未猜中

程序2:判断最大值

## 程序2:判断最大值
number1, number2 = 6, 7
# 若number1 > number2正确,输出number1,否则输出number2
number1 if number1 > number2 else number2

程序3:猜一个随机数,并获得不同的提示

## 程序3:猜一个随机数,并获得不同的提示

# Import module
# 导入random模块中的randint函数
from random import randint

# Users have 3 chances in total
# 用户总共有三次机会
CHANCE = 3

# Generate random numbers
# 生成一个随机数
randomNumber = randint(0, 100)

UserInput = eval(input("请输入数字: "))
while UserInput != randomNumber:
    if UserInput > randomNumber:
        CHANCE -= 1
        UserInput = eval(input("大了大了,还有" + str(CHANCE) + "次机会"))
    elif CHANCE <= 0:
        print("机会用完啦!,正确答案是", randomNumber)
        break
    else:
        CHANCE -= 1
        UserInput = eval(input("小了小了,还有" + str(CHANCE) +  "次机会"))
if UserInput == randomNumber:
    print("输入正确")

程序4: 生成5道10以内的减法运算

## 程序4: 生成5道10以内的减法运算

# Import module
# 导入random模块中的randint函数
from random import randint

# Collecting the number of errors(收集答错题的次数)
collectErrors = 0

# Use loops to generate 5 questions(使用循环生成5道题)
for i in range(1, 6):
    # Generate two random numbers(生成两个随机数字)
    number1, number2 = randint(0, 9), randint(0, 9)

    # Ensure that Number1 is the maximum(确保number1为最大值)
    if number1 < number2:
        number1, number2 = number2, number1
        
    userIsAnswer = eval(input("题目" + str(i) + ": What is " + str(number1) + \
                              " - " + str(number2) + " =: "))
    if userIsAnswer != number1 - number2:
        collectErrors += 1
    print("正确答案是: " + str(number1) + " - " + str(number2) + " = " + str(number1 - number2))
    
print("总共错了 %g 道题" % collectErrors)

程序5: 1 + 2 + 3 ... + 10的值

## 程序5: 1 + 2 + 3 ... + 10
sum = 0
i = 0
while i < 10:
    sum += i
    i += 1
print(sum)

程序6: 求任意两个数的最大公约数

## 程序6: 求任意两个数的最大公约数

print("--------求两个数的最大公约数--------")
print("规定这个两个数字必须为正整数,且不能相等")
# Used to find the common factors of n1 and n2(用来找出公因子)
commonFactor = 1
# Collect all numbers that can be divisible by n1 and n2 at the same time
# 收集所有可以被n1和n2同时整除的数字
List = []

n1 = eval(input("输入第一个数字: "))
n2 = eval(input("输入第二个数字,且不能与第一个数字相等,否则无法求出最大公约数: "))

# Determine whether N1 and N2 are equal
while n1 == n2:
    n1 = eval(input("请重新输入第一个数字: "))
    n2 = eval(input("请重新输入第二个数字,且不能与第一个数字相等:  "))

# When the remainder is 0, this number can be divisible by(余数为0时,数字可以被整除)
while commonFactor < max(n1, n2):
    if (n1 % commonFactor == 0) and \
    (n2 % commonFactor == 0):
        List.append(commonFactor)        
    commonFactor += 1
print("%g 与 %g 的最大公约数是: %g" % (n1, n2, max(List)))

猜你喜欢

转载自www.cnblogs.com/nianqiantuling/p/9113967.html
今日推荐