先分享两句深有感触的话:
看懂别人的代码很容易,但是要自己写出同样的代码却又很难。这是因为你才刚刚开始编程,你的练习量还没有达到让你可以随心所欲的写出代码的程度。
作为一个在校大三老咸鱼,我对上面这种“会认不会写”的现象感触颇深。三年以来,我上关于编程的课程从来都只是当听故事一样看,课下从不动手实践,遇到综合实践就上网找代码,看懂了找老师验收草草了事。三年下来,那些多动手的同学已经深入到数据分析,而我还是连写几个循环语句都报错,实在太不应该了。
希望打卡100天计划能够坚持下来,亡羊补牢,为时未晚。
今天做了一道将一个不知道有多少位的正整数进行反转的题,这里的小技巧值得记录一下:
num=int(input(‘输入一个要转换的数:’))
reversed_num = 0
while num > 0:
reversed_num = reversed_num * 10 + num % 10
num //= 10
print(reversed_num)
可以看到,假如我们输入的数是123,根据这个公式: reversed_num = reversed_num * 10 + num % 10
我们可以将最末尾的数提取出来,再通过 num //= 10把刚才提取出来的数剔除,并实现num的退位,直到num=0,通过循环就可以将数字完全颠倒
还有一道例题:CRAPS赌博游戏
说明:CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简化后的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;玩家如果摇出其他点数则玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数玩家继续摇骰子,直到分出胜负。
代码如下:
from random import randint
money=1000
while money>0:
print(f’你持有的金额为{money}’)
go_on=False
while True:
debt=int(input(‘请下注:’))
if 0<debt<=money:
print(‘下注成功’)
break
first=randint(1,6)+randint(1,6)
print(‘点数为:’,first)
if first7 or first11:
print(‘玩家胜’)
money+=debt
elif first2 or first3 or first==12:
print(‘庄家胜’)
money-=debt
else:
go_on=True
#胜负未分,游戏继续
while go_onTrue:
go_on=False
print(‘胜负未分,游戏继续’)
shake_again=randint(1,6)+randint(1,6)
print(‘点数为:’,shake_again)
if shake_again7:
print(‘庄家胜’)
money-=debt
elif shake_again==first:
print(‘玩家胜’)
money+=debt
else:
go_on=True
print(‘你破产了,游戏结束’)
值得一提的是,在最后一句加粗字体,我一开始是写两个等号的,这就导致了系统一直在判断go_on与True是否相等,并返回False,跳出了再掷骰子的循环,弄得楼主怀疑人生,查了半小时错…
以后写代码时一定要注意细节,这类小错误往往是最容易疏忽,也最难查错的