list循环删除下标会出错
L = [1,1,1,2,3,4,5]#list是根据下标来取值
#下标0,1,2,3,4,5,6 循环后下标错位 输出的结果是【1,2,4】,把1也取到了
#l2 = [1,1,1,2,3,4,5]
l2 = l
for i in l2:#如果L循环的时候回导致下标错位输出结果错误
if i%2!=0:
l.remove(i)#删除列表中的元素
print(l)

浅拷贝与深拷贝

import copy
L =[1,2,3,4,5,6]
L2=L #浅拷贝,就是直接赋值,内存地址不变
L2 = copy.deepcopy(L)#深拷贝,重新赋予新的内存地址
L2 = L.copy()#浅拷贝
print(id(L))
print(id(L2))

非空即真

name = input('请输入名称:').strip()#strip()去空格
#name='abc'
#a=''
#l=[]
#d={}
#t=()
#b=None 什么都没有也是为空
name = int(name)
if name:
print('输入正确')
else:
print('name不能为空')

什么是函数:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

def functionname( parameters ):  #函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
"函数_文档字符串"#数的第一行语句可以选择性地使用文档字符串—用于存放函数说明函。
function_suite
return [expression] #选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

默认值函数

def my():
pass #什么也不干先占位,如果不写就会报错
def my(a,b): #位置参数,调用时必须填写两个参数
return a def my(name,sex):
#位置参数,必填
#函数体
return name def db_connect(ip,port=3306): #默认值参数
print(ip,port)
db_connect('118.24.3.40',3307)
db_connect('118.24.3.40')

参数

def send_sms(*args): #可变参数
for p in args:
print(p)
send_sms()#不是必传的
send_sms(1213,121,3123) #不限制传的个数,都存在元祖

递归

就是自己调用自己
def test1():
num = int(input('please enter a number:'))
if num%2==0:#判断输入的数字是不是偶数
return True #如果是偶数的话,程序就退出了,返回true
print('不是偶数请重新输入!')
return test1()#如果不是偶数的话继续调用自己,输入值
print(test1())#调用test 最多调用999次
count = 0
def say():
global count
count+=1
print('say')
print(count)
say()
say()

return的作用

def my2():
for i in range(50):
return i
#return 有2个作用
#1、结束函数,只要函数里面遇到return,函数立即结束运行
#2、返回函数处理的结果

小数的类型

判断小数的函数用法
s为字符串
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符、\t、\n、\r
def check_float(s):
'''
这个函数的作用就是判断传入的字符串是否是合法的小数
:param s: 传入一个字符串
:return: True/false
'''
s = str(s)
if s.count('.')==1:
s_split = s.split('.')
left,right = s_split
if left.isdigit() and right.isdigit():
return True
elif left.startswith('-') and left[1:].isdigit() \
and right.isdigit():
return True
return False
print(check_float(1.3))
print(check_float(-1.3))
print(check_float('01.3'))
print(check_float('-1.3'))
print(check_float('-a.3'))
print(check_float('a.3'))
print(check_float('1.3a3'))
print(check_float('---.3a3'))

全局变量

name = 'aaaa'#全局变量,在什么函数都可以使用
names = []
def get_name():
names.append('hahaha')
name = 'bbbbb' #局部变量,只能在函数内使用
print('1、函数里面的name:',name)
def get_name2():
global name #要修改全局变量就要先申明
print('2、get_name2:',name)
get_name2()
get_name()
print(names)
print('3、函数外面的name:',name)

集合

   # 1、天生可以去重
# 2、集合是无序
l=[1,1,2,2,3,3]
res = set(l)#去重
l = list(res)
print(res)
#{1, 2, 3}
jihe = set() #定义一个空的集合 xingneng =['bb','aa','ccc','oooo']
zdh = ['bb','aa','opq','cc','sds']
xingneng = set(xingneng)
zdh = set(zdh)
res1 = xingneng.intersection(zdh)#取交集
res2 = xingneng & zdh #取交集
res3 = xingneng.union(zdh) #取并集,把2个集合合并到一起,然后去重
res4 = xingneng | zdh #取并集
res5 = xingneng.difference(zdh) #取差集,在a里面有,在b里面没有的
res6 = xingneng - zdh #取差集
res7 = xingneng.symmetric_difference(zdh)#对称差集,两个里不重复的值
res8 = xingneng ^ zdh #对称差集

random模块

import random
print(random.randint(100000,999999)) #随机取一个整数
print(random.uniform(1,900))#取一个小数
stus = ['xiaojun','hailong','yangfan','tanailing','yangyue','cc']
print(random.choice('abcdefg'))#随机取一个元素
print(random.sample(stus,2)) #随机取N个元素
pw = ''.join(random.sample("VWXYZ_.123456780!@()+=-><:",random.randint(2, 5)))#随机生成8到16位的字符

  

python 学习三的更多相关文章

  1. Python学习三---序列、列表、元组

    一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...

  2. python学习 (三十三) Modules

    1: 方法一: 导入整个模块 import math class ModulesDemo(): def builtin_modules(self): print(math.sqrt()) m = Mo ...

  3. Python学习三天计划-1

    一.第一个Python程序 配置好环境变量后 打开CMD(命令提示符)程序,输入Python并回车 然后,在里面输入代码回车即可立即执行 Python解释器的作用是 将Python代码翻译成计算机认识 ...

  4. Python学习三天计划-3

    面向对象 一.类的定义 1.类定义 class是关键字,表示要定义类了 类的属性,即定义在类中的变量(成员变量) 类的行为,即定义在类中的函数(成员方法) 2.对象 创建类对象的语法: class S ...

  5. Python学习(三) 输出任意格式的字符串以及字符串的切片

    在Python中想要输出一句话,如下 a='hello world' print a //打印出的是hello world print 'hello \n world' //打印出的是 //hello ...

  6. Python学习(三):迭代器、生成器、装饰器、递归、算法、正则

    1.迭代器 迭代器是访问集合的一种方式,迭代对象从集合的第一个元素开始访问,直到元素被访问结束,迭代器只能往前不能后退,最大的优点是不要求事先准备好整个迭代过程中的元素,这个特点使得它特别适合用于遍历 ...

  7. Python学习三|列表、字典、元组、集合的特点以及类的一些定义

    此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...

  8. python学习 (三十一) python中的class

    1 python的类:   Python类都继承自object. __init__: 构造函数,如果不写,有一个默认的. __init__: 这个构造函数只能有一个,Python中不能有多个构造函数. ...

  9. python学习三(数据保存到文件)

    以写模式打开文件:需要指定写模式,如下所示 data = open('data.out','w') 如果文件已经存在,则会清空它现有的所有内容.要追加一个文件,需要使用访问模式a,会追加到下一行. 例 ...

随机推荐

  1. CSS超出省略号样式

    overflow:hidden;text-overflow:ellipsis;-wekit-line-clamp:3;display:-webkit-box;-webkit-box-orient:ve ...

  2. javaweb中上传视频,并且播放,用上传视频信息为例

    1.上传视频信息的jsp页面uploadVideo.jsp <body background="image/bk_hero.jpg"><div id=" ...

  3. 重建程序员能力(2)-如何使asp.net mvc应用增加js和其他功能

    1. 在Visual Studio的解决方案资源管理器,找到项目右键展开右键菜单后选择 管理NuGet程序包. 2.在打开的页面中,可以按需要选择Jquery.BootStrap等页面展现框架. 有工 ...

  4. 1.3 使命的完成者Command

    为什么要从Command说起? 因为Command才是Cesium源码中真正意义的绘制细胞.

  5. vue环境搭建及项目介绍

    搭建开发环境(搭建开发环境前必须安装node.js): 1.安装vue脚手架工具 $ npm install -g vue-cli 2.创建项目(注意项目名字不要有大写字母) vue init < ...

  6. 逐个使用C++11新特性

    C++11 auto & decltype auto:根据变量初始值来推导变量类型,并用右值初始化变量. decltype:从表达式推导出类型,并将变量定义为该类型,但不用表达式的值初始化该变 ...

  7. vscode指定扩展安装位置

    默认情况下,(Windows)vscode的安装路径为C:\Users\用户名\.vscode\extensions. 如果想要自定义扩展的安装路径,无法直接在vscode中修改.但是,在启动vsco ...

  8. WordCount结对编程

    合作者:201631062602,201631062114 代码地址:https://gitee.com/Changyu-Guo/pairing_project 作业链接:https://www.cn ...

  9. C#中++i与i++的区别

    日常编程中经常用到++i与i++,知识点虽然很小,但有时候会犯迷糊,在这里小小的记录一下. ++i 即前递增,顾名思义也就是先自增后传值: 举个栗子 int i=5; int j=++i; 此时i的值 ...

  10. Linux通过NFS实现文件共享

    在项目生产环境我们经常需要实现文件共享,传统的常见方案是通过NFS,实现服务器之间共享某一块磁盘,通过网络传输将分散的文件集中存储在一块指定的共享磁盘,实现基本的文件共享.实现这种方案,分服务端和客户 ...