1.算法:解决问题的一系列步骤。
2.【FizzBuzz问题】编写一个程序,打印从1到100之间的数字,碰到3 的倍数,打印Fizz,碰到5的倍数,打印Buzz,如果是3和5共同的倍数,打印FizzBuzz。
def fizz_buzz():
for i in range(1,101):
if i%3==0 and i %5==0:
print("FizzBuzz")
elif i%3==0:
print("Fizz")
elif i%5==0:
print("Buzz")
else:
print(i)
fizz_buzz()
运行结果
3.搜索算法之顺序算法,首先将变量found设置为False,用来记录是否找到了目标数字,然后遍历列表中的每个数字,检查是否为目标数字。
#Sequential Search
def ss(number_list,n):
found=False
for i in number_list:
if i ==n:
found==True
break
return found
numbers=range(0,100)
s1=ss(numbers,2)
print(s1)
s2=ss(numbers,202)
print(s2)
4.回文词:逆序和正序拼写得出的单词都是相同的词,写一个算法检查单词是否回文词,只需要将单词中所有的字符逆序,并检查逆序后的单词是否与原本的 单词相同即可实现。
def palindrome(word):
word=word.lower()
return word[::-1]==word
print(palindrome(("Mother")))
print(palindrome(("Mon")))
运行结果
5.变位符:通过重新组合另一个单词的字母所组成的单词,iceman就是cinema的一个变位符,因此通过将两个单词的字母按照顺序进行排序,检查二者是否一致,就可以判断他们是否为变位符。
def anagram(w1,w2):
w1=w1.lower()
w2=w2.lower()
return sorted(w1)==sorted(w2)
print(anagram("iceman","cinema"))
print(anagram("leaf","tree"))
运行结果:
6.计算字母频数。该算法将遍历字符串中的每个字符,用字典记录每个字母出现的次数次数。
def count_characters(string):
count_dict={}
for c in string:
if c in count_dict:
count_dict[c]+=1
else:
count_dict[c]=1
print(count_dict)
count_characters("Dynasty")
运行结果:
7.递归recursion
这点笔者自己没掌握好,等自己理解掌握了,专门写出来