1. | 根据用户输入的日期计算天数 【问题描述】 编写函数isLeap(year)用于判断year是否是闰年,若是闰年则返回True,否则返回False。 编写函数days(year,month)用于计算year所在的month的天数,days(year,month)函数需要调用isLeap()函数以帮助判断2月份的天数(year若不是闰年,返回28,否则返回29) 要求程序能根据用户输入的日期,计算该日期是这一年的第几天。 【输入形式】 输入某个日期(格式为year/month/day) 该日期是一年的第几天 2019/3/18 77 |
---|
def days(year,month,day):
if year %4 ==0 and year %100 ==0 or year %400 ==0:
day_second = 29
else:
day_second =28
days_month=(31,day_second,31,30,31,30,31,31,30,31,30,31)
total_days=0
total_days+=sum(days_month[:month - 1])
total_days += day
print('这是一年的第',total_days,'天')
year= int(input('请输入年'))
month= int(input('请输入月'))
day= int(input('请输入日'))
days(year,month,day)
2. | 提取电话号码 【问题描述】 假设电话号码的模式为:3个数字,一个短横线,4个数字,一个短横线和4个数字。如:186-7123-4567 编写isPhoneNum()函数,用以检查字符串是否匹配电话号码模式,若匹配返回True,否则返回False 程序的功能是从一段文本中提取电话号码。部分代码如下: message='Call me at 186-7123-4567 tomorrow. 027-8728-1235 is my office. ' for i in range(len(message)): chunk=message[i:i+13] if isPhoneNum(chunk): print('Phone number found: ' +chunk) print('Done')
无 电话号码 【样例输入】 无 【样例输出】 Phone number found: 186-7123-4567 Phone number found: 027-8728-1235 Done |
---|
def isPhoneNum(chunk):
a1 = chunk[0:3]
a2 = chunk[3:4]
a3 = chunk[4:8]
a4 = chunk[8:9]
a5 = chunk[9:13]
if a1.isdigit() and a3.isdigit() and a5.isdigit() and a2=='-' and a4 == '-':
return True
else:
return False
message='Call me at 186-7123-4567 tomorrow. 027-8728-1235 is my office. '
for i in range(1,len(message)):
chunk = message[i:i + 13]
if isPhoneNum(chunk):
print('Phone number found: ' + chunk)
print("Done")
3. | 位置码加密 【问题描述】 导入随机数库产生随机数时设置固定seed(10)。 为给定的字符串原码用随机产生位置码的方式进行加密。例如原码:010512,则位置码为由1-6这6个数字随机产生的数字序列:362415,位置码的生成取决于原码的长度L,每一位都不重复。根据位置码调整原码的顺序得到加密结果:021501,将原码的第3位0放到加密后的第1位,将原码的第6位2放到加密后的第2位,以此类推。 提示注意:对于样例打乱原码位置码123456时如果使用random库中的sample,choice等方法时需要用reverse方法对列表逆序才能和结果一致,用shuffle就不用逆序。 【样例输入】 010512 【样例输出】 362415 021501 【样例说明】 输入一个长度小于10的字符串,根据原码字符串s编写函数posCode(s)产生对应长度的位置码,并作为返回值返回。 根据原码字符串s和位置码posCode编写函数changeCode(s,posCode函数的返回值)实现原码根据位置码转换成加密后的字符串,并作为返回值返回 |
---|
import random
random.seed(10)
def posCode(lenn):
list1 = [i for i in range(1, lenn + 1)]
random.shuffle(list1)
return list1
a = input()
len1 = posCode(len(a))
str1 = ''
for i in len1:
str1 += str(i)
print(str1)
list2 = [i for i in len1]
temp = ''
for i in list2:
temp += str(a[i-1])
print(temp)
4. | 循环和函数_亲密数 【问题描述】 求整数n以内(含n)的全部亲密数。 说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,A不等于B,则将正整数A和B称为亲密数。 1不和其他数形成亲密数。 编写函数sumElem(),实现统计一个数字的因子之和(包括1,不包括A本身) 【输入形式】 输入整数n 每一行输出一对亲密数,中间用一个空格隔开。 每一对亲密数只输出一次,小的在前。 各对亲密数按序排序,按亲密数中小的那个数从小到大排序。 【样例输入】 3000 【样例输出】 220 284 1184 1210 2620 2924 |
---|
def sumElem(x):
temp = 0
for i in range(1, x):
if x % i == 0:
temp = temp + i
return temp
x = int(input())
for a in range(2, x+1):
b = sumElem(a)
c = sumElem(b)
if c == a and a != b:
if a > b:
a, b = b, a
print(a, b)
5. | 统计一共出现了多少个3 【问题描述】输入任意一个正整数,从1开始到这个数字的奇数序列里,统计一共出现了多少个3。 编写函数sumThree(),实现功能是,输入一个正整数,返回该数中3出现的个数。 【输入形式】 number:25 3 |
---|
def sumThree(num):
cout = 0
for i in range(1,int(num+1)):
if i%2 != 0:
cout += str(i).count("3")
return cout
num = int(input('number:'))
sum = sumThree(num)
print(sum)
6. | 征友 【问题描述】土生土长的北京妞儿,在胡同里长大房不多,就一个四合院和近郊的别墅。不算美如天仙但还算标致,在清华读的经管,现在在做基金经理,个人擅长基本面分析,价值投资。现在只想找个聪明靠谱的IT男。硬性要求是出生年龄不要超过1990年,我对智商的要求比较高,下面就出个题测试下。我的微信ID是大写字母JH后面跟着两个质数,大的在前,小的在后,乘积是707829217,可直接搜索加微信,请输出该微信号! 自定义函数sushu()判断一个整数是否是素数,来帮助完成该题目。 【输入形式】一个给定的数字 【输出形式】符合要求的微信号,如果给定的数字无法变成2个素数之积,则输出error 707829217 【样例输出】 JH866278171 【样例输入】 32 【样例输出】 error |
---|
def sushu(i):
for temp in range(2,i):
if i%temp == 0:
return False
return True
n = eval(input())
for i in range(2, n):
if n%i==0 and sushu(i):
if sushu(n//i):
result = "JH" + str(n//i) + str(i)
print(result)
break
else:
print("error")
7. | 判断列表是否存在重复元素 【问题描述】 编写一个函数isRepeated(v),用于判断一个列表中的元素是否存在重复,若有重复则返回True, 否则返回False 部分程序代码如下: list1=eval(input()) print(isRepeated(list1)) 【输入形式】 列表 True或False [1,2,5,2,3] True |
---|
def isRepeated(a):
temp = set(a)
if len(temp) == len(a):
return False
return True
list1 = eval(input())
list2 = list1[1::2]
print(list2)
list3 = [i for i in list1]
print(list3)
print(isRepeated(list3))
如有不足之处,欢迎大家留言!