python 学习三
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 学习三的更多相关文章
- Python学习三---序列、列表、元组
一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...
- python学习 (三十三) Modules
1: 方法一: 导入整个模块 import math class ModulesDemo(): def builtin_modules(self): print(math.sqrt()) m = Mo ...
- Python学习三天计划-1
一.第一个Python程序 配置好环境变量后 打开CMD(命令提示符)程序,输入Python并回车 然后,在里面输入代码回车即可立即执行 Python解释器的作用是 将Python代码翻译成计算机认识 ...
- Python学习三天计划-3
面向对象 一.类的定义 1.类定义 class是关键字,表示要定义类了 类的属性,即定义在类中的变量(成员变量) 类的行为,即定义在类中的函数(成员方法) 2.对象 创建类对象的语法: class S ...
- Python学习(三) 输出任意格式的字符串以及字符串的切片
在Python中想要输出一句话,如下 a='hello world' print a //打印出的是hello world print 'hello \n world' //打印出的是 //hello ...
- Python学习(三):迭代器、生成器、装饰器、递归、算法、正则
1.迭代器 迭代器是访问集合的一种方式,迭代对象从集合的第一个元素开始访问,直到元素被访问结束,迭代器只能往前不能后退,最大的优点是不要求事先准备好整个迭代过程中的元素,这个特点使得它特别适合用于遍历 ...
- Python学习三|列表、字典、元组、集合的特点以及类的一些定义
此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...
- python学习 (三十一) python中的class
1 python的类: Python类都继承自object. __init__: 构造函数,如果不写,有一个默认的. __init__: 这个构造函数只能有一个,Python中不能有多个构造函数. ...
- python学习三(数据保存到文件)
以写模式打开文件:需要指定写模式,如下所示 data = open('data.out','w') 如果文件已经存在,则会清空它现有的所有内容.要追加一个文件,需要使用访问模式a,会追加到下一行. 例 ...
随机推荐
- 盘点 Python 中的那些冷知识(二)
上一篇文章分享了 Python中的那些冷知识,地址在这里 盘点 Python 中的那些冷知识(一) 今天将接着分享!! 06. 默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参 ...
- 【带着canvas去流浪(4)】绘制散点图
目录 一. 任务说明 二. 重点提示 三. 示例代码 四.散点hover交互效果的实现 4.1 基本算法 4.2 参考代码 4.3 Demo中的小问题 示例代码托管在:http://www.githu ...
- Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是通过 Flutter 官网的 Example 来讲解. 案例 接着上一次,这一次我们让原生 ...
- 数据库艰难求生之路(基础:创建数据库表格)part1
创建表格 1.创建表格之identity create table TableName( id ,), col_1 ), col_2 ) ) 这是一个简单的表格创建,identity这个是指在创建表 ...
- Javascript中双等号(==)隐性转换机制
在Javascript中判断相等关系有双等号(==)和三等号(===)两种.其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否完全相等). 因此有几个常识知识: 1.对于strin ...
- Docker+SpringBoot远程发布
Docker+SpringBoot远程发布 发布成功后启动: docker run -di --name demo1.1 -p 8080:8085 demo:1.0 docker run 命令大全:h ...
- PHP遍历文件夹下所有文件
不论是面试还是正常工作需要都会用到遍历文件夹下的所有文件,今天就记录一下笔记.废话不多说直接上代码: <?php /** * 遍历当前文件夹展示所有的文件和目录 */ function dirL ...
- Java 适配器(Adapter)模式
一.什么是适配器模式: 把一个接口变成另外一个接口,使得原本因接口不匹配无法一起工作的两个类一起工作. 二.适配器模式的分类和结构: 适配器模式有类的适配器模式和对象的适配器模式两种. 1.类的适配器 ...
- 【设计模式】原型模式 Pototype Pattern
前面讲了创建一个对象实例的方法单例模式Singleton Pattern, 创造多个产品的工厂模式(简单工厂模式 Simple Factory Pattern, 工厂方法模式 FactoryMothe ...
- Oracle 常用Sql 语句
Oracle数据库常常被用作项目开发的数据库之一:有时隔段时间没使用就会忘记一些常用的sql语法,所以我们有必要记录下常用的sql 语句,当我们需要时可以快速找到并运用. 1 创建表空间.创建用户及授 ...