#1、将一个正整数分解质因数
#质因数就是能够被该正整数整除的数(除1和本身),先找出质数,在找出因数即为质因数
#算法:对正整数n分解质因数,应先找到一个最小的质数i:
#1 如果这个质数恰好等于n,则说明分解质因数的过程已经结束。直接打印i
#2 如果n!=i,但能被i整除,则应打印出i的值,并用n除以i的商作为新的正整数n,重复执行第一步。
#3.如果n不能被i整除,则用i+1作为i的值,重复执行第一步。
def prime(n): print('{}='.format(n))#字符串格式化 if not isinstance(n,int) or n<=0: print('请输入正整数!') elif n=='1': print('{}'.format(n)) while n not in [1]: for i in range(2,int(n)+1): if n%i ==0: n /=i if n==1: print(i) else: print('{}*'.format(i),end="") break print(prime(90))
#2、一个字符串中,分别输出奇数坐标字符或偶数坐标字符,奇数坐标的一行,偶数坐标的一行
s="For the hope of tomorrow, let us forget today's pain." result1="" result2="" for i in range(len(s)): if i%2==0: result1 +=s[i] else: result2 +=s[i] print(result1) print(result2)
#3、统计字符串中的字母、数字、其他字符个数
s="word123#@" import string word_num=0 digit_num=0 other_num=0 for i in s: if i in string.ascii_lowercase: word_num +=1 elif i.isdigit(): digit_num +=1 else: other_num +=1 print("字母个数 %s" %word_num) print("数字个数 %s" %digit_num) print("其他字符个数 %s" %other_num)
#4、有一个已经排好序的列表。现输入一个数,要求按原来的规律将它插入列表中
#算法:1 先判断这个列表的排序顺序是升序还是降序
2 升序-->1小于列表的第一个值,2在中间 ,3大于列表的最后一个值
def insert_num_in_list(s,num): result =[] #用首尾元素判断列表是升序还是降序 if s[0]<s[-1]: for i in range(len(s)): #场景1 if i ==0 and num<s[i]: result.append(num) result.append(s[i]) #场景2,elif条件也有先后执行顺序len(s)-1>i要放在前面,保证如果i=len(s)时s[i+1]不会超出range导致越界 #此处需要写作开区间,否则会在特定情况执行两次,如2,3,3的序列中插入3,如果写作num>=s[i] and num <=s[i+1]的情况,则该条件会执行两次 elif len(s)-1>i and num>=s[i] and num<s[i+1]: result.append(s[i]) result.append(num) #场景3 elif i ==len(s)-1 and num>=s[i]: result.append(s[i]) result.append(num) else: result.append(s[i]) else: for i in range(len(s)): if i ==0 and num>s[i]: result.append(num) result.append(s[i]) elif len(s)-1>i and num<=s[i] and num>s[i+1]: result.append(s[i]) result.append(num) elif i ==len(s)-1 and num<=s[i]: result.append(s[i]) result.append(num) else: result.append(s[i]) return result s=[1,1,3,4,4,6,9,9] print(insert_num_in_list(s,4)) print(insert_num_in_list(s,2)) print(insert_num_in_list(s,9)) print(insert_num_in_list(s,0)) s1=[12,8,6,5,4,3,2,1,0,0] print(insert_num_in_list(s1,15)) print(insert_num_in_list(s1,12)) print(insert_num_in_list(s1,9)) print(insert_num_in_list(s1,0))
C:Usersdell>py -3 C:UsersdellDesktop练习5 508.py
[1, 1, 3, 4, 4, 4, 6, 9, 9]
[1, 1, 2, 3, 4, 4, 6, 9, 9]
[1, 1, 3, 4, 4, 6, 9, 9, 9]
[0, 1, 1, 3, 4, 4, 6, 9, 9]
[15, 12, 8, 6, 5, 4, 3, 2, 1, 0, 0]
[12, 12, 8, 6, 5, 4, 3, 2, 1, 0, 0]
[12, 9, 8, 6, 5, 4, 3, 2, 1, 0, 0]
[12, 8, 6, 5, 4, 3, 2, 1, 0, 0, 0]
#5、统计名字列表中,各名字的首字母在名字列表中出现的次数
s=['Tom','Tony','Tim','Lily','Damon','Davi'] d={} for i in range(len(s)): #print(s[i][0]) if s[i][0] in d.keys(): d[s[i][0]] +=1 else: d[s[i][0]] =1 print(d)
C:Usersdell>py -3 C:UsersdellDesktop练习5 508.py
{'T': 3, 'L': 1, 'D': 2}