Python---1(数据类型)

  1. 翻译密码

【问题描述】翻译密码。为了保密,常不采用明文,而用密文,即按一定规则将字符转换为另一字符,收报人则按相反的规律转换得到原来的字符。本程序规则为:字母ascii码加5,其他字符不变,对原文进行加密,并显示密文。字母的最后5个加5不是字母了,处理规则为循环成前5个。比如“X”的密文为“C”。

【样例输入】

please input text:I love haha.

【样例输出】

N qtaj mfmf.

【样例说明】ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符

a=input("please input text:")
for m in a:
    if 65<=ord(m)<=85 or 97<=ord(m)<=117:
        n=ord(m)+5
        new=chr(n)
    elif 86<=ord(m)<=90 or 118<=ord(m)<=122:
        n=ord(m)-21
        new=chr(n)
    else:
        new=m
    print(new,end="")
  1. 找因子

【问题描述】

输入一个大于1的整数,返回一个列表,包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。如果这个数是素数,则输出“(整数) is prime”。

【样例输入】

number:6

【样例输出】

[2, 3]

【样例输入】

number:5

【样例输出】

5 is prime

a=int(input("number:"))
list_1=[]
for i in range(2,a-1):
    if a%i==0:
        list_1.append(int(i))
list_1=list(set(list_1))
if len(list_1)==0:
    print("%s is prime"%a)
else:
    print(list_1)
  1. 整除问题

【问题描述】

1. 有如下结论:如果一个整数的奇数位上的数字之和与偶数位上的数字之和的差能被11整除,那么这个数能被11整除;(注:每个整数从个位开始计算位数;以123456为例,奇数位之和为6+4+2=12,偶数位之和为5+3+1=9)

请利用上述结论,任意给出一个n位正整数,输出其奇数位上数字之和,偶数位上数字之和,并判断其能否被11整数。

【输入形式】

任意输入一个正整数;

【输出形式】

按顺序输出一个奇数位之和、偶数位之和,输出最终的判断能否被11整除;

【样例输入】

Please input a integer:654321

【样例输出】

9

12

FALSE

【样例说明】输出FALSE或TRUE

a=input(" Please input a integer:")[::-1]
odd=0     #奇数位
even=0    #偶数位
for i in range(1,len(a)+1):#为什么不是range(0,len(a))?0-1=-1就超出范围了;;而且i=1表示的是个位,0/2==0,
    if i%2 !=0:
       odd+=int(a[i-1])
    else:
        even+=int(a[i-1])
print(odd)
print(even)
dif=odd-even
if dif%11==0:
    print('TRUE')
else:
    print('FALSE')
  1. 读者第几次出现

【问题描述】

  涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。

【输入形式】

  输入的第一行包含一个整数n,表示涛涛的记录条数。

  第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。

【输出形式】

  输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。

【样例输入】

  5

  1 2 1 1 3

【样例输出】

  1 1 2 3 1

n=int(input())
a=input().split()
new={i:0 for i in a }    #字典
for i in a:
    new[i]+=1
    print(new[i],end=" ")
  1. 找不同

【问题描述】

9个同学一起做游戏,每个人报一个[1,20]区间上的正整数,请你编程求出有多少个不同的数。

【输入形式】

输入1行,输入9个[1,20]区间上的整数,每个整数之间以空格为分隔符

【输出形式】

输出1个数,表示输入的9个数中不同数的个数。

【样例输入】

1 2 3 3 2 2 7 8 9

【样例输出】

6

【样例说明】可以使用字符串的split()方法将一个字符串按照指定字符切割成字符列表

list_1=input().split()
list_1=list(set(list_1))
print(len(list_1))
  1. Python分支程序——判断是否到结婚年龄

【问题描述】我国的婚姻法规定,男性22岁为合法结婚年龄,女性20岁为合法结婚年龄。编写程序判断一个人是否到了合法结婚年龄,并输出判断结果:“Reach the legal marriage age” 或 “Under the legal marriage age

【输入形式】

【输出形式】

【样例输入输出】

Please enter your gender(F or M):F

Please enter your age(1-120):23

Reach the legal marriage age

【样例说明】下划线的部分代表输入

sex=chr(input("Please enter your gender(F or M):"))
age=int(input("Pliease enter your age(1-120):"))
if sex=="M":
    if age>=22:
        print("Reach the legal marriage age")
    else:
        print("Under the legal marriage age")
else:
    if(age>=20):
        print("Reach the legal marriage age")
    else:
        print("Under the legal marriage age")
  1. 小玉游泳

【问题描述】

小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。

【输入形式】输入一个数字(不一定是整数,小于100m),表示要游的目标距离。。

【输出形式】输出一个整数,表示小玉一共需要游多少步。。

【样例输入】4.3

【样例输出】3

【样例说明】

a=eval(input())
x=2
n=1
while x<a:
    x=x+2*(0.98**n)
    n=n+1
print(n)
  1. 找数对

【问题描述】

输入一组数到列表nums,请找到列表中任意两个元素相加能够等于9的元素,形成一个元组,使其小数在前大数在后,如:(2,7), (1,8)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出。

【样例输入】

numbers:3,4,5,7,2,8,1

【样例输出】

[(1, 8), (2, 7), (4, 5)]

【难点解析】可以一开始定义一个空列表Lst,然后每次将符合要求的,例如Lst.append((1,8))追加一个元组的方式(看清楚里面(1,8)的写法),把元组作为列表的元素插入列表。

num_List=list(map(int,input("numbers:").split(",")))
sorted(num_List)
temp_List=[]
for i in num_List:
    j=9-i
    if j in num_List:
       if (i,j) not in temp_List and (j,i) not in temp_List:
           if i<=j:
               temp_List.append((i,j))
           else:
               temp_List.append((j,i))
temp_List=sorted(temp_List,key=lambda x:x[0])
print(temp_List)
  1. 积最大解

【问题描述】从键盘输入一个正整数n(n>1),该正整数可以分解成两个正整数k1和k2之和(允许k1和k2相等)。请编写一个函数求使两个正整数的乘积最大的分解方案,并返回乘积max。

【输入形式】标准输入的一行表示正整数n

【输出形式】标准输出的一行表示最大乘积max,若输入的数据不合法(如:负整数、0或1),输出"illegal input"。

【样例输入】20

【样例输出】100

【样例说明】20=10 + 10,此时积最大,为100。

integer=int(input())
a=1            #a是一个整数
c=d=e=f=0
while a<=(integer/2):    
    c=a*(integer-a)      
    if c>d:              
       e=a               
       f=integer-a       
    d=c                  
    a=a+1            

if e*f>0:
    print(e*f)
else:
    print("illegal input")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值