Python:打印日历,验证信用卡号是否合法
Python语言基础-2.5函数基础(理)
第5关:函数综合实训-打印日历
本关任务:利用函数的知识完成如下习题:
1、编写判断信用卡号是否合法的判断程序。
2、编写函数模块,打印日历程序
第1题
信用卡号是否合法的判断规则为: a) 对给定的8位信用卡号码,如43589795
,从最右边数字开始,隔一位取一个数相加,如5+7+8+3=23
。 b) 将卡号中未出现在第一步中的每个数字乘2
,然后将相乘的结果的每位数字相加。例如,对上述例子,未出现在第一步中的数字乘2
后分别为(从右至左)18
、18
、10
、8
,则将所有数字相加为1+8+1+8+1+0+8=27
。 c) 将上述两步得到的数字相加,如果得数个位为0
,则输入的信用卡号是有效的。
请在指定位置完成函数的编写,判断用户输入的8
位信用卡号码是否合法。
第2题
在指定位置完成函数编写,根据年和月,打印该月的日历。(计算y年m月d日是星期几的公式为:
试题中已定义了三个函数,请完成这三个函数, 函数day
用于计算并返回某年某月某日是星期几; 函数isLeapYear
用于判断某年是否是闰年; 函数calendar
打印所给年月的日历,注意输出格式要求和空格的对齐,如下图所示,具体的空格数请参见本题代码。
代码如下:
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 9 12:40:28 2021@author: hzh
"""
#1题 :信用卡的验证程序
def validCreditCard(num):#请在下面编写代码# ********** Begin ********** #numb=str(num)s=[]for k in numb:s+=[int(k)]s1=sum(s[::-2])s2=s[-2::-2]ss=0for i in s2:j=i*2if j-10>=0:ss+=j//10+j-10else:ss+=jjud=s1+ssif str(jud)[-1]=='0':valid=Trueelse:valid=False# ********** End ********** #return valid #请不要修改下面的代码
for num in [1234567, 43589795, 87539319, 123456789]:valid = validCreditCard(num)print(valid)
print('*'*20) #2题:打印日历def day(y, m, d):#计算y年m月d日是星期几# 请在下面编写代码# ********** Begin ********** #y0=y-(14-m)//12x=y0+y0//4-y0//100+y0//400m0=m+12*((14-m)//12)-2d0=(d+x+(31*m0)//12)%7# ********** End ********** # # 请不要修改下面的代码return d0def isLeapYear(year): #判断year年是否闰年# 请在下面编写代码# ********** Begin ********** #if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):isLeapYear=1else:isLeapYear=0# ********** End ********** # # 请不要修改下面的代码return isLeapYeardef calendar(y, m): #打印y年m月日历print(' {}年{}月'.format(y,m))print('Su\tM\tTu\tW\tTh\tF\tSa')# 请在下面编写代码调用函数计算y年m月1日是星期几保存在变量date中# ********** Begin ********** #date=day(y,m,1)# ********** End ********** #days = 0 #初始化y年m月的天数为0# 请在下面编写代码计算y年m月的天数# ********** Begin ********** #if m in [1,3,5,7,8,10,12]:days=31elif m in [4,6,9,11]:days=30elif m==2:if isLeapYear(y):days=29else:days=28else:pass# ********** End ********** # count = date # y年m月1日是星期几for i in range(date):print('\t', end='')for d in range(1, days + 1):print(str(d) + '\t', end="")count = (count + 1) % 7if count == 0:print()print()# 请不要修改下面的代码
for (y,m) in [(2017,8), (2017,10),(2015,8), (2017,2), (2016,2)]:calendar(y, m)print('-'*27)
Python:打印日历,验证信用卡号是否合法相关推荐
- Python验证信用卡号的有效性(算法)(称为Luhn检测或者mod 10 检测)
转载自: https://baijiahao.baidu.com/s?id=1662553267127372613&wfr=spider&for=pc 有修改 一个信用卡号必须是13到 ...
- luhn算法 java_java – 使用luhn算法验证信用卡号
我对以下编程任务有疑问. 信用卡号码遵循某些模式.信用卡必须在13到16位之间.它必须从: •4张Visa卡 •5张万事达卡 •美国运通卡37张 1954年,IBM的Hans Luhn提出了一种验证信 ...
- Javascript验证信用卡号、信用卡类型(最全最新)
如果浏览不顺畅请到 原文章出处:https://www.sky8g.com/technology/2690/ 请注意可能会提示风险,这是csdn设置网站设置的问题,请放心访问,谢谢. 本篇文章是由SK ...
- python打印一年的日历_使用Python打印日历
在本教程中,我们将学习如何使用Python的日历模块打印月份和年份的日历.在Python中这很简单.我们需要年和月的数字.而已. 让我们看看如何打印年历.请按照以下步骤打印年历.导入日历模块. 初始化 ...
- python打印日历_Python实战练习——打印日历教程
很长一段时间没有接触过C语言了,想来做这一行当已经有三两年了. 今天突然想起来以前用C语言在VC6上写代码的日子,想了想以前的一些实战练习. 所以今天打算用Python来写一个C语言以前练习的题目-日 ...
- python打印日历小项目
公众号后台回复"图书",了解更多号主新书内容 作者:Riggle 来源:文科数据员 各位小伙伴,好久不见!数据猿最近在全面复习python知识,继续更新啦!今天带来函数学习的相关知 ...
- python 打印日历
用户输入年和月,第一行为星期的缩写,每周从周日开始 year = int(input()) month = int(input())days = 0 #统计天数 count = 0 #用于打印时的计数 ...
- Java验证身份证号是否合法
身份证作为居民的唯一标识.在很多系统中需要用户输入身份证号信息,今天我们就来编写一个方法验证身份证号的合法性. 首先我们来看看身份证号的编码规则: 前1-2位数字表示:所在省(直辖市.自治区)的代码: ...
- python打印日历_python输出指定月份日历的方法
python输出指定月份日历的方法 本文实例讲述了python输出指定月份日历的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python import calendar ca ...
最新文章
- 平台如何限制ip流量_ABTest 平台设计 - 如何进行流量分桶
- 匹兹堡计算机科学公司,2017美国匹兹堡大学计算机科学CS专业硕士录取
- MATLAB中处理边界的函数
- redis缓存穿透、缓存击穿、缓存雪崩概念及解决方案
- Leetcode题库169.多数元素(c实现)
- python对excel增删改查_Python之Excel 优雅操作手法 精选
- spring之基本介绍以及老版本框架的下载地址
- 记录——《C Primer Plus (第五版)》第八章编程练习第八题
- Vue购物商城项目(二) 数据请求使用
- java计算经纬度距离_LeetCode 题解 |461. 汉明距离
- 口罩预约管理系统——数据库设计(前端+PHP+MySQL)
- 路径跟踪之LQR控制算法
- QT 简单应用之播放WAV声音
- Longstick的学习周记——第二周
- HadoopYarn设置Fair Scheduler公平调度器
- java用户登录注册
- Word无法打开文件,因为文件格式与文件扩展名不匹配
- 笔记本电脑无法进入睡眠状态_笔记本电脑进入睡眠状态后无法通过鼠标或键盘来唤醒屏幕怎么解决...
- JSON-spirit用法
- 为什么总有iPhone游戏那么好玩呢? iSlash,Slice It
热门文章
- 用机器学习自制二手房估价模型(附完整过程)
- creo6.0安装教程
- pycharm如何调整字体大小
- UltraEdit 应用程序发生错误0xc0000417
- 分享:从华为转正到离职
- android glide缺少方法,android - 无法膨胀且找不到类android支持设计的行为BottomSheetBehavior - 堆栈内存溢出...
- 【STM32】TCL2543CN 12位11通道ADC芯片stm驱动程序,使用32自带SPI实现
- win10修改user文件夹名称
- 一个又离不开的软件:图形化远程控制APP向日葵
- db2还原备份文件详细教程