python循环语句课堂练习及课后作业

1.

需求1:求1~100之间的所有偶数之和

sum=0
for i in range(2,101,2):
    sum = sum + i
print(sum)

在这里插入图片描述
需求2:求1~100之间的所有奇数之和

sum = 0
for i in range(1,100,2):
    sum = sum + i
print(sum)

需求3:用户输入一个整形数,求该数的阶乘;3!=321

sum = 1
value=int(input('请输入一个数:'))
if (value == 0):
    print('阶乘为:0')
else:
    for i in range(1,value+1):
        sum = sum * i
    print('阶乘为: %d' %(sum)
2.

用户登陆程序需求:
1.输入用户名和密码
2.判断用户名和密码是否正确(name = ‘root’,passwd=‘westos’)
3.为了防止暴力破解,登陆仅有三次机会,如果超过三次,程序就报错

for i  in range(3):
    yonghu=input('用户名:')
    mima=input('密码:')
    if ((yonghu=='root')and(mima=='westos')):
        print('登陆成功')
        break
    else:
        print('用户名或密码错误')
        print('您还剩余%d次机会'%(2-i))
else:
    print('您的机会已用尽,请稍后再试')

在这里插入图片描述

3.
*
**
***
****
*****
row = 1
while row<=5:
    col=1
    while col <=row:
        print('*',end='')
        col+=1
    print()
    row+=1

在这里插入图片描述

    *
   **
  ***
 ****
*****
row=1
while row<=5:
    col=1
    space=5
    while space>row:
        print(' ',end='')
        space-=1
    while col<=row:
        print('*',end='')
        col+=1
    print()
    row+=1
*****
****
***
**
*
row=1
while row<=5:
    col=5
    while col >= row:
        print('*',end='')
        col-=1
    print()
    row+=1
*****
 ****
  ***
   **
	*
row=1
while row<=5:
    col=5
    value=1
    while value<row:
        print(' ',end='')
        value+=1
    while col >=row:
        print('*',end='')
        col-=1
    print()
    row+=1

在这里插入图片描述

4.

9x9乘法表

row=1
while row<=9:
    col=1
    while col <=row:
        print('%d*%d=%d\t' %(row,col,row*col) ,end='')
        col+=1
    print()
    row+=1

在这里插入图片描述

5.

猜数字游戏
if , while(for), break
1. 系统随机生成一个1~100的数字;
** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
2. 用户总共有5次猜数字的机会;
3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;

while循环
import random
x = random.randint(1,100)
print(x)

trycount = 0
while trycount < 5:
	tk = int(input('请输入你猜测的数字:'))
	if tk == x:
		print('恭喜中奖100万')
		break
	elif tk < x:
		print('too small')
		trycount += 1
	else:
		print('too big')
		trycount += 1

else:
	print('机会已经用完了~')
for循环
import random
for i in range(5):
    num1=random.randint(1,100)
    num2=int(input('请输入一个数:'))    
    if (num1==num2):
        print('系统的数值为%d'%(num1))
        print('恭喜中奖100万')
        break
    if (num2<num1):
        print('系统的数值为%d'%(num1))
        print('too small')
        print('您还剩余%d次机会'%(4-i))
    if (num2>num1):
        print('系统的数值为%d'%(num1))
        print('too big')
        print('您还剩余%d次机会'%(4-i))
else:
    print('次数用尽')

在这里插入图片描述

6.

输出命令[kiosk@test]$

import os
for i in range(1000):
    cmd=input('[kiosk@test]$')
    if cmd:
        if(cmd=='exit'):
            print('logout')
            break
        else:
            print('run%s'%(cmd))
            os.system(cmd)
    else:
        continue

在这里插入图片描述

import os
while 1:
    cmd=input('[kiosk@test]$')
    if cmd:
        if(cmd=='exit'):
            print('logout')
            break
        else:
            print('run%s'%(cmd))
            os.system(cmd)
    else:
        continue
7.

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样
的整数。
示例:
示例 1:
输入: 121
输出: true
#示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
#示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数

num = input('Num:')
print(num == num(::-1))

在这里插入图片描述

8.

用户输入两个数,求它们的最大公约数和最小公倍数

a=int(input('第一个数:'))
b=int(input('第二个数:'))
if(a>b):
    for i in range(1,b+1):
        if((a%i==0)and(b%i==0)):
            value =i
    lcm=int((a*b)/value)
    print('%d和%d的最大公约数为%d' %(a,b,value))
    print('%d和%d的最小公倍数为%d' %(a,b,lcm))
if(a<b):
    for i in range(1,a+1):
        if((a%i==0)and(b%i==0)):
            value =i
    lcm=int((a*b)/value)
    print('%d和%d的最大公约数为%d' %(a,b,value))
    print('%d和%d的最小公倍数为%d' %(a,b,lcm))

在这里插入图片描述

9.

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

import  random
i=0
j=-1
while 1:
    x1 = random.randint(0,10)
    x2 = random.randint(0,10)
    print('%d+%d=?' %(x1,x2))
    j+=1
    answer=str(input('请输入答案,或者按q退出:'))
    if (str((x1+x2))==(answer)):
        print('回答正确')
        i+=1
    elif answer=='q'and j==0:
        print('您当前答题总数为:0')
        exit()
    elif answer=='q':
        break
    else:
        print('回答错误')
per=(i/j)*100
print('您当前答题总数为:%d\n正确数量为:%d\n正确率为%.2f%%' %(j,i,per))

在这里插入图片描述

10.

小学生算术能力测试系统:
#设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:
#提供10道加、减、乘或除四种基本算术运算的题目;
#练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。

import random
while 1:
    op = ['+','-','*','/']
    s = random.choice(op)
    x1= random.randint(0,100)
    x2= random.randint(0,100)
    print('%d%s%d=?' %(x1,s,x2))
    answer=float(input('请输入答案(四舍五入,保留两位小数):'))
    if s=='+':
        y=x1+x2
    elif s=='-':
        y=x1-x2
    elif s=='*':
        y=x1*x2
    else:
        y=float(('%.2f'%(x1/x2)))
    if y==answer:
        print('回答正确')
    else:
        print('回答错误')

在这里插入图片描述

11.

算法之指定范围内判断
1). 若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。判断正整数n是否为完全数。
2). 输入一个正整数,判断其是否为一个素数

a=int(input('请输入一个正整数:'))
j=0
for i in range(1,a):
    if a%i==0:
        j=i+j
if a==j:
    print('该数为完全数')
else:
    print('该数不是完全数')
    

在这里插入图片描述

a=int(input('请输入一个数:'))
j=0
if a==1:
    print('该数为素数')
else:
    for i in range(1,a+1):
        if a%i==0:
            j=i+j
    if a+1==j:
        print('该数为素数')
    else:

在这里插入图片描述

12.

(2017-小米-句子反转)
题目描述:
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前>后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1:
输入:
hello xiao mi
输出:
mi xiao hello

s=[]
star1=input('输入:\n')
s.append(star1)
while 1:
    if star1[-1]==' ':
        star1=input()
        s.append(star1)
    else:
        break
print('输出:')
for i in s:
    str=i.split(' ')[::-1]
    str1=' '.join(str).strip()
    print(str1)

在这里插入图片描述

13.

变量名是否合法?
1.变量名可以由字母,数字或下划线组成
2.变量名只能以字母或下划线开头

while 1:
    s = input('请输入变量名:')
    if s == 'exit':
        print('欢迎下次使用')
        break
    elif s[0].isalpha() or s[0] == '_':
        for i in s[1:]:
            if i.isalpha()  or i.isalnum()or i == '_':
                print('变量名合法')
                break
            else:
                print('变量名不合法')
    else:
            print('变量名不合法')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值