习题1
题目描述:
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,>输入”They are students.”和”aeiou”,
则删除之后的第一个字符串变成”Thy r stdnts.”

  • 输入描述:
    每个测试输入包含2个字符串
  • 输出描述:
    输出删除后的字符串
  • 示例1:
    输入
    They are students.
    aeiou
    输出
    Thy r stdnts
s1 = input('s1输入:')
s2 = input('s2输入:')
for i in s1:   定义i循环遍历s1中所有的字符串if i in s2:   判定i是否含有s2中的字符串s1 = s1.replace(i,'')   存在则替换为空
print(s1)
打印结果
s1输入:They are student.
s2输入:aeiou
Thy r stdnt.

习题2
. 设计一个程序,帮助小学生练习10以内的加法
详情:
- 随机生成加法题目;
- 学生查看题目并输入答案;
- 判别学生答题是否正确?
- 退出时, 统计学生答题总数,正确数量及正确率(保留两>位小数点);

import random  引入随机函数
count = 0  计数器
right = 0  计数器
while True:   a = random.randint(0,9)   赋值随机值b = random.randint(0,9)print('%d + % d = ?' %(a,b))    a+b的值计算机内部计算不显示question = input('请输入答案或按q退出操作:')result = a + b      输入的数值等于a+b的值if question == str(result):    判断是否等于print('回答正确')    right += 1      回答正确a+1count += 1   答题总数+1elif question == 'q':   判断按q直接退出循环breakelse:print('回答错误')   判断回答错误count += 1   答题总数计数器加1
percent = (right / count) * 100    正确的除以回答的总数求正确率
print('测试结束,共答对%d道题,正确数量%d道。正确率%.2f%%' %(count,right,percent))执行结果:
0 +  6 = ?
请输入答案或按q退出操作:5
回答错误
2 +  2 = ?
请输入答案或按q退出操作:4
回答正确
3 +  7 = ?
请输入答案或按q退出操作:11
回答错误
4 +  2 = ?
请输入答案或按q退出操作:8
回答错误
8 +  7 = ?
请输入答案或按q退出操作:15
回答正确
2 +  6 = ?
请输入答案或按q退出操作:8
回答正确
1 +  5 = ?
请输入答案或按q退出操作:6
回答正确
2 +  3 = ?
请输入答案或按q退出操作:5
回答正确
9 +  5 = ?
请输入答案或按q退出操作:q
测试结束,共答对8道题,正确数量5道。正确率62.50%
Process finished with exit code 0

习题三

  1. 随机生成100个卡号;
    卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
  2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
  3. 输出卡号和密码信息, 格式如下:
    卡号 :6102009001
    密码 : 000000

字典fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,
value 为字典所有键对应的初始值,seq – 字典键值列表。
romkeys()方法语法:dict.fromkeys(seq[, value])

import random
account_num = []  定义空列表
for i in range(100):account_num.append('6102009%.3d' %(i+1))
account_info = {}.fromkeys(account_num,'radhat')
value -- 可选参数, 设置键序列(seq)的值。
print('卡号\t\t\t\t  密码')     \t制表符表示空四个字符,也称缩进,相当于按一下Tab键
for k,v in account_info.items():print(k,'\t\t\t',v)
打印结果
卡号                密码
6102009001           radhat
6102009002           radhat
.........            ......

习题四
编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数.

  def cacluate(*args):     定义函数*args表示多个值avg =  sum(args) / len(args)   求平均数up_avg = [ ]      定义空列表for item in args:     循环遍历所有元素if item > avg:   判定item大于平均值up_avg.append(item)    添加到列表当中return avg,up_avg      返回值
a = cacluate(1,2,3,4,5,6,7)   指定函数变量元素
print(a)
打印结果
(4.0, [5, 6, 7])   打印一个字典里面含有列表

习题五
编写一个函数, 接收字符串参数, 返回一个元组,‘ehllo WROLD’
元组的第一个值为大写字母的个数, 第二个值为小写字母个数.

def fun(x):     定义函授   upper_count = 0    设置计数器lower_count = 0for i in x:   循环遍历x的元素if i.isupper():     判定是否是大写字符串upper_count += 1    是+1elif i.islower():   判定是否是小写字符串lower_count += 1    是+1else:    不是continue    跳过此次循环return upper_count,lower_count   返回值
a = fun('echoll WORD')
print(a)
打印结果
(4, 6)

习题六
编写函数, 接收一个列表(包含30个1~100之间的随机整形数)和一个整形
数k, 返回一个新列表.
函数需求:
- 将列表下标k之前对应(bu包含k)的元素逆序;
- 将下标k及之后的元素逆序;
- [1,2,3,4,5] 2 [2,1,5,4,3]


def fun(li,k):    定义函数if k < 0 or k > len(li):   判断k不能为负数或k大于列表长度return 'error key'     返回k值有错return li[:k][::-1] + li[k:][::-1]    元素逆序并连接起来
print(fun([1,2,3,4,5,6],2))    打印指定元素,并指定k2
打印结果
[2, 1, 6, 5, 4, 3]

习题七
模拟轮盘抽奖游戏
轮盘分为三部分: 一等奖, 二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间,代表一等奖,
如果范围在[0.08,0.3)之间,代表2等奖,
如果范围在[0.3, 1.0)之间,代表3等奖,
模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数.

 import random   引入随机函数
rewardDict = {                定义字典'一等奖': (0,0.08),'二等奖': (0.08,0.3),'三等奖': (0.3,1.0)
}
def userfun():        定义函数num = random.random()      random.random()表示0-1之间的随机数。for k,v in rewardDict.items():       循环遍历字典当中的键-值对  if v[0] <= num < v[1]:        判定随机数大于0小于1return k     返回值(实际就是几等奖)
resultDict = {}    定义字典
for i in range(1000):     res = userfun()      定义获奖变量为resif res not in resultDict:       判定第一次获得奖resultDict[res]  = 1   else:resultDict[res] += 1    不是得奖的次数+1
for k,v in resultDict.items():    k:键123等奖,v:value值,获奖人次print(k,'——>',v)
打印结果随机
三等奖 ——> 679
二等奖 ——> 239
一等奖 ——> 82

习题八
题目需求:
对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如:
f(13) = 12 + 32 = 10
f(207) = 22 + 02 + 72 = 53
下面给出三个正整数k,a, b,你需要计算有多少个正整数n满足a<=n<=b,
且k*f(n)=n
输入:
第一行包含3个正整数k,a, b, k>=1, a,b<=10
18, a<=b;
输出:
输出对应的答案;

范例:
输入: 51 5000 10000
输出: 3

#先求平方和
def  f(n):n = str(n)sum = 0for item in n:sum += int(item) ** 2return sum
#print(f(13))
s = input()
li = []
for item in s.split():li.append(int(item))
k,a,b = li
count = 0
for i in range(a,b+1):if k*f(i) == i:count += 1
print(count)
打印结果
51 5000 10000
3

(2018-腾讯-在线编程题)

  • 题目描述:
    给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,>并输出结果。输
    入值小于1000。
    如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
    [2,3,5,7]
  • 输入描述:
    输入包括一个整数n,(3 ≤ n < 1000)
  • 输出描述:
    输出对数
  • 示例1 :
    输入:
    10
    输出:
    2
num = int(input())
def isPrime(num):for i in range(2,num):if num % i == 0:return Falseelse:return True
primeli = [i for i in range(2,num) if isPrime(i)]   定义质数的变量
print(primeli)
primecount = 0
for item in primeli:if (num - item) in primeli and item <= num - item:primecount += 1
print(primecount)
打印结果
20
[2, 3, 5, 7, 11, 13, 17, 19]
2

假设有20个学生,学生名为westosX,学生分数在60~100之间,筛选出
成绩在90分以上得学生

方法一:
import random

stuInfo = {}
for i in range(20):name = 'westos' + str(i)score = random.randint(60,100)stuInfo[name] = score
highscore = {}
for name,score in stuInfo.items():if score > 90:highscore[name] = score
print(highscore)
打印结果
{'westos3': 94, 'westos7': 91, 'westos10': 93, 'westos12': 94, 'westos16': 99}

方法二:列表生成式

import random
stuInfo = {}
for i in range(20):name = 'westos' + str(i)score = random.randint(60,100)stuInfo[name] = score
print({name:score for name,score in stuInfo.items() if score > 90})
打印结果
{'westos1': 95, 'westos2': 91, 'westos3': 99, 'westos4': 95, 'westos5': 91, 'westos7': 96, 'westos9': 91, 'westos10':100, 'westos18': 91}

习题九
求最大公约数最小公倍数
概念
最大公约数:指两个或多个整数共有约数中最大的一个
最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数
二者关系:两个数之积=最小公倍数最大公约数
MIN函数是Microsoft Excel中的公式,可表示为min(x,y)=0.5
(x+y-|x-y|), 作用是返回给定参数表中的最小值。函数参数可以是数字、空白单元格、逻辑值或表示数值的文字串,如果参数中有错误值或无法转换成数值的文字时,将引起错误。

num1 = int((input('请输入第一个数值:')))  字符串不能相加减所有要转换成整型(int)
num2 = int(input('请输入第二个数值:'))
min_num = min(num1,num2)
for i in range(1,min_num+1):   i循环遍历1-min_num+1if num1 % i == 0 and num2 % i ==0:   这两个数值除以i的余都必须等于0gys  = i    最公约数gbs = (num2*num1)/gys   最小公倍数
print('%d和%d的最大公约数是:%d' %(num1,num2,gys))
print('%d和%d的最大公约数是:%d' %(num1,num2,gbs))
打印结果
请输入第一个数值:50
请输入第二个数值:20
50和20的最大公约数是:10
50和20的最大公约数是:100

习题十
99乘法表
为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串。
print默认是打印一行,结尾加换行。end=’ '意思是末尾不换行,加空格

for i in range(1,10):#print(i)for j in range(1,1+i):print('%d*%d=%d\t' %(i,j,i*j),end='\n')   (end='\n'表示打印完一行换行,\t相当于空格)

python应用——习题练习相关推荐

  1. Python入门习题大全——数字 8

    Python入门习题大全--索引 编写4个表达式,它们分别使用加法.减法.乘法和除法运算,但结果都是数字8.为使用print语句来显示结果,务必将这些表达式用括号括起来,也就是说,你应该编写4行类似于 ...

  2. Python入门习题大全——词汇表2

    Python入门习题大全--索引 既然你知道了如何遍历字典,现在请整理你为完成上一个例题而编写的代码,将其中的一系列 print 语句替换为一个遍历字典中的键和值的循环.确定该循环正确无误后,再在词汇 ...

  3. Python入门习题大全——词汇表

    Python入门习题大全--索引 Python 字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表. 想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在 ...

  4. Python入门习题大全——大号T恤

    Python入门习题大全--索引 修改函数上一个"T恤"例题中的make_shirt(),使其在默认情况下制作一件印有字样"I lovePython"的大号T恤 ...

  5. Python入门习题大全——T恤

    Python入门习题大全--索引 编写一个名为make_shirt()的函数, 它接受一一个尺码以及要印到T恤上的字样.这个函数应打印一个句子,概要地说明T恤的尺码和字样. 使用位置实参调用这个函数来 ...

  6. Python入门习题大全——猫和狗

    Python入门习题大全--索引 创建两个文件cats.txt 和dogs.txt,在第一个文件中至少存储三只猫的名字,在第二个文件中至少存储三条狗的名字.编写一个程序,尝试读取这些文件,并将其内容打 ...

  7. 上海交通大学python实践教程答案_python实践教程答案(求python课后习题答案)

    这题的答案(python知识) S = [] while 1: string = input("Please input your numbers:") if string ==  ...

  8. Python入门习题大全——人生的不同阶段

    Python入门习题大全--索引 设置变量 age 的值,再编写一个 if-else-else 结构,根据 age 的值判断处于人生的哪个阶段. 如果一个人的年龄小于 2 岁,就打印一条消息,指出他是 ...

  9. Python入门习题大全——检查用户名

    Python入门习题大全--索引 按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式. 创建一个至少包含5个用户名的列表,并将其命名为current_users. 再创建一个包含5 ...

  10. Python入门习题大全——喜欢的水果

    Python入门习题大全--索引 创建一个列表,其中包含你喜欢的水果,再编写一系列独立的 if 语句,检查列表中是否包含特定的水果. 将该列表命名为 favorite_fruits,并在其中包含三种水 ...

最新文章

  1. centos上tensorflow一键安装脚本
  2. 浮点运算为什么不准?有人为0.30000000000000004建了个网站
  3. postfix管理邮件队列的小程序
  4. 怎么查硬盘序列号_担心硬盘体质?不妨先给硬盘做一次体检
  5. Unity引擎与C#脚本简介
  6. 总结Java常见面试题和答案
  7. 11. javacript高级程序设计-DOM扩展
  8. CSE强契约模式常见问题和应对策略
  9. 95-10-120-启动-GroupCoordinator
  10. 支付1000元咨询费,如何让PB编写的程序不能被反编译?
  11. 给技术人提升自己的几点建议
  12. 计算机磁盘的卷是什么意思,磁盘卷和分区的不同是什么?
  13. Python3从搜狐国际新闻抓取---完整版
  14. 关于购买二手macbook的建议,看这一篇文章就够了!
  15. SQL like子查询
  16. 除去发票中的红色印章(C++,Open CV 4)
  17. 微机原理与接口技术 第七章 常用接口技术(河北专升本计算机)
  18. Java poi 去除word文档水印
  19. #036数字信息指南十分钟速成课
  20. fflush函数有什么作用?

热门文章

  1. JavaCV开发详解专栏文章目录(JavaCV速查手册)
  2. 如何在YesDev,多团队协作程序员客栈的整包项目?
  3. 一个人有没有领导力,就看这3点
  4. github.io使用方法
  5. Java无符号数据类型
  6. 银行ATM系统问题陈述与词汇表
  7. html5怎么做相册影集,照片制作视频软件|狸窝照片制作视频软件 如何用照片制作视频...
  8. 测绘——通过手机和smart3D创建三维模型
  9. 8.ffplayer 原理、架构及代码分析——包队列 pktqueue
  10. 现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和 SQL 语句实现下列 1—5 小题(注意:每小题都要分别 写出关