文章目录
==资源下载与使用==
输出水仙花数
100以内的素数之和
计算输入数的奇偶数之和与平均数
计算s=a+aa+aaa+…+aaa…aaa的值
有3个数字:1、2、3,能组成多少个互不相同且无重复数字的三位数?各是多少?
输出10行内容,第1行一个星号,第2行2个星号,依此类推第10行10个星号,星号左对齐表示
第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789
计算从1到100临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)
给定一个不大于9的数n,打印nn乘法表
五位数中,对称的数称为回文数,打印所有的回文数并计算个数。如:12321
用户登录三次机会
程序模拟硬币的投掷
猜数字游戏
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米?
遍历循环
for in:
无限循环
while :
下面是我整理的一些循环结构简单的练习,敬请食用
资源下载与使用
本章资源下载链接
#后代表该段代码的目的,即要解决的问题
因为把所有的代码放到了一个文件里面,所以用两个 ‘’'把代码设置成了注释的格式
如果想要运行代码,只需要删除该段代码前后的引号即可。
文件格式示例
输出水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
思路: 巧用eval函数,数字转化成字符串形式后,就可以进行定位,定位后再利用eval函数重新转化成数字形式进行计算。
for i in range(100,1000):
t=str(i)
if pow(eval(t[0]),3)+pow(eval(t[1]),3)+pow(eval(t[2]),3)==i:
print(i,end=',')
100以内的素数之和
num=0
for i in range(2,101):
for a in range(2,i):
if i%a==0:
break
else:
num=num+i
print(num)
计算输入数的奇偶数之和与平均数
编写程序,从键盘上输入若干个整数,求出这些整数中所有奇数之和、偶数之和及所有数的平均值,当从键盘输入字符"A"时,程序输出计算结果。
num=input("请输入一个整数(输入字符A时结束处理):")
sum1=sum2=i=0
while num!='A':
i+=1
num=eval(num)
if num%2==0:
sum1+=num
else:
sum2+=num
num=input("请输入一个整数(输入字符A时结束处理):")
ave=(sum1+sum2)/i
print("所有奇数之和:{},所有偶数之和:{},平均值:{}".format(sum1,sum2,ave))
计算s=a+aa+aaa+…+aaa…aaa的值
同样是巧用字符串和数字格式的转化
计算s=a+aa+aaa+…+aaa…aaa的值,其中a是1~9之间的某个数字,n是一个正整数。例如,当a=2,n=5时,s=2+22+222+2222+22222=24690
a,n=eval(input("请输入a,n的值"))
s=0
for i in range(1,n+1):
s+=int(i*str(a))
print(s)
有3个数字:1、2、3,能组成多少个互不相同且无重复数字的三位数?各是多少?
count=0
for i in range(1,4):
for j in range(1,4):
for k in range(1,4):
if i!=j and i!=k and j!=k:
count+=1
print(str(i)+str(j)+str(k))
print(count)
输出10行内容,第1行一个星号,第2行2个星号,依此类推第10行10个星号,星号左对齐表示
'for i in range(1,11):
print('{:<10}'.format('*'*i))
第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789
for i in range(1,10):
j=1
while j<=i:
print(j,end='')
j+=1
else:
print('')
计算从1到100临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)
for i in range(1,100):
print("{}({}+{})".format(2*i+1,i,i+1))
给定一个不大于9的数n,打印nn乘法表
n=eval(input("请输入一个不大于9的整数:"))
for i in range(1,n+1):
j=1
while j<=i:
print("{}*{}={:<2}".format(j,i,j*i),end=' ')
j+=1
else:
print('')
五位数中,对称的数称为回文数,打印所有的回文数并计算个数。如:12321
count=0
for i in range(9999,99999):
s=str(i)
if s[0]==s[-1] and s[1]==s[-2]:
count+=1
print(i,count)
Note: ctrl+C强制退出执行程序
用户登录三次机会
用户名为cat,密码为66,如果输入正确,打印出登录成功!。如果连续三次输入错误打印登录失败!
count=0
for i in range(3):
name=input("请输入用户名:")
password=input("请输入密码:")
if name=='cat'and password=='66':
print("登录成功!")
break
else:
print("账号密码错误,请重新输入。")
else:
print("三次密码输入错误,登录失败!")
程序模拟硬币的投掷
假设0表示硬币反面,1表示硬币正面。在程序中让计算机产生若干次(建议大于100次)随机数,统计0和1分别出现的次数,并观察0和1出现的次数是否相同。
import random
count=eval(input("请输入抛硬币的次数(>100):"))
num0=num1=0
for i in range(0,count):
rnd=random.randint(0,1)
if rnd==0:
num0+=1
else:
num1+=1
print("硬币朝上的次数为{},硬币朝下的次数为{}".format(num1,num0))
猜数字游戏
在程序中随机生成一个0~9之间(包含0和9)的随机整数T,让用户通过键盘输入所猜的数。如果输入的数大于T,显示“太大了”;如果小于T,显示“太小了”;如此循环,直至猜中该数,显示“猜了N次,猜中了”,其中N是指用户在这次游戏中猜中该随机数一共尝试的次数。
import random
T=random.randint(0,9)
guess=eval(input("请输入一个0-9之间的数字:"))
count=0
while 1:
count+=1
if guess
print("太小了")
guess=eval(input())
elif guess>T:
print('太大了')
guess=eval(input())
else:
print('猜了{}次,猜对了'.format(count))
break
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米?
h=100
m=100
n=eval(input("输入一个整数: "))
for i in range(2,n+1):
h=h/2
m=m+(h*2)
print(m)