1.从键盘输入一个3位数,计算并输出百位、十位、个位上的数字。
#方法一
num=input("请输入一个3位数:") #从键盘获取字符串
num=int(num) #通过int()函数将num字符串转换成整数
a=num//100 #双斜线"//"表示整除,用来计算num的百位
b=num//10%10 #num//10获得百位和十位,通过num//10%10得到十位
c=num%10 #获取个位
print("百位是:%d,十位是%d,个位是:%d"%(a,b,c))
#方法二
num=input("请输入一个3位数:") #从键盘获取字符串
a,b,c=map(int,num) #把num字符串转换成int类型,并将num的数拆分,分别赋值给a,b,c
print("百位是:%d,十位是%d,个位是:%d"%(a,b,c))
2.接收用户输入的一个字符串,如果是正整数就判断是否能同时被3和7整除,并输出判断结果。
str=input("请输入数字:")
if str.isnumeric(): #当字符串中的所有字符都是数字时,str.isnumeric()方法返回True,否则是False
num=int(str) #将字符串str转为整型,并存到num变量中
if num%3==0 and num%7==0: #num%3==0说明num可以被3整除,如果条件成立,则说明num中存放的数据能同时被3和7整除
print("%d能同时被3和7整除"%num)
else: #if后的条件不成立,说明num无法被3或7整除
print("%d不能同时被3和7整除"%num)
else: #与第一个if语句对应,说明字符串中有些字符不是数字
print("请输入正整数")
3.根据年份和月份计算当月的天数。提示:闰年2月份有29天,不是闰年的二月份有28天。其中,判断是否为闰年的方法为:如果年份能被4整除且不能被100整除,或年份能被400整除,则该年为闰年。
year=int(input("请输入年份:")) #通过int函数把输入的字符串转换为整数
month=int(input("请输入月份:"))
if month in [1,3,5,7,8,10,12]: #in用来判断month变量的值是否在序列[1,3,5,7,8,10,12]中
print("%d年%d月有31天" % (year,month))
elif month in [4,6,9,11]: #判断month变量的值是否在序列[4,6,9,11]中
print("%d年%d月有30天" % (year, month))
else: #只剩下2月份
if year%400==0 or (year%4==0 and year%100!=0):
#如果输入的年份是闰年,则2月份有29天
print("%d年%d月有29天" % (year, month))
else: #输入的年份不是闰年,2月份有28天
print("%d年%d月有28天" % (year, month))
4.快递计费系统。某快递点提供华东地区、华南地区、华北地区的寄件服务,其中华东地区的编号为01、华南地区的编号为02、华北地区的编号为03,该快递点寄件价目表如下图所示。
num=input("请选择地区编号(01/02/03):")
weight = float(input("请输入行李重量(kg):"))
if num=='01': #如果选择是01编号,对应的是华东地区
print("所属地区为:华东地区(01)")
if weight<=2: #2kg以内的都是13元/kg
price=13*weight
print("行李重量为%d,总费用是%.1f"%(weight,price))
else: #行李重量超过2kg,超出的部分是3元/kg
price=13*2+(weight-2)*3 #超出的部分是(weight-2)
print("行李重量为%d,总费用是%.1f" % (weight, price))
if num=='02':
print("所属地区为:华南地区(02)")
if weight<=2:
price=12*weight
print("行李重量为%d,总费用是%.1f"%(weight,price))
else: #行李重量超过2kg,超出的部分是2元/kg
price=12*2+(weight-2)*2
print("行李重量为%d,总费用是%.1f" % (weight, price))
if num=='03':
print("所属地区为:华北地区(03)")
if weight<=2:
price=14*weight
print("行李重量为%d,总费用是%.1f"%(weight,price))
else: #行李重量超过2kg,超出的部分是4元/kg
price=14*2+(weight-2)*4
print("行李重量为%d,总费用是%.1f" % (weight, price))
5.用户输入两个整数,计算这两个整数之间的所有奇数之和、所有素数之和并输出结果。
m=int(input("输入第一个整数:"))
n=int(input("输入第二个整数:"))
sum1=0 #sum1变量用来保存奇数之和
print("奇数有:",end="")
for i in range(m,n+1): #range(start,end,step)用来生成一些数字,从start开始,到end结束(但不包括end),以步长step生成数字(可省略,默认为1)
#使用for循环遍历m和n之间的所有数,每次for循环将数值赋值给变量i
if i%2!=0: #如果i的值不能被2整除,说明i是奇数
print(i,end=" ")
sum1+=i #等同于sum1=sum1+i,把奇数i的值与sum1相加,并重新赋值给sum1
print("\n%d和%d之间的所有奇数之和为%d"%(m,n,sum1))
sum2=0 #sum2变量用来保存素数之和
print("素数有:",end="")
while m<=n: #循环的条件是输入的第一个数小于等于第二个数
k=2 #定义一个变量k,而k是[2,m/2]之间的数
while k<=(m/2):
#判断一个数m是否为素数,只需判断这个数能否被[2,m/2]之间的数整除即可,如果能被整除说明m不是素数
if m%k==0: #如果m能被k整除,使用break直接结束当前while循环
break
k+=1 #如果m能不被k整除,则k+1进入下次while循环,判断m是否能被k+1整除
if k>(m/2): #k大于m/2,则说明m不能被[2,m/2]之间的数整除
print(m,end=" ") #此时m是素数
sum2+=m #等同于sum2=sum2+m,把奇数m的值与sum2相加,并重新赋值给sum2
m+=1 #m+1之后进入下一次while循环(判断m<=n是否成立)
print("\n%d和%d之间的所有素数之和为%d"%(m,n,sum2))
6.逢七拍手游戏。规则如下:从1开始顺序数数,数到有7或者包含7的倍数的时候拍手(显示为“*”)。要求编写程序,模拟实现逢七拍手游戏,输出100以内(包括100)的数字。
for i in range(1,101): #循环1-100之间的数,每次循环赋值给i
if i%10==0: #1行显示10个数
print() #换行
if i%7==0 or str(i).find('7')!=-1: #因字符串有find()方法,用于查找某个字符是否存在,
#如果值为-1说明字符不存在,反之存在。所以需通过str(i)先把i转换为字符串
#如果i的值能被7整除,或数字中包含7
print("*",end=" ") #显示为*
continue
print(i,end=" ") #不能被7整除或数字中不包含7,则数字正常显示
7.登录系统账号密码检测,即检测用户输入的账号密码是否正确。若用户输入的账号或密码不正确,提示“用户名或密码错误”和“您还有*次机会”;若用户输入的账号和密码正确,提示“登录成功”;若输入的账号密码错误次数超过3次,提示“输入错误次数过多,请稍后再试”。
count=3 #用来保存输入的次数
while count>0:
id = input("请输入账号:")
pwd = input("请输入密码:")
if id=='admin' and pwd=='123': #设置账号是admin,密码是123
print("登录成功")
break #若登录成功,直接退出整个循环
else: #若输入的账号或密码错误
print("用户名或密码错误")
count -= 1 #输入错误的账号和密码后次数-1
if count==0: #当次数为0
print("输入错误次数过多,请稍后再试")
else: #还有剩余次数
print("您还有%d次机会" % count)
8.猜数游戏。程序随机生成一个0-100的整数,用户通过键盘输入猜测的数字。如果猜测的数字大于生成数,则提示“很遗憾,你猜大了”;如果猜测的数字小于生成数,则提示“很遗憾,你猜小了”;循环输入,直至猜中生成数,显示“猜了n次,恭喜猜中了!”,其中n为用户输入的次数。提示:程序随机生成数通过random模块中的randint()函数实现,randint(a, b)表示生成闭区间 [a,b] 中的一个随机整数,包含端点值a,b。
import random #通过import导入random模块,用来生成随机数
num=random.randint(0,100) #利用random模块中的randint函数生成随机数(整数类型),保存到num变量
guess=int(input("请输入数字:")) #把输入的数字从字符串类型转为整型
count=1 #用来保存猜的次数
while guess!=num: #当没有猜中时
if guess>num: #若猜的数字比随机数大
print("很遗憾,你猜大了")
if guess<num: #若猜的数字比随机数小
print("很遗憾,你猜小了")
count += 1 #此次未猜中,所以次数+1
guess = int(input("请输入数字:")) #再次输入
print("猜了%d次,恭喜猜中了!"%count) #在while循环结束后,说明猜中了,显示次数