Python编程基础与应⽤(陈波著)微实践微实践1——鸡兔同笼
有若⼲只鸡兔同在⼀个笼⼦⾥,从上⾯数,有35个头,从下⾯数,有94只脚。问笼中各有多少只鸡和兔?解决⽅案:
iHead =35
iFeet =94
a = iFeet - iHead*2
iRabbits = a/2
iChicken = iHead - iRabbits
print("兔兔有{:.0f}只,⼩鸡有{:.0f}只".format(iRabbits,iChicken))
输出:
兔兔有12只,⼩鸡有23只
format格式化函数
print("我的爱⼈是{name},他最⼤的特点是{factor}".format(name='wjy',factor='可爱'))
lover ={'name':'wjy','factor':'可爱'}
print("我的爱⼈是{name},他最⼤的特点是{factor}".format(**lover))##注意**
mylittleone =['wjy','可爱']
print("我的爱⼈是{0[0]},他最⼤的特点是{0[1]}".format(mylittleone))
#注意0指代第⼀个列表,[0]指代第⼀个元素
number1 =3.352342352
print('{:.2f}'.format(number1))
print("{:.0f}".format(number1))
print("{:+.2f}".format(number1))
print("{:.3%}".format(number1))
number2 =-3.614134
什么软件可以搜索关键词精准print("{:+.0f}".format(number2))#加号是指显⽰符号.保留整数时四舍五⼊
number3 =9
print("{:0>5d}".format(number3))
print("{:x<10d}".format(number3))
print("{:>10d}".format(number3))#右对齐,宽度为10
print("{:<10d}".format(number3))#左对齐
print("{:^10d}".format(number3))#居中对齐
print("{:b}".format(number3))#2
print("{:d}".format(number3))#10
print("{:o}".format(number3))#8
print("{:x}".format(number3))#16
print("{{:2.f}}".format(number3))#在有format函数的语句中,{}可以转义{}
输出
python编程基础电子版我的爱⼈是wjy,他最⼤的特点是可爱
我的爱⼈是wjy,他最⼤的特点是可爱
我的爱⼈是wjy,他最⼤的特点是可爱
3.35
3
+3.35
335.234%
-4
00009
9xxxxxxxxx
9
9
9
1001
9
11
9
{:2.f}
微实践2—地球时间
现代计算机内部均安装有RTC( Real Time Clock芯⽚或者其CPU具备RTC功能。RTC芯⽚内部有⼀个计数器,通常⽤于记录从GMT时间(格林尼治时间)1970年1⽉1⽇零时起,总共流逝的Tick(滴答)个数。
RTC芯⽚会按照固定的节拍增加这个计数器的值,以达到计时的⽬的。⾄于⼀个Tick是何种精度,则取决于计算机的⼯作频率及RTC 的能⼒,⼤部分都在微秒级。RTC芯⽚⼯作是需要消耗电能的,那么计算机断电时计时会停⽌吗?不会,读者可以在⾃⼰的计算机主板甚⾄⼿机主板上到⽤于给RTC供电的纽扣锂电池。
有的读者可能还会想到,北京和东京分处不同时区,计算机显⽰⽇期时间时是否还需进⾏时区转换呢?
是的,在操作系统中可以设置时区,设置完成后,操作系统会⾃动完成从RTC内部计数器计数值到特定时区的时间转换。顺便提⼀句,现代计算机⼤部分会连⽹,在连上 Internet时,操作系统很可能会⾃动从⽹上刷新时间,以消除RTC的计时误差。
#earthtime.py
#打印系统当前的格林尼治时间
import time
curTime = time.time()
java的springboottotalSeconds =int(curTime)
curSeconds = totalSeconds %60
totalMinutes = totalSeconds //60
curMinutws = totalMinutes %60
totalHours = totalMinutes//60
curHours = totalHours %24
print("现在的格林尼治时间为{}时{}分{}秒,⾃1970年1⽉1⽇开始\
已经经历了{}秒".format(curHours,curMinutws,curSeconds,totalSeconds))
#打印系统时间
import datetime
curDate = w()
print("{}-{}-{}\n{}:{}:{}".h\
,curDate.day,curDate.hour,curDate.minute,curDate.second))
对象.属性名
对象.函数名()
微实践5—抓扑克牌的⼿⽓
扑克是流⾏全世界的⼀种纸牌。⼀副扑克牌有54张牌,其中52张是正牌,另2张是副牌(⼤王和⼩王)。52张正牌⼜均分为13张1组,共有⿊桃、红桃、梅花、⽅块四组。每组花⾊的牌包括从2-10以及A、」、Q、K标⽰的13张牌。在⽐较流⾏的⽃地主游戏中,三个玩家中除庄家外,另外两个玩家⼀⼈要拿17张牌。如果洗牌过程是完美的,那么对于⼀个玩家⽽⾔,拿到哪⼗七张牌是完全随机的下述程序⾸先⽣成了54张扑克牌,然后借助于随机数从中抽取17张牌。
#poker.py
import random
suits =['Spades','Hearts','Diamonds','Clubs']
ranks =['A','2','3','4','5','6','7','8',\
'9','10','J','Q','K']
cards =[x+'_'+y for x in suits for y in ranks]
cards +=['Red Joker','Black Joker']
random.shuffle(cards)
cardsHold =[]
for x in range(17):
c = random.choice(cards)
cardsHold.append(c)
print("Your cards are: ",', '.join(cardsHold))
输出
Your cards are:  Hearts_8,Diamonds_10,Clubs_A,Diamonds_7,Spades_10,Spades_A,Clubs_7,Red Joker,Diamonds_9,Hearts_J,Hearts_Q,Hearts_5,Diam onds_2,Spades_Q,Spades_2,Diamonds_5,Hearts_10
random库
#random库
import random
#random.seed() 会改变随机⽣成器的种⼦;传⼊的数值⽤于指定随机数⽣成时
# 所⽤算法开始时所选定的整数值,如果使⽤相同的seed()值,则每次⽣成的随机数都相同;
# 如果不设置这个值,则系统会根据时间来⾃⼰选择这个值,此时每次⽣成的随机数会因时间的差异
⽽有所不同。
random.seed(928)
for i in range(6):
if i !=5:
print(random.randrange(10),end=',')
else:
print(random.randrange(10))
random.seed(512)
for i in range(6):
if i !=5:
print(random.randrange(10),end=',')
else:
print(random.randrange(10))
#randint(a, b) ⽣成⼀个[a, b]之间的整数
random.seed()#前⾯设置了random.seed(512),如果不重置,会产⽣固定的随机数831
print(random.randint(512,928))
#randrange(m, n[, k]) ⽣成⼀个[m, n)之间以k为步长的随机整数
print(random.randrange(512,928,31))
#getrandbits(k) ⽣成⼀个k⽐特长的随机整数
#注意最⼤数字为2**(k-1)+2**(k-2)+……+2**0
andbits(6))
#uniform(a, b) ⽣成⼀个[a, b]之间的随机⼩数
print(random.uniform(512,928))
# choice(seq) 从序列seq中随机选择⼀个元素
my_list =['⼤海','宇宙','⼈世间','⾁体','创造','苦难','⽢甜','微涩']
print(random.choice(my_list))
#shuffle(seq)将序列seq中元素随机排列,返回打乱后的序,是改变原来的序列
random.shuffle(my_list)
print(my_list)
输出
4,6,8,2,2,7
0,7,2,5,6,5
802
791
58
554.2117800479772
⼈世间
['苦难','⽢甜','⼈世间','宇宙','创造','⾁体','⼤海','微涩']
echarts柱状图上显示文字微实践6—我的幸运数
数字命理学家"认为能够基于名字的"数值"来到⼀个⼈的幸运数字。幸运数字等于名字中各字母的值之和。其中,“a"的值为1,"b的值为2,”c"的值为3,…z的值为26.运⾏下述程序,输⼊⼀个中间不包含空格的英⽂名字,程序将计算出⼀个幸运数
#Luckynumber.py
lname =list(input("Do you want to know your luckynumber?\n\
please tell me your name:").lower().strip().replace(' ',''))
luckynumber =0
for x in lname:
luckynumber +=ord(x)-96
print("Your lucknumber is: ",luckynumber)
输出
Do you want to know your luckynumber?
please tell me your name:wangjunyi
Your lucknumber is:124
ascii码
#ASCII码转换
sword =input("请输⼊你想转换为ASCII码的字符:")
inumber =int(input("请输⼊ASCII码值,看看它是什么:"))
print(ord(sword))
print(chr(inumber))
输出
请输⼊你想转换为ASCII码的字符:a
请输⼊ASCII码值,看看它是什么92
electricity是什么意思英语97
\
微实践7—滚雪球的复利
⼈⽣就像滚雪球,最重要的是发现很湿的雪和很长的坡。–巴菲特投神所说的很湿的雪,是指投资的本
⾦;⽽很长的坡,则是⼀个重要的财富秘诀-复利。复利即通常所说的利滚利,也就是把上⼀轮投资所得的本⾦和利息,作为下⼀轮投资的本⾦。复利对于投资者或者放贷⼈⽽⾔,⾮常有利,看似⾮常⼩的投资倣放贷收益,经过时间的累积,可以获得成倍的增长。但对于借款⼈⽽⾔,就不那么美好了。歌剧《⽩⽑⼥》中,杨⽩劳就是因为⽋下了"驴打滚"的债,利滚利还不起,才被迫失去了喜⼉。
假设某位同学,从某贷款公司借款10000元,约定⽇利率为万分之五,按⽇计复利。如果这位同学⼀直没有还钱,那么30年后,他⽋对⽅多少钱?
#loan.py
fBalance =10000
fInterest =5/10000
balances =[]
for x in range(30*365):苹果cmsv10影视源码
fBalance *=(1+fInterest)
balances.append(fBalance)
from matplotlib import pyplot as plt
plt.plot([x for x in range(30*365)],balances)
plt.title('Loan balance growing by days')
plt.show()
输出
2383241.4624957815

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。