1. 求指定范围内的所有素数
描述
编程输出100内的所有素数。
输入格式
该题目没有输入
输出格式
在同一行输出所有的素数,请使用:print(…,end=" ")
输入输出示例
输入 | 输出 | |
示例 1 | 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
答案解析:
for n in range(1,100):
flag=True
for i in range(2,n):
if n%i==0:
flag=False
break
if flag==True:
print(n,end=" ")
2. 数字不同数之和
描述
获得用户输入的一个整数N,输出N中所出现不同数字的和。
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
输入输出示例
输入 | 输出 | |
示例 1 | 123123123 | 6 |
答案解析:
n = input()
ss = set(n)
s = 0
for i in ss:
s += eval(i)
print(s)
3. 验证码较验
描述
用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。 请写一个程序完成验证码的匹配验证,假设当前显示的验证码是'Qs2X'。 如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”
输入格式
输入一个字符串
输出格式
根据较验结果输出 “验证码正确” 或 “验证码错误,请重新输入”
输入输出示例
输入 | 输出 | |
示例 1 | 1234 qS2x | 验证码错误,请重新输入 验证码正确 |
答案解析:
#用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。
# 请写一个程序完成验证码的匹配验证,假设当前显示的验证码是Qs2X。
# 如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”
str = input()
if str.upper() == 'Qs2X'.upper():
#将用户输入字符串中的字母转为大写,给定字符串中字母转大写,比较二者是否相等
print('验证码正确')
else:
print('验证码错误,请重新输入')
4. 大小写转换
描述
编写程序,用户输入一个字符串,将其中小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
注:string.ascii_lowercase 可用于返回所有小写字母,string.ascii_uppercase 可用于返回所有大写字母
输入格式
输入一个字符串
输出格式
如题意
输入输出示例
输入 | 输出 | |
示例 1 | asdHJKL879 | ASDhjkl879 |
答案解析:
#本题要求编写程序,用户输入一个字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
import string
str1 = input()
for i in str1:
if i in string.ascii_lowercase: #string.ascii_lowercase返回所有小写字母
print(i.upper(),end='') #str.upper()作用是将小写字母转换为大写字母输出
elif i in string.ascii_uppercase: #string.ascii_uppercase返回所有大写字母
print(i.lower(),end='') #str.lower()作用是将大写字母转为小写字母输出
else:
print(i,end='')
5. 查找指定字符
描述
编写程序,从用户给定字符串中查找某指定的字符。
输入格式
输入的第一行是一个待查找的字符
第二行是一个以回车结束的非空字符串。
输出格式
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);
否则输出"Not Found"。
输入输出示例
输入 | 输出 | |
示例 1 | m programming | index = 7 |
答案解析:
find = input()
str = input()
flag = 0 #做个标记,假设找不到的标记结果是0
for i in range(len(str)):
if str[i] == find:
flag = 1 #如果找到,改变标志的状态
m = i #记录最后一次找到的位置序号
if flag == 1:
print('index = {}'.format(m))
if flag == 0:
print('Not Found')
6. 凯撒加密
描述
在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。编程实现恺撒加密,明文和偏移量由用户输入,输出密文。
输入格式
输入包括两行
第一行是一个字符串
第二行是一个正整数
输出格式
一个字符串,内容为用户输入字符串加密的结果
输入输出示例
输入 | 输出 | |
示例 1 | Beautiful is better than ugly.Explicit is better than implicit. 3 | Ehdxwlixo lv ehwwhu wkdq xjob.Hasolflw lv ehwwhu wkdq lpsolflw. |
import string
str = input()
number = int(input())
def kaisa(str, number):
lower = string.ascii_lowercase #小写字母
upper = string.ascii_uppercase #大写字母
before = string.ascii_letters
after = lower[number:] + lower[:number] + upper[number:] + upper[:number]
table = ''.maketrans(before, after)
return str.translate(table)
print(kaisa(str, number))
7. 身份证号处理
描述
18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期, 第17位代表性别,奇数为男,偶数为女。 用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性) 请先查看下方此题特别说明。
import datetime
datetime.datetime.now().year #可用于获得当前年份
输入格式
输入一个合法的身份证号字符串
输出格式
类似以下格式输出:
你出生于1973年05月16日
你今年45周岁
你的性别为男
输入输出示例
输入 | 输出 | |
示例 1 | 220221197305165535 | 你出生于1973年05月16日 你今年45周岁 你的性别为男 |
特别说明,
该题目由于涉及时间变化,测试用例需要每年修改一次,而每一次的修改, 会导致前一年前做题的学生答案错误,
例如
2018 年该题正确答案是 20岁。
2019年该题正确答案就应该是 21 岁
2020 年该题答案就应该是22 岁。
#18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,
#第17位代表性别,奇数为男,偶数为女。
#datetime.datetime.now().year
# datetime.datetiem.now().mouth
# datetime.datetiem.now().day
import datetime
id = input()
year = id[6:10]
month = id[10:12]
day = id[12:14]
if int(id[16]) % 2 == 0:
sex = '女'
if int(id[16]) % 2 == 1:
sex = '男'
print('你出生于{}年{}月{}日'.format(year,month,day))
print('你今年{}周岁'.format(datetime.datetime.now().year-int(year)))
print('你的性别为{}'.format(sex))
8. 快乐的数字
描述
编写一个算法来确定一个数字是否“快乐”。
快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12+ 92 = 82
- 82+ 22 = 68
- 62+ 82 = 100
- 12+ 02 + 02 = 1
当输入时快乐的数字时,输出True。
当程序运行时间大于0.9s时,输出False。
提示:perf_counter() 计时方法,可用于各类需要统计时间的计算问题,例如:比较不同算法时间 、统计程序运行时间;
输入输出示例
输入 | 输出 | |
示例 1 | 19 | True |
示例2 | 113 | False |
from time import perf_counter
a=input()
start=perf_counter()
while True:
d = 0
for c in a:
d = d+int(c)**2
if d==1:
print("True")
break
a = str(d)
t = perf_counter()-start
if t > 0.9 :
print("False")
break