博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记(八)
阅读量:3934 次
发布时间:2019-05-23

本文共 3496 字,大约阅读时间需要 11 分钟。

可变  和  不可变类型

不可变:对象所指向的内存中的值改变,内存地址必须改变

不可变类型:int str float tuple

s1='abc'print(id(s1))s1='abcd'print(id(s1))'''23032012828002303205706800'''

可变:地址不变,对象所指向的内存中的值可以改变

可变类型:dict list 

list1=[1,2,3,4,5]print(list1,id(list1))list1.pop()print(list1,id(list1))#此处用的是函数,所以内存地址不变。pop是在原地址弹出元素list1=[1,2,3,4,5]print(list1,id(list1))list1=[1,2,3]print(list1,id(list1))#直接赋值还是会变,开辟了一个空间存放相应的数据'''[1, 2, 3, 4, 5] 1838036552832[1, 2, 3, 4] 1838036552832[1, 2, 3, 4, 5] 2131537366144[1, 2, 3] 2131537366272'''

集合

集合可变,冰冻集合不可变

set1 = {1,2,3,4,5}print(set1,id(set1))set1.discard(5)print(set1,id(set1))fset = frozenset(set1)print(fset,id(fset))fset=frozenset({3,6})print(fset,id(fset))'''{1, 2, 3, 4, 5} 2171726812768{1, 2, 3, 4} 2171726812768frozenset({1, 2, 3, 4}) 2171726811872frozenset({3, 6}) 2171726813440'''

浅拷贝与深拷贝?   什么情况下会开辟新内存地址存储数据

类型转换

str()  int()  list()  dict()  set()  tuple()

str--->int,list,set,tuple,dict,float    反过来也可以  int,list,set,tuple,dict,float--->str

list--->set(),tuple()  [(key,value),(key,value),...]形式的列表可以转成字典

tuple,set--->list

dict1 = {1:'a',2:'b'}print(list(dict1))'''[1, 2]'''

——————分割线——————

pycharm

site-packages:通过pip安装和管理的东西

创建一个新项目:File--->New Project--->选择位置

venv:虚拟环境

每个项目用到的库不一样,为了库与库之间不冲突(如:项目依赖的包的版本不一样),一个项目用一个单独的扩展第三方库(放在虚拟环境中)

刚开始学时用不到库,可以勾选Previously configured interpreter,节省磁盘空间

创建python文件

如上图,右键first项目--->new--->Python File--->命名--->回车,创建完成

调整字体大小

File--->Settings--->搜索font--->更改Size

更改文件名字

右键要修改名字的文件--->Refactor--->Rename

补:

File--->Settings--->Keymap可以设置快捷键

File--->Open/Open Recent 切换项目

pycharm常用快捷键

###Shift +enter 添加一行
###Ctrl + / 行注释

注释

1.单行注释   #

2.多行注释   

'''

'''

注释的作用

1.不让解释器执行注释的那句话

2.代码说明,辅助开发

###Tab / Shift + Tab 缩进、不缩进当前行
###Ctrl + D 复制选定的区域或行
###Ctrl + Home 第一行,Ctrl+End 最后一行
###ctrl+g 弹出一个框,输入要跳的行数

项目往往包括很多包,python package

有问题会报红线, Alt+Enter(回车)  快速提醒,给出红色波浪线报错解决办法

双击可以将代码全屏,再双击返回

当前项目依赖的解释器

点+号可以添加扩展包,默认显示最高版本,也可以选择指定版本号,点Install Package就会开始下载

-号就是uninstall

——————分割线——————

科研就是寻找极限

函数:     解决重复使用的代码,将其封装在函数里

比喻:超市的火锅底料,不用自己去一步步做,直接用现成调好的

作用:函数可以增强代码的模块化和提高代码的重复利用率,减少代码冗余

导入函数时写在最前面

定义函数:

格式:

def 函数名(参数,参数,...):

      函数体(重复的代码)

注意:1、必须使用关键字def  2、函数体注意缩进  3、函数名紧跟小括号(必须有),参数可以没有

函数名命名规则类似于变量

不符合PEP8编码规范会有黄色波浪线

tip:  自动格式化快捷键  Ctrl+Alt+L

       光标放到波浪线上,会提示快捷键

import randomdef generation_random():    for i in range(10):        ran = random.randint(1, 20)        print(ran)print(generation_random)  # 打印函数名# 调用:函数名()    找到并执行函数体内容  括号表示调用print('-'*20)generation_random()print('-'*20)generation_random()'''
函数 函数名 在 内存地址'''#内存地址和generation_random绑定

debug历史:虫子在屏幕上挡住了错误的地方,所以是去除虫子

调试窗口:

#求随机数的个数,产生的个数未定import randomdef generation_random(num):  #形参,形式上的参数,用于占位,函数体内部和外界的通道    for i in range(num):        ran = random.randint(1,20)        print(ran)print(generation_random)#generation_random()  #实参,具体的值#TypeError: generation_random() missing 1 required positional argument: 'num'generation_random(5)generation_random(8)

tip:单击代码行左侧设置断点

练习1:求加法的函数

def add(a,b):  #两个形参    result = a+b    print('和:',result)#调用add(2,3)  #两个实参'''和: 5'''

练习2:定义一个登录函数,参数是:username,password

            函数体:
            判断参数传过来的username,password是否正确,如果正确则登录成功否则打印登录失败

#函数的定义def login(username,password):    uname='admin'    pwd='123'    #数据库保存的注册过的用户名和密码    for i in range(3):        if username==uname and password==pwd:            print('登录成功!')            break        else:            print('登录失败!')            username = input('请输入用户名')            password = input('请输入密码')    else:        print('账户锁定')#函数的调用username = input('请输入用户名')password = input('请输入密码')login(username,password)

 

转载地址:http://izegn.baihongyu.com/

你可能感兴趣的文章
Lesson2.2 & 2.3 Maya command reference & quick help
查看>>
lesson 2.4 - Converting MEL Commands to Python
查看>>
Lesson3.2 variables
查看>>
3.4.2 - Operators & 3.4.3 division and truncation
查看>>
3.6 - Maya Commands: setAttr
查看>>
3.7.1 - Strings
查看>>
3.7.4 - Indexing and Slicing Strings
查看>>
3.7.5 - Modifying Strings
查看>>
3.7.6 - String Methods
查看>>
3.8 - Using the Print Function
查看>>
3.9.1 - Lists in Python
查看>>
3.9.2 - Lists - Adding and Removing Objects
查看>>
3.9.3 - Sorting Lists
查看>>
3.10 - Maya Commands: ls
查看>>
3.11 - Dictionaries in Python
查看>>
3.12 - Tuples in Python
查看>>
4.4 - For Loops
查看>>
4.2.2 - Logical and/or Operators
查看>>
Lesson 4 Part 2 Softmax Regression
查看>>
文章中运用到的数学公式
查看>>