1、打印2000-3000之间被7整除但不被5整除的数,以,(逗号)分隔
>>> for i in range(2000,3001):
... if i % 7 == 0 and i % 5 != 0:
... print(i,end=",")
...
2002,2009,2016,2023,2037,2044,2051,2058,2072,2079,2086,2093,2107,2114,2121,2128,
2142,2149,2156,2163,2177,2184,2191,2198,2212,2219,2226,2233,2247,2254,2261,2268,
2282,2289,2296,2303,2317,2324,2331,2338,2352,2359,2366,2373,2387,2394,2401,2408,
2422,2429,2436,2443,2457,2464,2471,2478,2492,2499,2506,2513,2527,2534,2541,2548,
2562,2569,2576,2583,2597,2604,2611,2618,2632,2639,2646,2653,2667,2674,2681,2688,
2702,2709,2716,2723,2737,2744,2751,2758,2772,2779,2786,2793,2807,2814,2821,2828,
2842,2849,2856,2863,2877,2884,2891,2898,2912,2919,2926,2933,2947,2954,2961,2968,
2982,2989,2996,>>>
2、输出9*9口诀表
>>> for i in range(1,10):
... for j in range(1,i+1):
... print(str(i)+"*"+str(j)+"=",i*j," ",end="")
... print()
...
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3= 12 4*4= 16
5*1= 5 5*2= 10 5*3= 15 5*4= 20 5*5= 25
6*1= 6 6*2= 12 6*3= 18 6*4= 24 6*5= 30 6*6= 36
7*1= 7 7*2= 14 7*3= 21 7*4= 28 7*5= 35 7*6= 42 7*7= 49
8*1= 8 8*2= 16 8*3= 24 8*4= 32 8*5= 40 8*6= 48 8*7= 56 8*8= 64
9*1= 9 9*2= 18 9*3= 27 9*4= 36 9*5= 45 9*6= 54 9*7= 63 9*8= 72 9*9= 81
>>> for i in range(1,10):
... for j in range(1,i+1):
... print(str(i)+"*"+str(j)+"="+str(i*j),end=" ")
... print()
...
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
>>>
>>>
>>>
>>> for i in range(1,10):
... for j in range(1,i+1):
... print(str(i)+"*"+str(j)+"=%s" %(i*j),end=" ")
... print()
...
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
3、计算1 - 1/2 + 1/3 - 1/4 + … + 1/99 - 1/100 + …直到最后一项的绝对值小于10的-5次幂为止
>>> result = 0.0
>>> n = 1
>>> while 1:
... if abs(1/n) < pow(10,-5):
... break
... else:
... if n % 2 == 1:
... result += 1/n
... n += 1
... else:
... result -= 1/n
... n += 1
...
>>> print(result)
0.6931421805849816
4、编程将类似“China”这样的明文译成密文,密码规律是:用字母表中原来的字母后面第4个字母代替原来的字母,不能改变其大小写,如果超出了字母表最后一个字母则回退到字母表中第一个字母。
>>> def encode_letter(s):
... result = ""
... if not isinstance(s,str):
... print("请输入字符串!")
... return None
... for i in s:
... if (i >"a" and i < "v") or (i >"A" and i < "V"):
... result += chr(ord(i)+4)
... elif (i >"w" and i < "z") or (i >"W" and i < "Z"):
... result += chr(ord(i)-22)
... return result
...
>>> print(encode_letter("China"))
Glmr
5、输出以下如下规律的矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
>>> for i in range(1,5):
... for j in range(1,6):
... if i == 1:
... print(j,end=" ")
... elif i == 2:
... print(j*2,end=" ")
... elif i == 3:
... print(j*3,end=" ")
... elif i == 4:
... print(j*4,end=" ")
... print()
...
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
6、对一个列表求和,如列表是[4, 3, 6],求和结果是 [4, 7, 13],每一项的值都等与该项的值加上前一项的值
>>> a = [4,3,6]
>>> result = []
>>> for i in range(len(a)):
... result.append(sum(a[0:i+1]))
...
>>> print(result)
[4, 7, 13]
>>> from functools import reduce
>>> a = [4,3,6]
>>> result = []
>>> temp_list = []
>>> for i in a:
... temp_list.append(i)
... result.append(reduce(lambda x,y:x+y,temp_list))
...
>>> print(result)
[4, 7, 13]
7、一个字符串 list,每个元素是 1 个 ip,输出出现次数最多的 ip
>>> ip_list = ["127.0.0.1","127.0.0.1","192.168.2.10","192.168.2.11","192.168.2.
12"]
>>> d = {}
>>> for ip in ip_list:
... d[ip] = ip_list.count(ip)
...
>>> for k,v in d.items():
... if v == max(d.values()):
... print("出现次数最多的ip:",k)
...
出现次数最多的ip: 127.0.0.1
8、打印100以内的素数
>>> def is_prime(num):
... for i in range(2,num):
... #print(i)
... if num % i == 0:
... return False
... return True
...
>>> for k in range(1,101):
... if is_prime(k):
... print(k,end=" ")
...
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 >>>
>>> import math
>>> def is_prime(num):
... for i in range(2,int(math.sqrt(num)+1)):
... #print(i)
... if num % i == 0:
... return False
... return True
...
>>> for k in range(1,101):
... if is_prime(k):
... print(k,end=" ")
...
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 >>>
9、实现一个简易版的计算器,功能要求:加、减、乘、除,支持多数同时进
行计算
#encoding=utf-8
def calc(*args):
help_info = \
"""
add:加法
sub:减法
mul:乘法
div:除法
"""
print(help_info)
result = 0.0
command = input("请输入命令:")
if command == "add":
for i in args:
result += i
elif command == "sub":
for i in args:
if result == 0.0:
result = i
else:
result -= i
print(i,result)
elif command == "mul":
for i in args:
if result == 0.0:
result = i
else:
result *= i
elif command == "div":
for i in args:
if result == 0.0:
result = i
else:
result /= i
return result
print(calc(1,2,3))
10、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前
20项之和
>>> result = 0.0
>>> a = 2
>>> b = 1
>>> for i in range(20):
... print(a,b)
... result += a/b
... temp = b
... b = a
... a = temp + b
...
2 1
3 2
5 3
8 5
13 8
21 13
34 21
55 34
89 55
144 89
233 144
377 233
610 377
987 610
1597 987
2584 1597
4181 2584
6765 4181
10946 6765
17711 10946
>>> print(result)
32.66026079864164
11、画等(腰)边三角形(实心、空心)
>>> for i in range(1,7):
... print("\n")
... for k in range(i,7):
... print (" ",end="")
... for j in range(i):
... print ("* ",end="")
...
*
* *
* * *
* * * *
* * * * *
* * * * * * >>>
>>> for i in range(1,7):
... print ("\n")
... for k in range(i,7):
... print (" ",end="")
... for j in range(i):
... if i >= 3 and i < 6:
... if j==0 or j==i-1:
... print ("* ",end="")
... else:
... print (" ",end="")
... else:
... print ("* ",end="")
...
*
* *
* *
* *
* *
* * * * * * >>>
12、画倒等边三角形
>>> for i in range(1,7):
... print()
... for k in range(i):
... print(" ",end="")
... for j in range(i,7):
... print(" *",end="")
...
* * * * * *
* * * * *
* * * *
* * *
* *
*>>>
13、画直角三角形(实心、空心)
>>> for i in range(1,7):
... print()
... for k in range(i):
... print("* ",end="")
...
*
* *
* * *
* * * *
* * * * *
* * * * * * >>>
>>> for i in range(7):
... print()
... for k in range(i):
... if i >= 3 and i <= 5:
... if k ==0 or k == i - 1:
... print("* ",end="")
... else:
... print(" ",end="")
... else:
... print("* ",end="")
...
*
* *
* *
* *
* *
* * * * * * >>>
18、要求实现一函数,该函数用于求两个集合的差集,结果集合中包含
所有属于第一个集合但不属于第二个集合的元素
>>> def diff_set(s1,s2):
... diff_set = []
... for i in s1:
... if i not in s2:
... diff_set.append(i)
... return set(diff_set)
...
>>> set_1 = {1,2,3,6,8}
>>> set_2 = {1,2,3,5,6,7}
>>> print(diff_set(set_1,set_2))
{8}
19、找出一段句子中最长的单词及其索引位置,以list返回
import string
s = "I am a beautiful girl, lihongsong!"
def find_max_length_word(ss):
for i in ss:
if i in string.punctuation:
ss = ss.replace(i,"")
print(ss)
ss = sorted(ss.split(),key=len,reverse=True)
print(ss)
max_length_word = ss[0]
max_length_word_index = 0
max_length = len(max_length_word)
for j in range(len(s)):
if s[j:j+max_length] == max_length_word:
max_length_word_index = j
return max_length_word,max_length_word_index
print("最长的单词是%s,索引位置是%d" %find_max_length_word(s))
20、返回序列中的最大数
>>> def find_max_num(seq):
... if not isinstance(seq,(list,tuple,str)):
... print("请传入序列!")
... return None
... max_num = 0.0
... if isinstance(seq,str):
... for i in seq:
... if float(i) > max_num:
... max_num = float(i)
... else:
... for i in seq:
... if i > max_num:
... max_num = i
... return max_num
...
>>> print(find_max_num([1,2,3,6,4,9,5]))
9
>>> print(find_max_num((1,2.8,3.2,1.6,4.9,5)))
5
>>> print(find_max_num("976475"))
9.0
>>> print(find_max_num(1236))
请传入序列!
None