一、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