零基础掌握Python入门到实战

   日期:2020-09-26     浏览:88    评论:0    
核心提示:python基础篇关于for循环的使用例题:创建一个数据集,包含1到10的随机整数,共计100个数,并统计每个数出现的次数。// 方法1import random //引入random模块 lst = [] //定义一个空列表d = dict() //定义一个空字典for i in range(100): //循环100次 n = random.randint(1,10) //每循环一次随机拿到1——10以内的任意一个数 if n in d : d[n]+

python基础篇

注:适合萌新学习python并且里面的内容会持续的更新!
说明:并非是最优代码,但程序完全正确!因为此时作者也处在学习阶段!

关于for循环

例题:创建一个数据集,包含1到10的随机整数,共计100个数,并统计每个数出现的次数。

// 方法1
import random //引入random模块
 lst = []    //定义一个空列表
d = dict() //定义一个空字典
for i in range(100): //循环100次
    n = random.randint(1,10) //每循环一次随机拿到1——10以内的任意一个数
    if n in d :
        d[n] + = 1  //如果这个数作为键在字典里,值加1
    else:
        d[n] = 1 //否则值等于1
print(d)
//方法2
import random 
lst = []
for i in range(100):
    n = random.randint(1,10)
    lst.append(n)
d={ }
for n in lst:
    if n in d:
         d[n] + = 1
    else:
         d[n] = 1

常用于for循环的函数

1. range()
2. zip()
3. enumerate( )
4. 列表解析

例题:求100以内能被三整除的数

lst = []
for i in range(100):
    if i % 3 == 0;
    lst.append(i)
print(lst)

用range方法实现两个列表的对应值相加

c = [12345]
d = [67891]
r = []
for i in range(len(c))://把列表中的每一个元素所对应的索引拿出来了
     r.append(c[i] + d[i])

用zip方法实现两个列表的对应值相加

 c = [12345]
 d = [67891]
r = []
for x,y in zip(c,d):
     r.append(x+y)
print(r)

enumerate()方法:枚举 返回索引值

>>>s = ['one','two','three']
>>>list(enumerate(s))
[(0, 'one'), (1, 'two'), (2, 'three')]//得到索引和值

列表解析
用途:定义一个空列表,向空列表中追加一些符合条件的元素时使用列表解析

用列表解析法求100以内能被三整除的数

>>>[i for i in range(100) if i % 3 == 0]

结果是:[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

>>>range(0, 100, 3)
>>>list(range(0, 100, 3))

例题 :字符串s=‘life is short You need python’。统计这个字符串中每个字母出现的次数。

s = 'life is short You need python'
lst = []   //定义一个空列表
d = dict() //定义一个空字典
for i in s: //循环获取s中的每个字母
   if i.isalpha(): //判断循环得到的是否是一个字符,是字符则执行后面的代码块 否则返回false
       if i in d : 
           d[i] + = 1  //'键'放在字典里并且'值'加1
       else:
           d[i] = 1 
print(d)

关于while循环

格式: while[condition]:
statements

a = 0
while a < 3:
    s = input("input your lang:")
    if s == 'python':
        print("your lang is {0}".format(s))
        break  //当代码执行到这里时,会跳出当前循环(此处跳出while 执行print("the end a:",a))
    else:
        a+=1
        print("a=",a)
print("the end a:",a)
a=11
while a > 0:
    a-=1;
    if a % 2 == 0:
        continue
        print(a)
    else:
        print(a)

用while循环做一个小游戏:
制作一个满足如下功能的猜数游戏:
1.计算机随机生成一个100以内的正整数;
2.用户通过键盘输入数字,猜测计算机所生成的随机数。
注意:对用户的输入次数不做限制。

import random
computer_name = random.randint(1,100) #表示从1——100以内随机取一个数
while True:   #表示一直循环,直到遇到结束标志
    user_name = input("请输入你要猜测的数字:")  #获得的是字符串类型
    if not user_name.isdigit():
        print("请输入1——100以内的整数" )
    elif int(user_name) <0 or int(user_name) >= 100:
        print("请输入1——100以内的整数")
    else:
        if int(user_name)==computer_name:
            print("you are win")
            break
        elif int(user_name)<computer_name:
            print("you are smaller")
        else :
            print("you are bigger")

      

函数和装饰器

函数的定义:def wrr(x,y,z):【def;函数名称;参数列表】
(此处缩进四个空格)do something return object【函数内语句块】
函数结束 返回值 return

例子:

def add(x,y):
    r = x +y 
    return r
c = add(2,3)
print("c的值为:",c)
 结果为:c=5  

参数收集

一个 ‘*’ 的作用

def fun(x,*args):
    print("x=",x)
    print("args=",args)
fun(1,2,3,4,5,6)

结果为:
x= 1
args= (2, 3, 4, 5, 6)

二个 ‘*’ 的作用

def bar(x,**kwargs):
    print("x=",x)
    print("args=",kwargs)
bar(1,a=2,b=3,c=4)

结果为:
x= 1
args= { 'a': 2, 'b': 3, 'c': 4}

参数收集的扩展:

def foo(*args,**kwargs):
    print("x=",args)
    print("args=",kwargs)
foo(1,2,3,a=9,b=7,c=6) 

结果为:
x= (1, 2, 3)
args= { 'a': 9, 'b': 7, 'c': 6}

函数的嵌套

例子:

def book(name):
    return "the name of my book is{0}".format(name)
def p_deco(func):   #函数的嵌套
        def wrapper(name):
            return "<p>{0}<p>".format(func(name))
        return wrapper
wrr = p_deco(book)
py_book = wrr(" python 学习")
print(py_book)

结果是:
<p>the name of my book is python 学习<p>

装饰器

def p_deco(func):  #函数的嵌套
        def wrapper(name):
            return "<p>{0}<p>".format(func(name))
        return wrapper
def div_deco(func):  #用到了函数的嵌套
    def wrapper(name):
        return "<div>{0}<div>".format(func(name))
    return wrapper

@div_deco  #装饰器
@p_deco    #装饰器
def book(name):  #p_deco(func)装饰了book(name)函数
    return "the name of my book is{0}".format(name)
  #此程序装饰器的功能就是下面注释的两行  
    #whr = p_deco(book)
    #py_book =whr(" python 学习")
py_book=book(" python 学习")
print(py_book)
结果是:
<div><p>the name of my book is python 学习<p><div>

练习

编写一个测试函数执行时间的装饰器函数

import time
def timing_func(func):#编写装饰器函数
    def wrapper():
        start = time.time()#记录开始时间
        func()   #执行这个函数
        stop = time.time()#记录结束时间
        return stop-start
    return wrapper
@timing_func  #装饰器
def test_list_append():
    lst=[]
    for i in range(1000000):  #运用for循环取值
        lst.append(i)#把每个数追加到列表中
@timing_func  #装饰器
def test_list_compre():
    [i for i in range(1000000)] #运用列表解析 取值
a=test_list_append()
b=test_list_compre()   
print("运行test_list_append方法所运行的时间",a)
print("运行test_list_compre方法所运行的时间",b)    

执行结果如下:

运行test_list_append方法所运行的时间 0.12466740608215332
运行test_list_compre方法所运行的时间 0.08578181266784668
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服