python基础篇之python六种内置对象类型

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

关于for循环

点击此处,获取海量Python学习资料!

例题:创建一个数据集,包含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  //如果这个数作为键在字典里,值加1else: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] + = 1else: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 = [1,2,3,4,5]
d = [6,7,8,9,1]
r = []
for i in range(len(c))://把列表中的每一个元素所对应的索引拿出来了r.append(c[i] + d[i])

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

 c = [1,2,3,4,5]d = [6,7,8,9,1]
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(): //判断循环得到的是否是一个字符,是字符则执行后面的代码块 否则返回falseif i in d : d[i] + = 1  //'键'放在字典里并且'值'加1else: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+=1print("a=",a)
print("the end a:",a)a=11
while a > 0:a-=1;if a % 2 == 0:continueprint(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")breakelif 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>

例题:用函数嵌套的方法写一个关于物理公式G=mg的例子

def w(m , g):return m * g
def func(g):def mm(m):return m * g return mm
c = func(10)
G = c(100)
print(G)

装饰器 (@+方法名)

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 模块

import time
def timing_func(func):#编写装饰器函数def wrapper():start = time.time()#记录开始时间func()   #执行这个函数stop = time.time()#记录结束时间return stop-startreturn 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

关于作用域的问题

>>>a=1    #是一个全局变量
>>> def foo():global  a    #声明下面用到的a是一个全局变量a = a+1print(a)
>>> a=foo()
2>>>def foo():a=1def bar():nonlocal  a  #代表这个a不是bar函数里面的aa=a+1   #第一个a是局部变量aprint(a)bar()
>>> foo()
2

特殊函数(常用的三个)

 1. lambda2.  map3. filter

1. lambda函数

格式:lambda +若干个参数:表达式 (参数之间用逗号隔开)

>>>def add(x):x+=3return x
>>>add(2)
5

用lambda函数实现同样的功能:

>>>r=lambda x: x+3
>>>r(2)
5

2. map函数:格式:map(函数,迭代器)功能:把迭代器中的每一个元素依次取出来后传给函数对象,然后完成函数的计算要注意的是:返回的是map object类型 若要看返回值的话需要转化一下

>>>r = map(lambda x: x+3,range(10))
>>>list(r)
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

3. filterfilter过滤器格式:filter(函数,迭代器)

假如用filter函数实现从-5到5之间取出大于0的数

>>>n=range(-5,5)
>>>r=filter(lambda x: x>0,n)
>>>list(r)
[1, 2, 3, 4]

猜数游戏python_零基础掌握Python入门到实战相关推荐

  1. 《零基础掌握 Python 入门到实战》笔记

    Python 零基础掌握 Python 入门到实战笔记 文章目录 Python 内置对象类型 基本交互语句 常用内置函数 整数与浮点数 基本数学运算 高级数学运算 字符串 序列 索引 切片 成员函数 ...

  2. 学习笔记(3):零基础掌握 Python 入门到实战-一个圆点的何去何从(二)

    立即学习:https://edu.csdn.net/course/play/26676/338772?utm_source=blogtoedu python中可以进行四舍五入的内置函数:round(欲 ...

  3. 学习笔记(2):零基础掌握 Python 入门到实战-一个圆点的何去何从(一)

    立即学习:https://edu.csdn.net/course/play/26676/338762?utm_source=blogtoedu 对象 :属性+方法 内置对象类型:整数.浮点数 字符串 ...

  4. 学习笔记(17):零基础掌握 Python 入门到实战-重复利用,事半功倍

    立即学习:https://edu.csdn.net/course/play/26676/338764?utm_source=blogtoedu 位置参数 默认值放后面 def change_upper ...

  5. 学习笔记(14):零基础掌握 Python 入门到实战-重复利用,事半功倍

    立即学习:https://edu.csdn.net/course/play/26676/338764?utm_source=blogtoedu def add(x,y): r=x+y return r ...

  6. 学习笔记(1):零基础掌握 Python 入门到实战-用Python操作SQLite数据库

    立即学习:https://edu.csdn.net/course/play/26676/402880?utm_source=blogtoedu sqlite这一节用的软件是什么

  7. python零基础入门教程视频下载-零基础学Python入门教程,视频资源下载

    课程名称 零基础学Python入门教程,视频资源下载 课程目录 第一章 :Python介绍和安装 01.Python语言的特点 02.Python的发展历史与版本 03.Python的安装 第二章 : ...

  8. 零基础go还是python_零基础学习Python的经验之谈

    因为薪资比较高的,所以很多人选择当一名程序员,但是关于程序的语言有很多,Python就是其中一个,那么在零基础学习或者参加Python培训时,有什么经验呢?今天小编就来给大家讲一下吧! 1.一定要弄清 ...

  9. 零基础学python全彩版实战答案-零基础学Python(全彩版)

    商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...

最新文章

  1. c# tcp备忘及networkstream.length此流不支持查找解决
  2. Java并发包--阻塞队列(BlockingQueue)
  3. var obj = eval(result); 解析json
  4. Unsupported major.minor version 52.0解决办法
  5. java方法的重载 编程题,java面试编程题:重载方法
  6. mysql中的编号怎么自动加_MySQL中实现ID编号自动增加的方法
  7. JDK1.8中文帮助文档下载
  8. mysql回显_SQL回显
  9. java文件保险柜,java
  10. 事物的开始和结束命令分别是什么_5. 详解Redis中的事务
  11. 视觉SLAM | OKVIS
  12. 云大使推广的返利规则是什么
  13. 脱水马铃薯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 【金融项目】尚融宝项目(四)
  15. SpringBoot系列:Spring Boot集成定时任务Quartz,java百度云短信发送
  16. vim下Project插件用法, 管理项目
  17. 漏洞评估-CVSS3
  18. Nginx反向代理与正向代理配置
  19. 【ECS】云服务的基本操作:实例管理
  20. 东南大学计算机科学与工程学院研究生,东南大学计算机科学与工程学院硕导:宋爱波...

热门文章

  1. TSQL--查找连续登陆用户
  2. Google的云计算引擎与持久化存储磁盘PD
  3. OCS2007R2升级LyncSrv2013 PART1:基础准备
  4. 16-pymysql模块的使用
  5. DevOps知识地图实践指南
  6. 常用功能-删除功能测试点
  7. 用线性代数理解 Normal Equation
  8. 使用hibernate可以优化的地方
  9. extjs4动态生成多表头
  10. C++ 内嵌汇编 实现 加法操作