python很灵活,学起来有人机交互的快乐感,贵在坚持.
做题对自学python很有帮助,融汇贯通-查漏补缺-巩固提高.
写了一些注释,希望能对您有所帮助.
#1、输入一个3位数,计算个位、百位、十位
a = eval(input('请输入三位数:')) # 入口参数检测 if a<100 or a>999: print('输入的数字不正确,请重新输入:') else: print(a%10, (a//10)%10, a//10//10) # 持续//即可获得高位数位上的字 print(a%10*100 + (a//10)%10*10 + (a//10//10))
#2 输入一个年份,判断是否是闰年(能被4整除但是不能被100整除或者能够被400整除的年份)
# 轮询 while True: # 阻塞(让用户输入) a = input('请输入年份:') # 入口检测 if not a.isdecimal(): print('输入有误,请重新输入:') continue # 跳过本次循环 else: a = eval(a)
# 关键算法块 if a%400==0 or (a%4==0 and a%100!=0): print('您输入的是闰年') else: print('您输入的不是闰年')
#3、输入一个数,判断是否能被3整除并且能被5整除
print('输入一个数,判断是否能被3整除并且能被5整除哦') print('输入'q'退出') while True:
#阻塞,让用户输入 a = input('请输入一个数字:') #退出方式 if a == 'q': break #入口检测,是否输入数字 if not a.isdecimal(): print('error input, again:') continue else: #关键算法块 a = eval(a) if a%3==0 and a%5==0: print('get it!') else: print('false, again:')
#4 计算1-100的和(5050)
sum = 0 for i in range(1, 101): sum += i print(sum)
#5 打印字母 a-z (美化,每5个字母一行)
count = 0 #标识位,计数器, for i in range(ord('a'), ord('z')+1): #先用arsc码值实现遍历的起止点 #再反向,实现字母化,输出 print(chr(i), end=' ') # 实现每5个字母一行输出 count += 1 if count%5 ==0: print('')
#6 打印字母 z-a (美化,每5个字母一行)
lt = [] # 空列表,带填充,实现容器,中转 for i in range(ord('a'), ord('z')+1): lt.append(chr(i)) print(lt) # 注意列表是可变对象,.reverse()后,id不变,但是内容顺序变了. # type(lt.reverse()) --> <class 'NoneType'> lt.reverse() print(lt) #['z', 'y', 'x', ... 'c', 'b', 'a']
#实现每5个字母一行输出 count = 0 for j in lt: count += 1 print(j, end= ' ') if count%5 == 0: print('') print(type(j))