日常笔记,对错自辩,仅供交流学习。
日常笔记,对错自辩,仅供交流学习。
日常笔记,对错自辩,仅供交流学习。
笔记汇总2
1.1【问题描述】
编写python程序,模拟以下场景:
计算机输出:欢迎使用XXX充值业务,请输入充值金额:
用户输入:100
计算机输出:充值成功,您本次充值 100 元。
效果如下图所示:
print("欢迎使用XXX充值业务,请输入充值金额:")
num = int(input())
print("充值成功,您本次充值 %d 元"%num)
1.2【问题描述】
在IDLE中创建一个名称为idcard.py的文件,然后在该文件中定义3个字符串变量,分别记录两名程序员说的话,再从程序员甲说的身份证号中截取出出生日期,并组合成“YYYY年MM月DD日”格式的字符串,最后输出截取到的出生日期和生日,代码如下:
a = "你知道我的生日吗?"
b = "输入你的身份证号码。"
c = "123456199006277890"
print("程序员甲说: "+a+"\n"+"程序员乙说: "+b+"\n"+"程序员甲说: "+c)
print("程序员乙说: 你是%s年%s月%s日出生的,所以你的生日是%s月%s日" %
(c[6:10], c[10:12], c[12:14], c[10:12], c[12:14]))
1.3 【问题描述】
根据输入的父母亲的身高,预测出儿子的身高,并打印出来。计算公式为:儿子身高=(父亲身高+母亲身高)x 0.54。实现效果如下图所示:
print("请输入父亲的身高:")
num1=float(input())
print("请输入母亲身高:")
num2=float(input())
print("预测儿子身高为: %.4f"%((num1+num2)*0.54))
1.4 检测用户名【问题描述】
在IDLE中创建一个名称为check_user_name.py的文件,然后在该文件中定义1个字符串,内容为已经注册的会员名称,以“|”进行分隔,然后使用lower()方法将字符串全部转换为小写字母,再应用input()函数从键盘获取一个输入的注册名称,也将其全部转换为小写字母,再应用if…else语句和in关键字判断转换后的会员名是否存在于转换后的会员名称字符串中,并输出不同的判断结果。
a="Mrsoft|Tom"
b=a.lower().split("|")
# s=input("输入要注册的会员名称:")
print("输入要注册的会员名称:")
s=input()
s=s.lower()
if(s in b):
print("会员名 "+s+" 已经存在!")
else:
print("会员名 "+s+" 可以注册!")
1.5统计鱼数量
【问题描述】
小猫经过几天钓鱼,钓上了鲫鱼、鲤鱼、鲢鱼、草鱼、黑鱼、乌龟,在其记账单里记录为鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只。
小猫钓了几天鱼,想统计一下,它到底钓了多少鱼。
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
s,j,n=0,0,0
for var in fish_record:
if var=="条":
s+=int(fish_record[j-1])
n+=1
j+=1
print("三酷猫钓上的鱼有%d条,统计鱼%d次,乌龟数没有统计!"%(s,n))
1.6 小猫核算收入
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
fish_price='8、5、3、2、9、8'
i,num,sum,Amount=0,0,0,0
while i<len(fish_price)/2:
num=int(fish_record[2+i*5])
sum+=num
Amount+=int(fish_price[i*2])*num
i+=1
print('三酷猫钓上水产品数为%d,预计收入%d元。'%(sum,Amount))
1.7 线性法找乌龟
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
print(len(fish_record))
i=0
while i<len(fish_record):
if fish_record[i:i+2]=='乌龟':
if int(fish_record[i+2])/2==0:
print("找到乌龟了,是%d只,偶数"%(int(fish_record[i+2])))
else:
print("找到乌龟了,是%d只,奇数"%(int(fish_record[i+2])))
i+=5
1.8 判断找乌龟
#三酷猫钓鱼记录查找,python3.6.3版本下执行
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
print (len(fish_record))
if fish_record[0:2]=='乌龟':
print("是乌龟么?,是"+fish_record[0:2])
elif fish_record[5:7]=='乌龟':
print("是乌龟么?是"+fish_record[5:7])
elif fish_record[10:12]=='乌龟':
print("是乌龟么?是"+fish_record[10:12])
elif fish_record[15:17]=='乌龟':
print("是乌龟么?是"+fish_record[15:17])
elif fish_record[20:22]=='乌龟':
print("是乌龟么?是"+fish_record[20:22])
elif fish_record[25:27]=='乌龟':
if int (fish_record[27])/2==0:
print("找到乌龟了,是%d只,偶数"%(int(fish_record[27])))
else:
print("找到乌龟了,是%d只,奇数"%(int(fish_record[27])))
2.1 蒙特卡罗法计算圆周率
【问题描述】
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在半径为1的圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
【样例输入】
1024
【样例输出】
3.156250
import random
import math
def calculate_pi(num_points):
inside_circle = 0 # 圆内
for _ in range(num_points):
x = random.uniform(-1, 1) # 随机数
y = random.uniform(-1, 1)
distance = math.sqrt(x**2 + y**2) # 长度
if distance <= 1:
inside_circle += 1
return 4*inside_circle / num_points
seed = 123
num_points = int(input())
random.seed(seed)
pi = calculate_pi(num_points)
print("%.6f" %pi)
2.2 用户登录的三次机会
【问题描述】
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
user={'Kate':'666666'}
i=0
while i<3:
name=input()
password=input()
if name in user.keys() and password in user.values():
print('登录成功!')
break
else:
# print('错误')
i+=1
if i==3:
print("3次用户名或者密码均有误!退出程序。")
2.3 整数的加减和
【问题描述】
输入一个大于1的整数n,编写程序计算如下数列的值:
1-2+3-4+5-6…n
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
n = int(input(""))
total = 0
for i in range(1, n+1):
if i % 2 == 1:
total += i
else:
total -= i
print(total)
2.4 删除0,逆序输出
num=input()
number_str = str(num)
# 移除尾部的0
while number_str[-1] == '0':
number_str = number_str[:-1]
# 逆序
reversed_str = number_str[::-1]
# 如果是负数,添加负号
if number_str[0] == '-':
reversed_str=reversed_str[0:len(reversed_str)-1]
reversed_str = '-' + reversed_str
print(int(reversed_str))
2.5 100以内素数之和
【问题描述】
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
import math
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
sum = 0
for i in range(2, 100):
if is_prime(i):
sum += i
print(sum)
2.6 四位玫瑰数
【问题描述】
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
for i in range(1000, 10000):
num_str = str(i)
digits = [int(d) for d in str(i)]
if sum(digit ** 4 for digit in digits) == i:
print(i)
2.7 分两列显示球队名
【问题描述】
请分两列显示下面的球队名称如下图:
team = [‘火箭’,‘勇士’,‘开拓者’,‘雷霆’,‘爵士’,‘鹈鹕’,‘马刺’,‘森林狼’]
team=['火箭','勇士','开拓者','雷霆','爵士','鹈鹕','马刺','森林狼']
print("2017~2018赛季NBA西部联盟前八名\n")
for i in range(0,int(len(team)/2)):
print('%s\t%s\n'%(team[2*i],team[2*i+1]))
2.8 古诗排版
【问题描述】
使用二维列表输出不同版式的古诗。
str1 = “千山鸟飞绝”,str2 = “万径人踪灭”,str3 = “孤舟蓑笠翁”,str4 = “独钓寒江雪”,
verse = [list(str1), list(str2), list(str3), list(str4)] 。
str1="千山鸟飞绝"
str2="万径人踪灭"
str3="孤舟蓑笠翁"
str4="独钓寒江雪"
verse=[list(str1),list(str2),list(str3),list(str4)]
print(verse)
print('-- 横版 --\n')
for i in range(4):
for j in range(5):
if j==(4):
print(verse[i][j])
else:
print(verse[i][j],end="")
verse.reverse()
print(verse)
print('\n-- 竖版 --\n')
for i in range(5):
for j in range(4):
print(verse[j][i],end="")
if j==(3):
print()
2.9 打印对角矩阵
【问题描述】在线性代数中,n阶单位矩阵,是一个n*n的方形矩阵,其主对角线元素为1,其余元素为0。
现在请你打印一个n阶单位矩阵。
【输入形式】一行整数n (0 < n <= 10)
【输出形式】输出该n阶单位矩阵,每个元素之间用空格分隔
n=int(input())
L=[]
for i in range(n):
for j in range(n):
if i==j:
L.append(1)
else:
L.append(0)
for i in range(n**2):
print(L[i],end=" ")
if i%n==(n-1):
print("\n")