人生苦短,我学python
下面就通过几种比较有趣的方法去学python
1、猜数字游戏
'''
猜数字游戏,随机1-10个数字,如果猜对则给出正确,如果没有猜对则给出错误,给用户9次机会
最终结果要求用户一次都猜不对
即1、2、3、4、5、6、7、8、9、10共有10个数字,9次都猜错,最后给出正确的数字
思路:
可以先拿到用户错过的数字,我可以i随机猜一个数字,去和用户猜过的数字做对比,如果这个循环的数字
没有在用户猜过的数字,那么这个数字就是我们需要的数字
'''
import random
# 定义一个列表,用来存储yoghurt猜过的数字
lst=[]
i = 0
while i<9:
number = int(input('please input a number betewwn 1 and 10:'))
lst.append(number)
print('sorry,you are wrong!!!')
i +=1
while True:
# number_x bettween 1 and 10
number_x = random.rangint(1,10)
if number_x in lst:
continue
else:
break
print('the right number is',number_x)
输出如下:
2、找出100以内的质数
from time import *
start =time()
i = 2
while i <= 100:
flag = 1
j = 2
while j < i:
if i%j == 0:
flag =0
j +=1
if flag:
print(i,end='\t')
i +=1
end = time()
print()
print('the program runs for',end-start,'second')
输出如下:
3、创建集合
'''
不可变类型:
int、float、string
可变类型
lsit、tuple
# 不可变对象在内存中保存了3个数据
id (标识)
type(类型)
value(值)
# 集合的创建方法
s=set([1,2,3])
'''
def fn(a):
a[0]=5
print('a=',a)
c = [1,2,3]
fn(c.copy())
print('c=',c)
输出如下:
4、求任意数的和
'''
def fn(*nums): # 求任意数的和
result = 0
for n in nums:
result +=n
print(result)
fn(1,2,3,4)
'''
'''
def fn():
return 100
r=fn()
print(r)
'''
'''
def fn():
def fn2():
print('python')
return fn2
r =fn()
print(r)
# 在函数中,return后面的代码都不会执行,return一旦执行函数自动结束
'''
help(print)
输出如下:
5、计算任意数阶乘
def factorial(n): # 创建一个函数求任意数的阶乘
result = 1
for i in range (1,n+1):
result *=i
return result
print(factorial(10))
输出如下:
6、计算一个数的任意次幂
'''
def exponentiation(n,i): # 创建一个函数,来为任意数做任意次幂的运算
# n为底数,i为指数
# 极限条件,指数为1
if i==1:
return n
# 递归条件
return n*exponentiation(n,i-1)
print(exponentiation(2,4))
'''
def exponentiation(n,i):
return n **i
print (exponentiation(2,4))
输出如下:
7、判断回文字
def palindrome(s):
# 创建一个函数,用来检查任意的字符串是否为回文字符串,如果是返回Ture,如果不是返回False
# 极限条件,如果字符串长度小于2,则这个字符串是回文串
if len(s)<2:
return True
elif s[0] !=s[-1]:
return False
# 递归条件
return palindrome(s[1:-1])
print(palindrome('python'))
输出如下:
8、匿名函数
result = lambda a,b:a+b
print(result(10,20))
def fn(a,b): # lambda 匿名函数
return a+b
print(fn(10,20))
l=[1,2,3,4,5,6,7,8,9,10]
tri=lambda i:i%3==0
r =filter(tri,l)
print(list(r))
# lambda匿名函数俗称语法糖,可以减少代码量和优化程序,减少内存消耗
输出如下:
9、map()函数
l=[1,2,3,4,5,6,7,8,9,10]
# map()函数,可以迭代对象中的所有元素做指定操作,然后将其添加到一个新的队形返回
r=map(lambda i:i+1,l)
print(list(r))
输出如下:
10、了解一下break和continue的作用
i = 0
while i < 6:
i += 1
if i == 2:
continue
print(i)
else:
print('hello')
# break用来立即退出循环语句
i = 0
while i<6:
i += 1
if i == 2:
break
print(i)
else:
print('hello')
输出如下: