标签:可迭代对象 info 终端 替换 one 不用 生成 空间 说明
格式
while 表达式:
语句块
执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块,然后返回while,继续判断表达式的真假,直到表达式的值为假;若表达式的值为假,则直接跳过语句块,执行后面的代码。
说明:
表达式:也叫循环条件
语句块:也叫循环体
死循环:循环条件一直成立
break:跳出循环
continue:结束本次循环,进入下次循环
else:缩进的语句块,在循环正常退出时执行,break退出时不执行
说明:for-in也是一种循环,经常用于遍历可迭代的对象,如:字符串、列表、元组、字典等
格式
for x in y:
语句块
执行流程:x依次表示y中的一个元素,遍历结束循环就结束了。
可迭代对象:可以迭代遍历的对象,如:列表、元组、字典
range函数
# 一个对象,保存了产生连续整数的算法 # 可以节约空间 # print(range(10)) # 指定区间,默认其实值为0 print(range(2, 10)) ? # 可以遍历 for i in range(10): print(i) ? # 可以转换成列表 print(list(range(10)))
列表生成式
# 列表生成式:快速生成列表 # print([i for i in range(1, 11)]) # print([i*2 for i in range(1, 11)]) # print([i*i for i in range(1, 11)]) # print([str(i) for i in range(1, 11)]) print([i for i in range(1, 11) if i % 2 == 0])
循环能否嵌套?
答:能
循环嵌套示例
n = int(input(‘请输入一个整数:‘)) ? for i in range(n): for j in range(i+1): print(j+1, end=‘ ‘) print()
练习:使用while实现上面的功能
#1.使用while实现输入一个数,输出1 12 123 .... n = int(input(‘请输入一个整数:‘)) i = 1 while i<= n: i +=1 print([s for s in range(1, i)])
?
列表元素排序
冒泡排序
lt = [1, 5, 7, 3, 2] # 冒泡排序:从小到大 # 第一轮:1 5 3 2 7 # 第二轮:1 3 2 5 7 ? n = len(lt) ? # 外层循环控制比较多少轮 for i in range(n-1): # 内层循环控制元素的比较 for j in range(n-i-1): if lt[j] > lt[j+1]: # 通用交换元素 # temp = lt[j] # lt[j] = lt[j+1] # lt[j+1] = temp # python特有的 lt[j], lt[j+1] = lt[j+1], lt[j] print(lt)
选择排序
思想:先取出第一个元素,然后依次与后面所有的元素比较,不合适,发生交换。
示例:lt = [3, 5, 2, 8, 6, 4]
第一轮:2, 5, 3, 8, 6, 4
第二轮:2,3,5, 8, 6, 4
第三轮:2,3, 4, 8, 6, 5
练习:实现选择排序算法
#先取第一个元素,然后依次与后面的所有的元素比较,不合适,发生交换 lt = [8,5,6,7,2,1,3] n = len(lt) for i in range(0,n-1): for j in range(i+1,n): if lt[i] > lt[j]: lt[i],lt[j] =lt[j], lt[i] print(lt)
拼接与切割
s = ‘I love you more than I can say‘ # 按照指定的内容进行切割, 返回一个列表 # spilt:指定按照什么内容进行切割 # maxsplit:指定切割次数 # ret = s.split(‘ ‘, maxsplit=1) # ret = s.split() # 从右边开始切割 ret = s.rsplit(‘ ‘, maxsplit=1) print(ret) ? s = ‘Hello\nworld‘ # 安照换行进行切割 print(s.splitlines()) ? s = ‘I love you more than I can say‘ ret = s.split() # 字符串的拼接 s2 = ‘*‘.join(ret) print(s2)
查找统计判断
s = ‘Hi buddy, if you have something to say, than say; if you have nothing to say, than go!‘ ? # 子串查找,找到返回首次出现的位置(下标),找不到返回-1 # ret = s.find(‘good‘) # 从后面开始查找 # ret = s.rfind(‘if‘) # 统计次数 # ret = s.count(‘if‘) ? # 判断是否以指定内容开头 # ret = s.startswith(‘Hi‘) ? # 判断是否以指定内容结束 ret = s.endswith(‘go‘) ? print(ret)
转换及替换
s = ‘hello world!‘ ? # 转换为大写 print(s.upper()) ? # 转换为小写 print(s.lower()) ? # 大小写转换 print(s.swapcase()) ? # 首字母大写 print(s.capitalize()) ? # 每个单词首字母大写 print(s.title()) ? # 用指定的新内容替换旧内容,不用写count,直接写数字 print(s.replace(‘l‘, ‘L‘))
类型判断
s = ‘Hello‘ ? # 是否是全大写 print(s.isupper()) ? # 是否是全小写 print(s.islower()) ? # 是否每个单词只有首字母大写 print(s.istitle()) ? # s = ‘123‘ # 是否是全数字 print(s.isdecimal()) ? # 是否全是字母 print(s.isalpha()) ? s = ‘123‘ # 是否全是数字或字母 print(s.isalnum())
计算1~100之间所有整数的和
#计算1~100之间所有整数的和 i = 1 sum = 0 while i<=100: sum +=i i +=1 print(‘1+2+3+...+100=‘,sum)
打印字符A~Z
#2.打印字符A-Z a = 65 b =90 for i in range(a,b+1): print(chr(i))
循环输入10个字符,大写转小写,小写转大写,其它字符不变,然后输出
#3.循环输入10个字符,大写转小写,小写转大写,其它字符不变,然后输出. lt = ‘hello WorLd!‘ i = 0 a = len(lt) while i<a: b = lt[i] if b.islower(): print(b.upper()) else: print(b.lower()) i +=1
将12345转换为54321
#当a不为零的时候,循环条件为true,执行语句块 a = 12345 ret = 0 while a : #对a求余数,第一次循环则把5求出来 last = a%10 #对a求余后取整,保证下一位在下一个循环被取出 a=a//10 # a , last = divmod(a,10) #ret这个变量,第一次将五放在各位,第二次放在十位,依次递增。 ret = ret*10 + last #打印ret print(ret)
将12345转换为‘12345‘,不要使用str
#5.将12345转换为‘12345‘,不要使用str a = 12345 b = ‘%d‘ % a print(b, type(b)) 将‘12345’转化成54321 #将’12345‘转换成 54321 a = ‘12345‘ j = 0 set = 0 for i in a: j = j*10 + (ord(i)-ord(‘0‘)) #print(j) while j : j , last = divmod(j,10) set = last + set * 10 print(set)
将‘12345‘转换为12345,不要使用int
#6.将‘12345‘转换为12345,不要使用int s = "12345" a = 0 for x in s : a = a*10 +( ord(x)-ord("0")) print(a)
遍历列表,打印:我叫name,今年age岁,家住dizhi,电话phone
#7.遍历列表,打印:我叫name,今年age岁,家住dizhi,电话phone lt = [ {‘name‘:‘小王‘, ‘age‘:18, ‘info‘:[(‘phone‘, ‘123‘), (‘dizhi‘, ‘广州‘)]}, {‘name‘:‘小芳‘, ‘age‘:19, ‘info‘:[(‘phone‘, ‘789‘), (‘dizhi‘, ‘深圳‘)]}, {‘name‘:‘小杜‘, ‘age‘:22, ‘info‘:[(‘phone‘, ‘567‘), (‘dizhi‘, ‘北京‘)]}, {‘name‘:‘小孟‘, ‘age‘:28, ‘info‘:[(‘phone‘, ‘000‘), (‘dizhi‘, ‘上海‘)]}, {‘name‘:‘小乔‘, ‘age‘:26, ‘info‘:[(‘phone‘, ‘111‘), (‘dizhi‘, ‘河南‘)]}, ] for j in range(len(lt)): print(‘我叫{},今年{}岁,家住{},电话{}‘.format(lt[j].get(‘name‘),lt[j].get(‘age‘),lt[j].get(‘info‘)[1][1],lt[j].get(‘info‘)[0][1])) lt = [ {‘name‘:‘小王‘, ‘age‘:18, ‘info‘:[(‘phone‘, ‘123‘), (‘dizhi‘, ‘广州‘)]}, {‘name‘:‘小芳‘, ‘age‘:19, ‘info‘:[(‘phone‘, ‘789‘), (‘dizhi‘, ‘深圳‘)]}, {‘name‘:‘小杜‘, ‘age‘:22, ‘info‘:[(‘phone‘, ‘567‘), (‘dizhi‘, ‘北京‘)]}, {‘name‘:‘小孟‘, ‘age‘:28, ‘info‘:[(‘phone‘, ‘000‘), (‘dizhi‘, ‘上海‘)]}, {‘name‘:‘小乔‘, ‘age‘:26, ‘info‘:[(‘phone‘, ‘111‘), (‘dizhi‘, ‘河南‘)]}, ]
打印九九乘法表
#8.打印九九乘法表 for i in range (1,10): for j in range(1,i+1): print("%d*%d=%d" % (i,j,i*j),end=" ") print("")
从终端输入两个整数m和n,打印m*n的表格,如:2,5,打印如下图形:
m = int(input("请输入一个数字:")) n = int(input("请输入一个数字:")) for x in range(1,m+1): for y in range(1,n+1): ? print("{}".format((x-1)*n+y),end=" ") print() ? 1 2 3 4 5 6 7 8 9 10
标签:可迭代对象 info 终端 替换 one 不用 生成 空间 说明
原文地址:https://www.cnblogs.com/542684416-qq/p/9794657.html