Python流程控制语句

一、if 语句

money = 100
if money > 300:
    print('铁锅炖')
print('回家')

二、if else 语句

money = input('请输入你口袋里面的钱:')
money = int(money)
if money > 500:
    print('去酒吧')
else:
    print('回家')

三、if else嵌套

money = int(input('请输入你口袋里面的钱:'))
if money >= 1000:
    if money > 3000:
        print('开个会员')
    else:
        print('给我来个豪华套餐')
else:
    print("回家洗洗睡觉")

四、if elif else嵌套

money = int(input('请输入你口袋里面的钱:'))
if money > 500:
    print('来一个普通的套餐%……%')
elif money > 100:
    print('喝杯茶就走了!!!')
elif money > 50:
    print('我就看一下*……*')
else:
    print('回家洗洗睡!!!')

五、while循环语句

# while 条件表达式:
#   代码块
Ture = 1
while Ture:
    print("你真的是菜狗")
#先喷他100次
i = 1
while i<= 100:
    print('喷死你')
    i+= 1
#求1+2+3....100=5050
i = 1
s = 0
while i <= 100:
    s = s +i  #累加
    i += 1
print(s)

六、break:

让当前循环立即停止

Ture = 1
while Ture:
    content = input('请输入你的内容')
    if content == 'q':
        break #结束循环
    print("请发送信息给:",content)

七、continue:

停止当前本次循环,继续执行下一次循环

i = 1
while i <= 10:
    if i == 4:
        i += 1
        continue
    print(i)
    i = i + 1
'''结果:
G:\Python\Python3.10\python.exe C:\Users
1
2
3
5
6
7
8
9
10

Process finished with exit code 0
'''

八、for循环

常用于遍历字符串、元组、列表、字典、集合等序列类型,逐个获取序列中的各个元素

for 变量名 in 字符串|列表|元组|字典|集合:
  代码块

1.遍历字符串

s = '人生苦短,只学Python'
for i in s:
    print(i)

2.遍历数字

for i in range(10):
    print(i)


for i in range(0,10):
    print(i)


for i in range(0,11,2):
    print(i)

3.通过索引值遍历

hero = ['李白','孟浩然','杜甫','柳宗元']

for i in range(len(hero)):  #range(start,end,step)
    print(i)
    
for i in hero:
    print(i)

4.pass关键句

pass关键句就是一个空语句,目的就是为了保持程序结构的完整性,pass不做任何事情,一般用做占位语句。

a = 50
if a > 60:
    pass

5.例题

例题1.九九乘法表

#使用for循环
1.
for x in range(1,10):
    for y in range(1,x+1):
        print("%d*%d=%2d" %(y,x,y*x),end="\t") #%号格式化,使用%进行占位,%连接传参,%d格式化整数
    print()

2.
for x in range(1,10):
    for y in range(1,x+1):
        print(f"{x}*{y}={x*y}",end="\t")       #f-string格式化,直接在花括号钟传值
    print()

3.
for i in range(1,10):    #1~9,因为是两个数相乘,所以还需要写一个j
    for j in range(1,i+1):
        print("{}*{}={}\t".format(j,i,i*j),end=' ')   #format格式化
    print()

#使用while循环
1.
x= 1
while x < 10:
    y = 1
    while y < x + 1:
        print("%d*%d=%2d" % (y, x, y * x), end="\t")
        y += 1
    x += 1
    print()

例题2.斐波那契数列

lists = [0,1,1,2,3,5,8]
x1 = 0
y1 = 1
for i in range(40):

    #实现原理、两两交换
    #x = y1
    #y = x1 + y1
    #print(y)
    #x1 = x
    #y1 = y

    x1,y1 = y1,x1+y1
    print(y1)

例题3.水仙花束

#第一种
1.
for x in range(100,1000):
    s = str(x)    #将数字转化为字符串
    bai = int(s[0])
    shi = int(s[1])
    ge = int(s[2])
    if x == bai**3 + shi**3 + ge**3:
        print(x)
结果:
153
370
371
407


2.
for x in range(100,1000):
    s = str(x)    #将数字转化为字符串
    bai = int(s[0])
    shi = int(s[1])
    ge = int(s[2])
    if x == eval(('{}**3 + {}**3 + {}**3').format(bai,shi,ge)):
        print(x)
结果:
153
370
371
407

#第二种
#通过while循环列出1000以内所有三位数,然后通过取整数算出百位,减去百位,然后除以10化整减去个位算出十位,
#取余数算出个位,然后进行**3来验证是否水仙花数
1.
i = 100
while i < 1000:
     num1 = i // 100    #百位
     num2 = int((i-num1*100)/10)     #十位
     num3 = i % 10     #个位
     if num3 ** 3 +num2 ** 3 +num1 ** 3 == i:
         print('水仙花数:',i)
     i += 1
结果:
水仙花数: 153
水仙花数: 370
水仙花数: 371
水仙花数: 407


#第三种
1.
for i in range(100,1000):
     a = i // 100  # 百位
     b = (i - a * 100) // 10     #十位
     c = (i - a * 100 - b * 10)      #个位
     if i == (a * a * a + b * b * b + c * c * c):
          print('水仙花数:',i)
结果:
水仙花数: 153
水仙花数: 370
水仙花数: 371
水仙花数: 407        

例题4.编写程序求一个列表里的最大值和最小值

#第一种
#假设列表中第一元素设为最大值,第一个元素再设为最小值。进行比较找出最大、最小值 。
nums = [18, 39, 11, 34, 51, 100, 69, 71, 92, 88, 5, 75]
max = nums[0] # 最大值是第一个元素
min = nums[0] # 最小值是第一个元素
for num in nums:
#将认为的最大值与列表中的剩余元素进行比较,这里认为最大值是第一个元素,将第一个元素与第二、三、四...逐个进行比较,
# 如果在比较的过程中遇到了比第一个元素还大的值 ,则把该元素赋值给max
    if num>max:
       max=num
#将认为的最小值与列表中的剩余元素进行比较,这里认为最小值是第一个元素,将第一个元素与第二、三、四...逐个进行比较,
# 如果在比较的过程中遇到了比第一个元素还小的值 ,则把该元素赋值给min
    if min>num:
       min=num
print("-------------第一种方式-------------")
print("最大值:", max)
print("最小值:", min)
结果:
最大值: 100
最小值: 5

#第二种
#用下标的方式来找出最大、最小值 的下标。
nums = [18, 39, 11, 34, 51, 100, 69, 71, 92, 88, 5, 75]
maxIndex=0 #最大值的下标为0
minIndex=0 #最小值的下标为0
#i 代表列表中的元素
for i in range(0,len(nums)):
#将认为的最大值下标nums[0]与列表中的剩余元素下标进行比较,
# 这里认为最大值是第一个元素nums[0],将nums[0]与nums[1],nums[2],nums[3]...
# 逐个进行比较,如果在比较的过程中遇到了比nums[0]还大的值 ,则把该元素的下标赋值给maxIndex.
    if nums[i]>nums[maxIndex]:
            maxIndex=i
#将认为的最小值下标nums[0]与列表中的剩余元素下标进行比较,
# 这里认为最小值是第一个元素nums[0],将nums[0]与nums[1],nums[2],nums[3]...
# 逐个进行比较,如果在比较的过程中遇到了比nums[0]还小的值 ,则把该元素的下标赋值给minIndex.
    if nums[minIndex]>nums[i]:
            minIndex=i

print("-------------第二种方式-------------")
print("最大值:", nums[maxIndex])
print("最小值:", nums[minIndex])
结果:
最大值: 100
最小值: 5

#第三种
lists = [2,3,5,1,7,9,3,56,2]
max = lists[0]
for i in lists[1:]:
    if max<i:
        max = i
print(max)
结果:56

例题5.编写程序对列表元素去重

1.
list1 = [1,1,1,4,4,5,5,7,7,7,7,7,9,9]
list2=[]#创建空的列表
for i in list1:#使用for in遍历出列表
    if not i in list2:#将遍历好的数字存储到控的列表中,因为使用了if not ,只有为空的的字符才会存里面,如果llist4里面已经有了,则不会存进去,这就起到了去除重复的效果!!
        list2.append(i)#把i存入新的列表中
print(list2)
结果:[1, 4, 5, 7, 9]
2.
lists = [1,9,1,2,6,2,4,3,0,3,9,4,5]
n_l = []
for i in lists:
    if i not in n_l:
        n_l.append(i)
#print(n_l)
print(list(set(lists)))
结果:[0, 1, 2, 3, 4, 5, 6, 9]
3.
lists = [[1,2],[3,4]]
for a,b in lists:
    print(a,b)
结果:
1 2
3 4

例题6.统计列表中每个元素出现的个数

#第一种
1.
list1 = [1,1,4,5,7,9]
print(list1)
for i in list1:
    c1 = list1.count(i)
    print(i,'出现的次数:',c1)
结果:
[1, 1, 4, 5, 7, 9]
1 出现的次数: 2
1 出现的次数: 2
4 出现的次数: 1
5 出现的次数: 1
7 出现的次数: 1
9 出现的次数: 1


#第二种
2.
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]
#根据情况判断,输出应为字典较为合适
Demo_dict = {}     #定义一个空的字典,在后面的运算中逐步添加数据
for key in Demo_list:    #遍历整个列表
    Demo_dict[key] = Demo_dict.get(key, 0) + 1

print(Demo_dict)
结果:{1: 2, 2: 4, 3: 4, 5: 3, 6: 1, 0: 1, 4: 2, 7: 2, 8: 2, 9: 1}

#第三种
3.
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]
#根据情况判断,输出应为字典较为合适
Demo_dict = {}
for item_str in Demo_list:
    if item_str in Demo_dict:
        Demo_dict[item_str] += 1
    else:
        Demo_dict[item_str]=1
print(Demo_dict)
结果:{1: 2, 2: 4, 3: 4, 5: 3, 6: 1, 0: 1, 4: 2, 7: 2, 8: 2, 9: 1}

#第四种
4.
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]
#根据情况判断,输出应为字典较为合适
Demo_dict = {}     #定义一个空的字典,在后面的运算中逐步添加数据
for key in Demo_list:     #遍历整个列表
    if key not in Demo_dict:   #判断当前key是否已经存在
        Demo_dict[key]=1       #当前key第一次出现
    else:
        Demo_dict[key]+=1      #在当前key的个数上加 1
print(Demo_dict)
结果:{1: 2, 2: 4, 3: 4, 5: 3, 6: 1, 0: 1, 4: 2, 7: 2, 8: 2, 9: 1}

#第五种
5.
from collections import Counter
lists =[1,2,3,3,3,5]
print(Counter(lists))
结果:Counter({3: 3, 1: 1, 2: 1, 5: 1})

#第六种
6.
lists = [47,98,3,6,2,98,30,47,3]
n_l = []
for i in range(len(lists)):
    i = lists[i]
    flag = 0
    n = 0
    for a,b in n_l:
        if a==i:
            n_l[n] = [i,b+1]
            flag = 1
        n=n+1
    if flag==0:
        n_l.append([i, 1])
print(n_l)
结果:[[47, 2], [98, 2], [3, 2], [6, 1], [2, 1], [30, 1]]

例题7.如果有两个列表,他们都有10个元素,如何生成一个新的列表,对应下表使用这2个列表中值大的那个?

#比如说列表1[1,2,3,4]列表3[2,1,2,2],得到的结果应为[2,2,3,4]
#方法一
1.
list1=[2,54,31,6,42]
list2=[4,98,43,3,2]
list3 = [max(i) for i in zip(list1,list2)]
print(list3)
结果:[4, 98, 43, 6, 42]

#方法二
2.
list1 = [1,4,3,7,2,4]
list2 = [1,2,4,5,2,8]
lists = []
for a,b in zip(list1,list2):
    n = a if a>b else b
    lists.append(n)
print(lists)
结果:[1, 4, 4, 7, 2, 8]

例题8.利用冒泡排序对列表进行排序

#第一种
1.
list = [4,1,7,2,5,3,9,8,6]
for i in range(0,len(list)-1):
    for j in range(0, len(list) - i - 1):
        if list[j]>list[j+1]:
            temp = list[j]
            list[j] = list[j+1]
            list[j+1] = temp
print(list)
结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
#第二种
2.
lists = [4,2,8,7,9,3,6,5]

for j in range(len(lists)-1):
    flag = 0
    for i in range(len(lists)-1-j):
            if lists[i]>lists[i+1]:
                lists[i],lists[i+1] = lists[i+1],lists[i] #模仿斐波那契数列赋值公式
                flag = 1
    if flag==0:
        break
print(lists)
结果:[2, 3, 4, 5, 6, 7, 8, 9]

例题9.用自己的代码实现strip的功能(用列表方法)

1.
strs = 'tashiyigedashiren,tajiushiliuzongyuantt'
def hello(strs,h='all',s=' '):
    while h=='l' or h=='all':
        if strs[0]==s:
             strs = strs[1:]
        else:
            break

    while h=='r' or h=='all':
        if strs[-1]==s:
            strs=strs[:-1]
        else:
            break
    return strs
print(hello(strs,h='r',s='t'))
结果:tashiyigedashiren,tajiushiliuzongyuan
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ゆきな

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值