Python——for、while循环语句和字符串的相关用法

一、for循环语句:

for循环语法:

for 变量 in range(x):
    循环需要执行的代码

range(stop): 0 ~ stop-1
range(start,stop): start ~ stop-1
range(start,stop,step): start ~ stop-1 step(步长)

# print(range(1,10,2))

#1~100之间的所有偶数求和
sum = 0
for i in range(2,101,2):
    sum += i

print(sum)

在这里插入图片描述

#输入一个数字,并求出它的阶乘
num = int(input('Num:'))
res = 1
for i in range(1,num+1):
    res *= i
print('%d的阶乘结果为: %d' %(num,res))

在这里插入图片描述

2.for循环的中断:
break:跳出整个循环,不会再执行循环后面的内容,但是循环之后的内容依然执行
continue:跳出本次循环,continue后面的代码不再执行,但是循环依然继续
exit():结束程序的运行

for i in range(10):
    if i == 5:
        # continue
        # break
        exit()
        print('hello')
    print(i)

print('hello python')

在这里插入图片描述

#练习11234四个数字
求四个数字能生成多少个互不相同且无重复数字的三位数(不能含有122 133类似)

count = 0

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != j and j !=k and k != i:
                print(i * 100 + j * 10 + k)
                count += 1

print('生成%d个无重复数字的三位数' %count)

在这里插入图片描述

练习21.输入用户名和密码
2.判断是否正确(name = 'root', passwd = 'westos')
3.登录仅有3次及会,超过3次,报错
for i in range(3):
    name = input('用户名: ')
    passwd = input('密码: ')
    if name == 'root' and passwd == 'westos':
        print('登录成功!')
        break
    else:
        print('登录失败')
        print('您还剩余%d次机会' %(2-i))

else:
    print('失败超过3次,请稍后再试!')

在这里插入图片描述

练习3:
#输入shell中的命令让其可以运行,按回车时还显示命令行提示字符
import os									##使输入中可以使用shell中的命令

# os.system('ls')					
# a = input('[kiosk@foundation0 ~]$ ')
# print(a)

for i in range(1000):						##在后面提到while后可以进入死循环,本处只是个例子
    cmd = input('[kiosk@python ~]$ ')
    if cmd:
        if cmd == 'exit':
            print('logout')
        else:
            os.system(cmd)
    else:
        continue

在这里插入图片描述

练习4:
最小公倍数 = (num1 * num2) / 最大公约数

#1.接收两个数字
num1 = int(input('Num1: '))
num2 = int(input('Num2: '))

#2.找出两个数中的最小值
min_num = min(num1,num2)

#3.最大公约数范围在1~min_num之间
for i in range(1,min_num+1):
    if num1 % i ==0 and num2 %i ==0:
        gys = i

#4.最小公倍数
gbs = (num1*num2 / gys)

print('%d和%d的最大公约数为: %d' %(num1,num2,gys))
print('%d和%d的最小公倍数为: %d' %(num1,num2,gbs))

在这里插入图片描述

二、while循环语句:

1.while语句:
while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
            ...
#1.定义计数器
i = 0
#2.开始循环
while i < 3:
    #循环内需要做的事情
    print('hello python')
    #处理计数器
    i += 1

在这里插入图片描述

while True:									##死循环,只要输出不为空就一直循环下去,可以手动终止循环
    print('hello python')

在这里插入图片描述

练习:求0100之间的数字和:

i = 0
sum = 0

while i <= 100:
    sum += i

    i += 1

print('0~100之间的数字求和结果为: %d' %sum)

在这里插入图片描述

2.while嵌套:
练习1:输出9x9乘法表

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

在这里插入图片描述

练习21.随机生成1100的数字
2.5次机会
3.too big
4.too small
5.恭喜,并退出循环

import random
trycount = 0
computer = random.randint(1,100)
print(computer)

while trycount < 5:
#    player = int(input('Num: '))					默认不显示电脑生成的数字
    if player > computer:
        print('too big')
        trycount += 1
    elif player < computer:
        print('too small')
        trycount += 1
    else:
        print('恭喜')
        break

在这里插入图片描述

三、字符串的简单用法

1.字符串定义方式:
a = 'hello'
b = "westos"
c = 'let\'s go'						##\转义'
d = "let's go"
e = """								##"""多行定义
        用户管理系统
        1.添加用户
        2.删除用户
        3.显示用户
"""
print(a)
print(b)
print(c)
print(d)
print(e)
print(type(e))

在这里插入图片描述

2.字符串的特性
索引:
s = 'hello'
print(s[0])
print(s[1])

在这里插入图片描述

切片:
s='hello'
print(s[:3])	#显示前3print(s[0:3])
print(s[0:4:2]) #s[start:end:step] 从start开始,到end-1结束
print(s[:])		#显示完整字符串
print(s[::-1])	#字符串的反序
print(s[1:])	#显示第二位到最后一位
print(s[:-1])	#显示第一位到倒数第二位i
print(s[-1])	#显示最后一位

在这里插入图片描述

重复:
s='hello'
print(s * 5)			#把hello连续显示5

在这里插入图片描述

连接:
s='hello'
print('hello' + 'world')

在这里插入图片描述

成员操作符号:
s='hello'
print('h' in s)				##在hello里面存在这个字符即输出True,不存在就输出Flase
print('q' in s)

在这里插入图片描述

3.几个小练习
练习1:回文数的判断(设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。)

num = input('Num:')
if num == num[::-1]:
    print('回文数')
else:
    print('不是')

在这里插入图片描述

练习2:抓取日志文件的简单方法,抓取网页类似

# filename = 'hello.log'
#
# if filename.endswith('.log'):
#     print(filename)
# else:
#     print('error')
#

url1 = 'file:///mnt'
url2 = 'ftp://172.25.254.250/pub'
url3 = 'http://172.25.254.250/index.html'

if url3.startswith('http://'):
    print('爬取网页')
else:
    print('无法爬取')

在这里插入图片描述
在这里插入图片描述

练习3:判断变量是否合法
1.第一个字符是否为字母或者下划线
2.如果是,继续
3.如果不是,报错
4.依次判断除了第一个字符以外的其他字符
5.判度是否为字母、数字或者下划线

while True:
    s = input('变量名: ')
    if s == 'exit':
        print('退出')
        break
    if s[0].isalpha() or s[0] == '_':
        for i in s[1:]:
            if not(i.isalnum() or i == '_'):
                print('%s变量名不合法' %s)
                break
        else:
            print('%s变量名合法' %s)
    else:
        print('%s 变量名不合法' %s)

在这里插入图片描述

4.字符串的搜索和替换:
s = 'hello world hello'

#find找到子串,并返回最小的索引
print(s.find('hello'))				#第一个hello从0开始,所以最小索引为0
print(s.find('world'))

#rfind找到子串,并返回最大的索引
print(s.rfind('hello'))				#最后一个hello从12开始,所以最大索引为12

#替换
print(s.replace('hello','westos'))

在这里插入图片描述

5.字符串的对齐
print('学生管理系统'.center(30))					##在30个空为中居中显示
print('学生管理系统'.center(30,'*'))				##居中显示并在两边加上*
print('学生管理系统'.ljust(30,'*'))				##只在右边显示*
print('学生管理系统'.rjust(30,'*'))				##只在左边显示*

在这里插入图片描述

6.字符串的统计
print('hello'.count('l'))			##hello中有几个l
print('hello'.count('ll'))			##hello中有几个ll
print(len('hello'))					##hello中有字符个数

在这里插入图片描述

7.字符串的分离和连接
分离:
s = '172.25.254.250'
s1 = s[::-1]
print(s1)						##字符串的倒序
s2 = s.split('.')
print(s2)						##字符串以.为分隔符拆开
s3 = s2[::-1]		
print(s3)						##字符串拆开后倒序

date = '2019-06-23'
date1 = date.split('-')
print(date1)

连接:
print('-'.join(date1))
print('.'.join(s2))

在这里插入图片描述
在这里插入图片描述

8.字符串的反转
print(' '.join(input().split()[::-1]))

在这里插入图片描述

9.字符串的小练习
练习:给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False

s = input()
if s.count('A') <= 1 and s.count('LLL') == 0:
    print(True)
else:
    print(False)

在这里插入图片描述
在这里插入图片描述

四、几道综合练习题:

1.(1)随机生成10以内加(可以是加减乘除)法题目
(2)学生查看题目并输入答案
(3)判断学生答案是否正确
(4)退出时,统计答题目总数,并统计正确数量和正确率(保留两位小数)
import random

fuhao = ['+','-','*','/']
count = 0
right = 0

while True:
    a = random.randint(0,10)
    b = random.randint(0,10)
    c = random.choice(fuhao)
    print('%d %s %d = ' %(a,c,b))
    question = input('请输入您的答案:(exit退出)')
    if  c == '+':
        result = a + b
        if question == str(result):
            print('回答正确')
        elif question == 'exit':
            break
        else:
            print('回答错误')
            count += 1
        right += 1
        count += 1
    elif c == '-':
        result = a - b
        if question == str(result):
            print('回答正确')
        elif question == 'exit':
            break
        else:
            print('回答错误')
            count += 1
        right += 1
        count += 1
    elif c == '*':
        result = a * b
        if question == str(result):
            print('回答正确')
        elif question == 'exit':
            break
        else:
            print('回答错误')
            count += 1
        right += 1
        count += 1
    elif c == '/':
        result = a / b
        if question == str(result):
            print('回答正确')
        elif question == 'exit':
            break
        else:
            print('回答错误')
            count += 1
        right += 1
        count += 1

if count == 0:
    print('错误:你还没有开始答题!!!')
else:
    percent = right / count
    print('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%' %(count,right,percent * 100))

在这里插入图片描述

2.*的4种打印方法,打印出来应该是下图所例类型
"""
*
**
***
****
*****

*****
****
***
**
*

    *
   **
  ***
 ****
*****

*****
 ****
  ***
   **
    *
"""
# 定义行变量,从1开始计数
row = 1
# 循环5while row <= 5:
    print("*" * row)  # 第i行打印i个星星
    row +=  1

在这里插入图片描述

# 定义行变量,从1开始计数
row = 5
# 循环5while row >= 1:
    print("*" * row)  # 第i行打印i个星星
    row -=  1

在这里插入图片描述

#定义行变量,从1开始计数
row = 1
while row <= 5: 			#打印5行
    col = 1 					#定义列变量,从1开始计数
    while col <= 5: 			#每行打印5if col <= (row - 1):
            print(" ", end="")
        else:
            print("*", end="")
        col += 1
    print("") 					#每打印完1行后换行
    row += 1

在这里插入图片描述

#定义行变量,从1开始计数
row = 1
while row <= 5: 				#打印5行
    col = 5 					#定义列变量,从5开始计数
    while col >= 1: 			#每行打印5,打印row个*,col-row个空格
        if col >= (row + 1):
            print(" ", end="")
        else:
            print("*", end="")
        col -= 1
    print("") 					#每打印完1行后换行
    row += 1

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python3中,while和for循环是两种常用的循环语句。 while循环是基于条件判断的循环语句。它会在满足条件时重复执行一段代码块,直到条件不再满足为止。在使用while循环时,首先需要定义一个循环条件,当这个条件为True时,代码块中的语句就会被执行。执行完一次代码块后,再次检查条件是否为True,如果为True,则继续执行,直到条件不再为True时,循环停止。 例如,以下是一个使用while循环计算1到10之间整数和的示例代码: ``` sum = 0 i = 1 while i <= 10: sum += i i += 1 print("1到10之间的整数和为:", sum) ``` 在上述代码中,初始值sum为0,i为1。在每次循环中,sum增加i的值,i增加1。当i大于10时,循环停止,打印出计算结果。 而for循环则是基于序列(如列表、字符串、元组等)的循环语句,它会遍历序列中的元素,并针对每个元素执行一段代码块。在使用for循环时,通常会使用in关键字指定一个序列,for循环会依次遍历序列中的元素并执行代码块。 例如,以下是一个使用for循环打印列表中元素的示例代码: ``` fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` 在上述代码中,定义了一个列表fruits,for循环会依次将列表中的元素赋值给fruit变量,并执行代码块中的打印语句。执行结果会依次打印出列表中的元素:"apple"、"banana"和"cherry"。 总结起来,while循环适用于在未知循环次数的情况下,根据条件判断来控制循环执行;而for循环适用于已知循环次数的情况下,遍历序列中的元素进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值