day_04练习

基础题
1、(数学方面:五角数)一个五角数被定义为n(3n-1)/2,其中n=1、2、…所以,开始的几个数是1、5、12、22、…编写一个带下面函数头的函数返回五角数
def getPentagonalNumber(n):
编写一个程序来使用这个函数显示前100个五角数,每行显示10个

def getPentagonalNumber(n):
if n % 10 == 0:
print()

def Start():
for n in range(1,101):
a = n * (3 * n - 1) / 2
print("%d"%a,end = “\t”)
getPentagonalNumber(n)
Start()

1 5 12 22 35 51 70 92 117 145
176 210 247 287 330 376 425 477 532 590
651 715 782 852 925 1001 1080 1162 1247 1335
1426 1520 1617 1717 1820 1926 2035 2147 2262 2380
2501 2625 2752 2882 3015 3151 3290 3432 3577 3725
3876 4030 4187 4347 4510 4676 4845 5017 5192 5370
5551 5735 5922 6112 6305 6501 6700 6902 7107 7315
7526 7740 7957 8177 8400 8626 8855 9087 9322 9560
9801 10045 10292 10542 10795 11051 11310 11572 11837 12105
12376 12650 12927 13207 13490 13776 14065 14357 14652 14950
1
2
3
4
5
6
7
8
9
10
2、(求一个整数各个数字的和)使用函数头:def sumDigits(n)

def sumDigits(n):
sum = 0
m = str(n)
for i in range(len(m)):
num = n//10**i%10
sum += num
print(sum)
def start():
n = int(input(“输入一个整数:”))
sumDigits(n)
start()

输入一个整数:12345
15
1
2
3、对三个数排序 def displaySortedNumbers(num1,num2,num3)

def displaySortedNumbers(num1,num2,num3):
c = [num1,num2,num3]
c.sort()
print©

def Start():
num1,num2,num3 = map(int,input(‘请输入三个数(,分隔)’).split(’,’))
displaySortedNumbers(num1,num2,num3)
Start()

请输入三个数(,分隔)22,11,35
[11, 22, 35]

4、(财务应用:计算未来投资值)编写一个函数计算指定年数以给定的利率来
计算未来投资值。
def dutureInvestmentValue(investmentAmount.monthlyInterestRate,years):

def dutureInvestmentValue(investmentAmount,monthlyInterestRate,years):
for i in range(1,years+1):
j = investmentAmount * monthlyInterestRate*0.01
investmentAmount += j
print(i,end = “\t”)
print("%.2f"%investmentAmount)

def Start():
investmentAmount = int(input(“请输入投资金额:”))
monthlyInterestRate = int(input(“请输入年利率(百分比格式):”))
print(“Years Future Value”)
years = 30
dutureInvestmentValue(investmentAmount,monthlyInterestRate,years)
Start()

Years Future Value
1 1090.00
2 1188.10
3 1295.03
4 1411.58
5 1538.62
6 1677.10
7 1828.04
8 1992.56
9 2171.89
10 2367.36
11 2580.43
12 2812.66
13 3065.80
14 3341.73
15 3642.48
16 3970.31
17 4327.63
18 4717.12
19 5141.66
20 5604.41
21 6108.81
22 6658.60
23 7257.87
24 7911.08
25 8623.08
26 9399.16
27 10245.08
28 11167.14
29 12172.18
30 13267.68

5、(显示字符)打印ch1到ch2之间的字符,按每行指定某个数来打印。编写一个程序,
打印“I”到“Z”之间的字符,每行打印10个
def printChars(ch1,ch2,numberPerLine):

def printChars(ch1,ch2,numberPerLine):
for i in range(ch1,ch2+1):
j = chr(i)
print(j,end = " ")
if (i + 2) % 10 == 0:
print()

def Start():
ch1 = 49
ch2 = 90
numberPerLine = 1
printChars(ch1,ch2,numberPerLine)
Start()

1 2 3 4 5 6 7 8 9 :
; < = > ? @ A B C D
E F G H I J K L M N
O P Q R S T U V W X
Y Z

6、(一年的天数)编写一个程序,显示从2010到2020年每年的天数
def numberOfDaysInAYear(year):

def numberOfDaysInAYear(year):
for i in range(year,year + 11):
print("%d年"%i,end = " ")
if i % 4 == 0:
print(“366天”)
else:
print(“365天”)

def Start():
year = 2010
numberOfDaysInAYear(year)
Start()

2010年 365天
2011年 365天
2012年 366天
2013年 365天
2014年 365天
2015年 365天
2016年 366天
2017年 365天
2018年 365天
2019年 365天
2020年 366天

7、(几何问题:显示角)计算两点之间的距离
def distance(x1,x2,y1,y2)

import math
def distance(x1,x2,y1,y2):
mo = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
print(“两点间的距离是%.2f”%mo)
def Start():
x1,x2 = map(float,input(‘输入x点的坐标(逗号分隔):’).split(’,’))
y1,y2 = map(float,input(‘输入y点的坐标(逗号分隔):’).split(’,’))
distance(x1,x2,y1,y2)
Start()

输入x点的坐标(逗号分隔):1,2
输入y点的坐标(逗号分隔):3,4
两点间的距离是1.41

8、(梅森素数)如果一个素数可以写成2^(p-1)的形式,其中p是某个正整数,
那么这个数称为梅森素数。写出p<=31的所有梅森素数

def sushu§:
i = 2
c = []
d = []
while i <= p:
j = 2
while j <= i:
if i % j == 0:
if i == j:
c.append(i)
break
j += 1
i += 1
print©
for p in c:
d.append(2 ** (p-1))
print(d)
def Start():
p = 31
sushu§
Start()

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
[2, 4, 16, 64, 1024, 4096, 65536, 262144, 4194304, 268435456, 1073741824]
1
2
9、(当时间和日期)调用time.time()返回从1970年1月1日0点开始的毫秒数,
编写程序显示时间和日期

import time
ticks = time.time()*60
localtime = time.localtime(time.time())
print (“本地时间为 :”, localtime)
print (“当前时间毫秒:”, ticks)

本地时间为 : time.struct_time(tm_year=2019, tm_mon=8, tm_mday=20, tm_hour=20, tm_min=1, tm_sec=54, tm_wday=1, tm_yday=232, tm_isdst=1)
当前时间毫秒: 93980958884.62474

10、(掷骰子)掷两个骰子,每个有六个面,检查和。和为2、3、12输,为7、
11赢,如果是其他,就确定了一个点,继续掷,直到掷出7或和刚才相同的数。
是7则输,一样则赢

import random
def zhi(a,b):
if a + b == 2 or a + b == 2 or a + b == 13:
print(“很遗憾,你输了”)
elif a + b == 7 or a + b == 11:
print(“恭喜你,你赢了”)
else:
bi(a,b)

def bi(a,b):
c = random.randint(1,7)
d = random.randint(1,7)
print©
print(d)
if c + d == 7:
print(“很遗憾,你输了”)
elif c + d == a + b:
print(“恭喜你,你赢了”)
else:
bi(a,b)

def Start():
a = random.randint(1,7)
b = random.randint(1,7)
print(a)
print(b)
zhi(a,b)
Start()

很遗憾,你输了
在这里插入图片描述

class Rectangle(object):
def long1(self):
width = 4
heightd = 40
print(“矩形的1宽为%d”%width)
print(“矩形的1高为%d”%heightd)
self.getArea(width,heightd)
self.getPerimeter(width,heightd)

def long2(self):
    width = 3.5
    heightd = 35.7
    print("矩形的2宽为%.1f"%width)
    print("矩形的2高为%.1f"%heightd)
    self.getArea(width,heightd)
    self.getPerimeter(width,heightd)        

def getArea(self,width,heightd):
    area = width * heightd
    print("它的面积为%.2f"%area)

def getPerimeter(self,width,heightd):
    perimeter = (width + heightd) * 2
    print("它的周长为%.2f"%perimeter)

if name == “main”:
rectangle = Rectangle()
rectangle.long1()
rectangle.long2()

矩形的1宽为4
矩形的1高为40
它的面积为160.00
它的周长为88.00
矩形的2宽为3.5
矩形的2高为35.7
它的面积为124.95
它的周长为78.40
————————————————
2
在这里插入图片描述
class Account(object):
def init(self, id_=0, balance =100, annuallntersetRate=0):
self._id = id
self.__balance = balance
self.__annuallntersetRate = annuallntersetRate

@property
def id(self):
    return self.__id

@id.setter
def id(self,new_id):
    self.__id = new_id

@property
def balance(self):
    return self.__balance

@balance.setter
def balance(self,new_balance):
    self.__balance = new_balance

@property
def annuallntersetRat(self):
    return self.__annuallntersetRat

@annuallntersetRat.setter
def annuallntersetRat(self,new_annuallntersetRat):
    self.__annuallntersetRat = new_annuallntersetRat

def id(self):
    return self.__id  

def getMonthlyInterestRate(self):
    return self.__annuallntersetRate / 12 / 100     

def getMonthlyInterest(self):
    rate = self.getMonthlyInterestRate()
    res = self.__balance * rate        
    return res

def withdrow(self,money):
    if self.__balance >= money:
        self.__balance -= money
        print('您已成功取出:¥%.2f'%money)
        print("您的余额为:¥%.2f"%self.__balance)
    else:
        print("余额不足")
        print("您的余额为:¥%.2f"%self.__balance)

def deposit(self,money):
    self.__balance += money
    print('您已成功存入:¥%.2f'%money)
    print("您的余额为:¥%.2f"%self.__balance)

if name == “main”:
account = Account(id_ = 1122,balance = 20000, annuallntersetRate = 4.5)
print(“id:”,account.id())
print(“月利率:”,account.getMonthlyInterestRate())
print(“月利息:”,account.getMonthlyInterest())
account.withdrow(2500)
account.deposit(3000)

id: 1122
月利率: 0.00375
月利息: 75.0
您已成功取出:¥2500.00
您的余额为:¥17500.00
您已成功存入:¥3000.00
您的余额为:¥20500.00
————————————————

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值