写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

  1. def detection(p):
  2. intcount = 0
  3. strcount = 0
  4. othercount = 0
  5. spacecount=0
  6. for i in p:
  7. if i.isalpha():
  8. strcount+=1
  9. elif i.isdigit():
  10. intcount+=1
  11. elif i.isspace():
  12. spacecount+=1
  13. else :
  14. othercount+=1
  15. return{"数字":intcount,"字母":strcount,"空格":spacecount,"其它":othercount}
  16. a=input("Please enter a string")
  17. zz=detection(a)
  18. print(zz)

写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
1、

  1.     def detection(p):
  2. b=0
  3. a="q"
  4. if type(p)==type(a):
  5. for i in p:
  6. b+=1
  7. else:
  8. for i in p:
  9. for k in i:
  10. b+=1
  11. if b>5:
  12. a="长度大于5"
  13. return a
  14. else :
  15. a = "长度不大于5"
  16. return a
  17.  
  18. a=["qwe",""]
  19. qq=detection(a)
  20. print(qq)

2、

  1. def detection(p):
  2. if len(p)>5:
  3. return True
  4. return False
  5.  
  6. a=["qwe","","","","",""]
  7. qq=detection(a)
  8. # print(len(a))
  9. print(qq)

写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
1、

  1. def detection(p):
  2. b=0
  3. a="q"
  4. if type(p)==type(a):
  5. for i in p:
  6. if i.isspace():
  7. return True
  8.  
  9. else:
  10. for i in p:
  11. for k in i:
  12. if k.isspace():
  13. return True
  14. return False
  15.  
  16. a=["qwe",""]
  17. qq=detection(a)
  18. print(qq)

写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
1、

  1. def detection(p):
  2. if len(p)>2:
  3. p=p[0:2]
  4. return p
  5.  
  6. a=["qwe","","","","",""]
  7. qq=detection(a)
  8. # print(len(a))
  9. print(qq)

2、

  1. def detection(p):
  2. if len(p)>2:
  3. del p[2:] #删除2以后的元素
  4. return p
  5.  
  6. dic=[11,22,33,44]
  7. qq=detection(dic)
  8. # print(len(a))
  9. print(qq)

写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

  1. def detection(p):
  2. a=[]
  3. for k,i in enumerate(p):
  4. if k%2!=0:
  5. a.append(i)
  6. return a
  7.  
  8. a=("qwe","","","","","")
  9. qq=detection(a)
  10. print(qq)

---------------一种错误写法-----------------------------------

  1. def f1(arg)
  2. for i in range(len(rag)):
  3. if i%2==1
  4. pass
  5. else:
  6. del arg[i]#这种循环再次遇到lenarg)时他的长度改变所以再次删除时就会
  7. #根据新的排序删除,就会出错,所以想要使用len(arg)这个方式
  8. #可以新建一个列表,在if后进行添加:arg.append(arg[i])就可以
  9. #最后在函数结尾添加一个返回值
  10. li=[11,22,33,44]
  11. f1(li)
  12. print(li)

写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
1、

  1. def detection(p):
  2. for i in p.keys():
  3. if len(p[i])>2:
  4. p[i]=p[i][0:2]
  5. return p
  6.  
  7. dic = {"k1": "v1v1", "k2": [11,22,33,44]}
  8. qq=detection(dic)
  9. # print(len(a))
  10. print(qq)

2、 #创建新的变量

  1. def f2(arg):
  2. ret={}
  3. for key,values in arg.items():#items类似于 enumerate
  4. if len(values)>2:
  5. ret[key]=values[0:2]
  6. else:
  7. ret[key]=values
  8. return ret
  9.  
  10. a={"qwe":"","qqq":"","ppp":""}
  11. r=f2(a)
  12. print(r)

3、#对原来的变量进行改变

  1. def f2(arg):
  2. for key,values in arg.items():
  3. if len(values)>2:
  4. arg[key]=values[0:2]
  5. else:
  6. arg[key]=values
  7.  
  8. a={"qwe":"","qqq":"","ppp":""}
  9. f2(a)
  10. print(a)

写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者

这个练习结果在http://www.cnblogs.com/liudi2017/articles/7383998.html

总结

  1.   print()#输出变量
  2.   name="babab"
  3.   age=10
  4.   job="stu" #多个变量引用
  5.   print("my name is %s,my job is %s,age id %d"%(name,job,age))
  6.   #单个变量引用
  7.   print("you %s zzz"%name)

判断一个数据的类型
temp="aaa"
isinstance(temp,str) #str为数据类型,temp为变量

在python中列表、字典、set类型数据的在传给函数传参数时,传的是引用(地址?,就像在C语言里数组给函数传参数时,传的是地址),
所以在函数中形参的改变会造成实参的改变。如果函数中形参指向另一个变量这这个形参就改指向另一个变量的地址,再对形参进行改变时,不会影响实参,因为它不再指向实参

  1. def aa(p):
  2. p=p.pop()
  3.  
  4. z={11,22,33}
  5. aa(z)
  6. print(z)

结果:{11, 22}

  1. def aa(p):
  2. p.append(123)
  3. z=[11,22,33]
  4. aa(z)
  5. print(z)

结果:[11, 22, 33, 123]

  1. def aa(p):
  2. p={22,11,22}#这个情况下,在函数中p的地址有重新指向 #{22,11,22},所以在下面输出时没有改变
  3. z={11,22,33} #个人认为 是对的
  4. aa(z)
  5. print(z)

#结果:{33, 11, 22}

别的语言可能有两种选择,但是python默认就一种,就是传引用的参数

特别添加
range

  1. >>>range(10) # 从 0 开始到 10
  2. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  3. >>> range(1, 11) # 从 1 开始到 11
  4. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  5. >>> range(0, 30, 5) # 步长为 5
  6. [0, 5, 10, 15, 20, 25]
  7. >>> range(0, 10, 3) # 步长为 3
  8. [0, 3, 6, 9]
  9. >>> range(0, -10, -1) # 负数
  10. [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
  11. >>> range(0)
  12. []
  13. >>> range(1, 0)
  14. []

以下是 range 在 for 中的使用,循环出runoob 的每个字母:

  1. >>>x = 'runoob'
  2. >>> for i in range(len(x)) :
  3. ... print(x[i])
  4. ...
  5. r
  6. u
  7. n
  8. o
  9. o
  10. b
  11. >>>

循环输出索引

  1. x = 'runoob'
  2. for i in range(len(x)) :
  3. print(i)
  4.  
  5. 0
  6. 1
  7. 2
  8. 3
  9. 4
  10. 5
  1. a[11,22,33]
  2. b=a[0:2]

#这里的b所指的切片在内存里是重新创建的,所以a指向的单单是新建的地址

python继续函数-练习(2017-8-3)的更多相关文章

  1. Python和SQL Server 2017的强大功能

    Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...

  2. yum安装的时候报错,关于python的函数库

    我在执行yum -y install nc命令的时候出现如下报错 There was a problem importing one of the Python modulesrequired to ...

  3. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

  4. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  5. python split()函数

    Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...

  6. Python数学函数

    1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...

  7. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  8. Python之函数与变量

    本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...

  9. Python基础-函数篇

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派-- ...

  10. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

随机推荐

  1. Linux xclock打不开时钟终端

    一般执行该操作的都是在安装oracle数据库或其他应用时,需要测试是否可以正常弹层执行的: 网络关于这个的描述和处理大片片的,但是符合自己实际情况的,还是需要直接去确认: 两步处理: 第一步: 使用r ...

  2. March 13 2017 Week 11 Monday

    A warm smile is the universal language of kindness. 温暖的笑容是善意的通用语. Face comes from the heart. Just sm ...

  3. oozie调用java实例------shell action

    Oozie提供了一个方便的方式来运行任何命令.这可能是Unix命令,Perl或Python脚本,甚至java程序都可以通过Unix shell调用.shell命令运行在任意的Hadoop集群节点上,并 ...

  4. vim编辑下几个退出保存的命令

    :w 将数据写入硬盘 :w! 若文件属性为“只读”时,强制写入该文件.不过需要注意,这个是在你的权限可以改变的情况下才能成立 :q 离开vim :q! 修改过文件,又不想保存 :wq 保存后离开 :w ...

  5. 【[SCOI2010]生成字符串】

    \(n=m\)时候经典的卡特兰 那\(n!=m\)呢,还是按照卡特兰的方式来推 首先总情况数就是\(\binom{n+m}{n}\),在\(n+m\)个里选择\(n\)个\(1\) 显然有不合法的情况 ...

  6. idea 使用maven构建项目时,target bytecode version经常自动变化

    解决方法:在工程的pom.xml中添加 <build> <plugins> <plugin> <groupId>org.apache.maven.plu ...

  7. CF449C Jzzhu and Apples

    嘟嘟嘟 这道题正解是怎么对的其实我也不清楚,总之靠感性理解吧. 首先当然要把1到n / 2的素数都筛出来,因为两两能配对的数一定都是这些素数的倍数.这也就说明对于(n / 2, n]的素数,他们一定不 ...

  8. POJ 2195 Going Home 【二分图最小权值匹配】

    传送门:http://poj.org/problem?id=2195 Going Home Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  9. ACM-ICPC 2018 徐州赛区网络预赛 A.Hard to prepare 【规律递推】

    任意门:https://nanti.jisuanke.com/t/31453 A.Hard to prepare After Incident, a feast is usually held in ...

  10. 使用strtus2框架的json插件来完成ajax操作

    ------------------------------------------------------------------------------jsp------------------- ...