Python 代码练习

1、设计算法:输入半径R,计算球表面积与体积输出结果

pai=3.1415926
R = int( input("please input R:"))
s = 4 * pai * R * R
v = (4.0/3) * pai * R * R * R
print("s=",s)
print("v=",v)

2、使用字典来创建程序,提示用户输入电话号码,并用英文单词形式显示数字。例如:输入138 显示为“one three eight ”

keys = [0, 1, 2, 3 ,4, 5, 6, 7, 8, 9]
values = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
mydict = dict(zip(keys, values))
str = input("请输入电话号码:")
for s in str:
    print(mydict[int(s)], end=" ")
print()

3、莫尔斯电码采用了短脉冲和长脉冲(分别为点和点划线) 来编码字母和数字。例如,字母“A”是点划线,“B”是点划线点点。

如文件Mos.txt 文件所示:

A .- B ... C -.-. D -.. E . F ..-. G --. H .... I ..

J .--- K -.- L .-.. M -- N -. O --- P .--.

Q --.- R .-. S ... T - U ..- V ...- W .—

X -..- Y -.-- Z --..

keys = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
values = ['.-','...','-.-','-..','.','..-.','--.','....','..','.---','-.-','.-..','--','-.','---','.--.','--.-','.-.','...','-','..-','...-','.--','-..-','-.--','--..']
mydict = dict(zip(keys, values))
str = input("请输入一段英文:")
for s in str:
    print(mydict[s], end=' ')
print()

4、通过input函数,任意输入三条边长,经过简单的计算后,判断三条边长是否构成三角形并确定是什么样类型的三角形

a = int(input("input a:"))
b = int(input("input b:"))
c = int(input("input c:"))
if a+b>c and a+c>b and b+c>a:
    print("能构成三角形")
    if a == b and a == c:
        print("是等边三角形")
    elif a == b or b == c or a == c:
        print("是等腰三角形")
    elif a*a+b*b == c*c or b*b+c*c == a*a or a*a+c*c == b*b:
        print("是直角三角形")
    else:
        print("是一般三角形")
else:
    print("不是三角形")

5、密码登录程序。要求:建立一个登录窗口,设定用户名为zhangsan,密码是python123。若用户名正确,密码也正确,则显示“Mr Zhang,欢迎你”;如果用户名错误,则显示“用户名错误,请重新输入!”;若密码不正确,则显示“对不起,密码错误,无法登陆!”

a = input("请输入用户名:")
b = input("请输入密码:")
if a == 'zhangsan' and b == 'python123':
    print("Mr Zhang,欢迎你!")
elif a!='zhangsan':
    print("用户名错误,请重新输入!")
else:
    print("对不起,密码错误,无法登陆!")

6、 设有三个变量a,b,c,分别对三个变量赋值(input),并对三个变量进行排序,例:a=5,b=7,c=6  输出:b>c>a

a = int(input("请输入a:"))
b = int(input("请输入b:"))
c = int(input("请输入c:"))
if a>b>c:
    print("a>b>c")
elif a>c>b:
    print("a>c>b")
elif b>a>c:
    print("b>a>c")
elif b>c>a:
    print("b>c>a")
elif c>a>b:
    print("c>a>b")
else:
    print("c>b>a")

7、有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个。例如,文本内容为“This is is a desk.”,程序输出为“This is a desk.”。

str = input(">>>")
s = str.split()
for i in range(len(s) - 1):
    if s[i] == s[i + 1]:
        continue
    else:
        print(s[i], end=' ')
print(s[i + 1])

8、编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。

def count_all(str):
    res = [0] * 4
    for i in str:
        if i.isupper():
            res[0] += 1
        elif i.islower():
            res[1] += 1
        elif i.isdigit():
            res[2] += 1
        else:
            res[3] += 1
    return "大写字母个数:", res[0], "小写字母个数:", res[1], "数字个数:", res[2], "其他字符个数:", res[3]

a = input(">>>")
print(count_all(a))

9、 编写程序,将包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。

import pickle
f=open('sample_pickle.txt','wb')
n=1
keys=['王海英','张梦瑶','李晓春','赵楠','孙进','李想辰']
values=[80,95,77,68,99,89]
dic=dict(zip(keys,values))
try:
    pickle.dump(n,f)
    pickle.dump(dic,f)
except:
    print('写文件异常')
finally:
    f.close()
f=open('sample_pickle.txt','rb')
n=pickle.load(f)
i=0
while i<n:
    x=pickle.load(f)
    for key,value in dic.items():
        print(key,':',value)
    i=i+1
f.close()

10、编写一函数Prime(n) ,对于已知正整数n,判断该数是否为素数,如果是素数,返回True, 否则返回False 。

def issushu(n):
    if n==2:
        return True
    for i in range(2,n):
        if n%i==0:
            break
    else:
        return True
    return False

11、利用上题中判断素数的函数,编写程序找出1~100 之间的所有孪生素数(若两个素数之差为2,则这两个素数就是一对孪生素数) 。例如: 3 和5、5 和7、11 和13 等都是孪生素数。【提示】如果n 和n+2 都是素数,那就是孪生素数。

for n in range(1,100-1):
    if issushu(n)==True and issushu(n+2)==True:
        print(n,'和',n+2,'是孪生素数')

12、编写一函数,将摄氏温度与华氏温度互转。公式: C*1.8+32=F

def ToFah(C):
    return C*1.8+32
def ToCel(F):
    return (F-32)/1.8

 

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值