Day02–homework
1.解一元二次方程
编写程序:
import math
d = 0
def gen(a,b,c):
d = b*b - 4 * a * c
if d > 0 :
r1 = (-b + math.sqrt(d)) /( 2*a)
r2 = (-b - math.sqrt(d)) / (2*a)
print("该方程实根为 %f and %f"%(r1,r2))
elif d == 0:
r = -b / 2*a
print("该方程实根为 %f"%r)
else:
print('该方程无实根')
def start():
a,b,c = map(float,input('请输入a,b,c(逗号分隔):').split(','))
gen(a,b,c)
start()
结果为:
请输入a,b,c(逗号分隔):1,3,1
该方程实根为 -0.381966 and -2.618034
请输入a,b,c(逗号分隔):1,2.0,1
该方程实根为 -1.000000
请输入a,b,c(逗号分隔):1,2,3
该方程无实根
2.学习加法
编写程序:
import random
def Add(x):
a = random.randint(0,100)
b = random.randint(0,100)
if x == a + b:
print('True')
else:
print('False')
def Start():
x = int(input('请输入两个随机数的和:'))
Add(x)
Start()
结果为:
请输入两个随机数的和:66
False
3.找未来数据
*编写程序:
def main():
N = int(input('Enter today is day(Sunday=0,Monday=1...Saturday=6):'))
F = int(input('Enter the number of days elapsed since today:'))
Nday = mathtoday(N)
Fday = mathFday(N,F)
print('Today is %s and the future day is %s'%(Nday,Fday))
def mathtoday(Fday):
if Fday == 0:
today = 'Sunday'
elif Fday == 1:
today = 'Monday'
elif Fday == 2:
today = 'Tuesday'
elif Fday == 3:
today = 'Wednesday'
elif Fday == 4:
today = 'Thursday'
elif Fday == 5:
today = 'Friday'
elif Fday == 6:
today = 'Saterday'
return today
def mathFday(Nday,Fday):
Fuday = (Nday + Fday) % 7
return mathtoday(Fuday)
main()
结果为:
Enter today is day(Sunday=0,Monday=1...Saturday=6):1
Enter the number of days elapsed since today:3
Today is Monday and the future day is Thursday
4.排序
编写程序:
def start():
a,b,c = map(int,input('请输入三个整数(逗号分隔):').split(','))
list1 = [a,b,c]
math(list1)
print(list1)
def math(list1):
return list1.sort()
start()
结果为:
请输入三个整数(逗号分隔):1,5,2
[1, 2, 5]
5.比较价钱
编写程序:
def start():
weight1,price1 = map(float,input('Enter weight and price for package 1:').split(','))
weight2,price2 = map(float,input('Enter weight and price for package 2:').split(','))
package1 = math(weight1,price1)
package2 = math(weight2,price2)
math1(package1,package2)
def math1(package1,package2):
if package1 > package2:
print('package2 has the better price.')
elif package1 < package2:
print('package1 has the better price.')
else:
print('一球样')
def math(weight,price):
xxxPrice = price/weight
return xxxPrice
start()
结果为:
Enter weight and price for package 1:50,24.59
Enter weight and price for package 2:25,11.99
package2 has the better price.
6.找天数
编写程序:
def start():
year,month = map(int,input('输入年和月(逗号分隔):').split(','))
math(year,month)
def math(year,month):
list1 = [1,3,5,7,8,10,12]
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
if month == 2:
print('这个月有29天')
elif month in list1:
print('这个月有31天')
else:
print('这个月有30天')
else:
if month == 2:
print('这个月有28天')
elif month in list1:
print('这个月有31天')
else:
print('这个月有30天')
start()
结果为:
输入年和月(逗号分隔)2000,2
这个月有29天
输入年和月(逗号分隔)2005,3
这个月有31天
7.硬币正反游戏
编写程序:
def start():
x = int(input('请输入你的猜测(1为正,2为反):'))
math(x)
def math(x):
a = random.randint(1,2)
if x == a:
print('你猜对了')
else:
print('你猜错了')
start()
结果为:
请输入你的猜测(1为正,2为反):2
你猜对了
请输入你的猜测(1为正,2为反):2
你猜错了
8.猜拳游戏
编写程序:
import random
def start():
U_res = int(input('0:石头,1:剪刀,2:布>>>'))
math(U_res)
def math(U_res):
C_res = random.randint(0,2)
if C_res == U_res:
print('平局')
else:
if C_res == 0 and U_res == 1:
print('电脑赢了 ')
elif C_res == 1 and U_res == 2:
print('电脑赢了 ')
elif C_res == 2 and U_res == 0:
print('电脑赢了 ')
else:
print('你赢了 ')
start()
结果为:
0:石头,1:剪刀,2:布>>>0
你赢了
9.科学问题
编写程序:
def main(year,m,d):
a = ['周六','周日','周一','周二','周三','周四','周五']
if m == 1:
m = 13
year = year - 1
if m ==2:
m = 14
year = year - 1
h = int(d+((26*(m+1))//10)+(year%100)+((year%100)/4)+((year//100)/4)+5*year//100)%7
day = a[h]
print('那一天是一周中的:%s' %day)
def Start():
year = int(input('输入哪一年:'))
m = int(input('输入月份1-12:'))
d = int(input('输入月份第几天1-31:'))
main(year,m,d)
Start()
结果为:
输入哪一年:2013
输入月份1-12:1
输入月份第几天1-31:25
那一天是一周中的:周五
输入哪一年:2012
输入月份1-12:5
输入月份第几天1-31:12
那一天是一周中的:周六
输入哪一年:2019
输入月份1-12:8
输入月份第几天1-31:16
那一天是一周中的:周五
10.选牌
编写程序:
def chou():
import numpy as np
daxiao=np.random.choice(['A','2','3','4','5','6','7','8','9','10','J','Q','K'])
huase=np.random.choice(['梅花','红桃','方块','黑桃'])
print('你选择的牌是 %s , %s'%(huase,daxiao))
def Start():
a = input("是否决定抽牌y/n:")
if a == 'y':
chou()
else:
pass
Start()
结果为:
是否决定抽牌y/n:y
你选择的牌是 黑桃 , 5
11.回文数
编写程序:
def main(a):
b = a
a2 = 0
while b > 0:
a2 *= 10
a2 += b % 10
b //= 10
if a == a2:
print('%d是回文数' % a)
else:
print('%d不是回文数' % a)
def start():
a = int(input('请输入一个正整数: '))
main(a)
start()
结果为:
请输入一个正整数: 121
121是回文数
请输入一个正整数: 123
123不是回文数
12.计算三角形周长
编写程序:
def main(a,b,c):
if a+b>c and a+c>b and b+c>a:
L = a+b+c
print("其周长为",L)
else:
print("不是三角形三条边")
def Start():
a,b,c = map(float,input('请输入三条边长(逗号分隔):').split(','))
main(a,b,c)
Start()
结果为:
请输入三条边长(逗号分隔):3,4,5
其周长为 12.0
请输入三条边长(逗号分隔):2,2,5
不是三角形三条边