笨方法学Python
1.注意input()
,用户输入的数据会转换为字符串形式输出。
2.
①for...in
- 输出的是"数组" / "列表"中的数据,而不是js
中的索引号
②列表中可包含多种数据类型 - 注意%r
③注意range
- range(m,n)
- [m,n)
- 左闭右开
④还有 append
(追加)这个神奇的东西
- 注意先要定义一个列表 -
elements = []
3.序数 & 基数
- 序数(ordinal number)表示事物的顺序,从1开始(有序)。
- 基数(cardinal number)表示索引号,从0开始,随机选取。
4.exit(0) 和 exit(1) 的区别?
- exit(0):意味着是安全退出,无任何错误。
- exit(1):意味着代码存在一些问题,从而导致的退出。
5.debug
①调试的方式:使用print
将各个想要检查的关键环节将关键变量打印出来,进行检查。
②让程序分段运行,写一点,运行一点,再修改一点。
6.
Keywords(关键字):and / del / from / not / while / as / elif / global / or / with / assert / else / if / pass / yield / break / except/ import / print / class / exec / in / raise / continue / finally / is / return / def / for / lambda / try
Data type(数据类型):True / False / None / strings / numbers /floats / lists
字符串转移序列(Escape Sequences):\\ 、\' 、 \" 、 \a 、 \b 、 \f 、 \n 、 \r 、 \t 、 \v
\a :bell(响铃符)
\b:backspace(退格符)
\f:form feed(进纸符)
\r:carriage return(回车符)
\t:horizontal tab(水平制表符)
\v:vertical tab(垂直制表符)
\ooo:Character with octal value ooo(值为八进制ooo的字符)
\xhh:Character with hex value hh(值为十六进制数hh的字符)
字符串格式化(string formats):%d | %i | %o | %u | %x | %X | %e | %E | %f | %F | %g | %G | %c | %r | %s | %%
%o:转成无符号八进制数
%u:转成无符号十进制
%x / %X:转成无符号十六进制数,(x/X代表转换后的十六进制字符的大小写)
%e / %E:转成科学计数法
%f / %F:转成浮点数
%g / %G:%e和%f / %E和%F的简写
%%:输出%
%c:转成字符,(ASCII码,或者长度为1的字符串)
操作符号: + 、 - 、 * 、 / 、% 、 < 、 > 、 <= 、 >= 、== 、 != 、() 、[] 、{} 、 , 、 : 、. 、 = 、+= 、-= 、*= 、/= 、%= 、**(乘方)、 //(取整除 - 返回商的整数部分) 、<>(不等于,同!=) 、@(待定) 、 ; (分号)、//=(取整除赋值运算符) 、**=(幂赋值运算符)
7.阅读代码时,标记的流程:
①函数以及每个函数的功能。
②每个变量的初始赋值。
③特别当心在程序的各个部分中多次出现的变量。
④任何不包含else
的if
语句,判断它们正确与否?
⑤任何可能没有结束点的while
循环。
⑥记下看不懂的代码。
8.
mystuff.append('hello')
//其实是这样的
append(mystuff,'hello')
9.stuff1
里面有3个姓名,但是我需要5个姓名,stuff2
中也有3个姓名,如何将stuff2
中的补足给stuff1
?
①有个小问题:列表中的数据经过pop()之后,才会自动更新迭代掉。
解决:在上面写个
stuff2_list = stuff2.split(' ')
10.注意-1
是最后一个喔~
11.如何将一个列表转成字符串?
12.列表的方括号用法
13.Python
中的字典dictionary(dict / hash)
类似于JavaScript
中的对象(object)。
①字典(对象)和列表(数组)的差别?
②可用del
删除的字典中的"键值对"
14.类的风格
①类名应该使用camel case
(驼峰式大小写)
②函数名一个使用underscore format
(下划线隔词)
③不要对全局变量或者来自模组的变量进行重定义或者赋值,让这些东西自顾自就行了
④好好写注释(一语中的),弄清楚为什么要这么做?why???
15.鱼和泥鳅
①鱼是一个"类",它并不是一个真正的东西,而是一个概括性的词汇,用来描述具有相同特征(属性)的实例。有鳍?有鰾?住在水中?
②泥鳅也是一个"类",这个"类"也有它特定的属性。细长条?无鳞片?爱钻泥巴?
③这个时候家庭煮夫过来了,他跟河蟹专家说:"非也非也,你看的是泥鳅,我看到的是"小方",而且我要把"小方"和剁椒配一起做一道小菜"。于是,就有一个叫做"小方的"泥鳅的"实例(instance)
"(注意喔,泥鳅也是鱼的一个实例),并且对它进行了加工,这样它就是一个"对象(Object)
"
16.区分Class和Object的两个小技巧:
①是什么?鱼和泥鳅的关系
②有什么?泥鳅和鳃的关系
1.命令行模式和Python
交互模式
①命令行模式:
②>>>
是Python
交互环境
2.直接运行py
文件的方法?
①Mac
和Linux
环境下是可以的,方法是在.py
文件的第一行加上一个特殊的注释;
#!/usr/bin/env python3
print('Hello,Gerg')
②然后,通过命令给hello.py
以执行权限
$ chmod a+x hello.py
3.print()
会依次打印每个字符串,遇到逗号,
会输出一个空格:
4.当你输入name = input()
并按下回车后,Python
交互式命令行就在等待你的输入。这时,你就可以输入任意字符,然后按回车完成输入。
- 有了输入,用户才能告诉计算机程序所需的信息。
- 有了输出,程序运行后才能告诉用户任务的结果。
5.任何一种编程语言都有自己的一套语法,编译器或解释器负责把符合语法的程序代码转换成CPU
能够执行的机器码,然后执行。
6.缩进的坏处:"复制 - 粘贴"
功能失效了。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。
7.Python
中的数据类型:整数、浮点数、字符串、布尔值、空值
整数:(包括十六进制:0x前缀和0-9,a-f表示)
浮点数:之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的
字符串:单引号和双引号只是一种表示方法,不是字符串的一部分,因此
'abc'
只有a
,b
,c
三个字符。如果字符串中有许多字符都需要转义,就需要加很多
\
,为了简化,Python允许用r' '
表示'内部的字符串默认不转义。
- 如果字符串内部有很多换行,用
\n
写在一行里不好阅读,为了简化,
-
r' '
和'''...'''
可结合
布尔值:
True
和False
,and
(与运算)、or
(或运算)、not
(非运算)空值
None
:这玩意和0
还是有区别的,因为0
是有意义的,而None
是一个特殊的空值。
8.什么是动态语言?变量本身的数据类型不固定的语言,如:Python
,JavaScript
9.变量在计算机内存中的表示?
10.变量a
赋值给另一个变量b
11.在Python
中,通常用全部大写的变量名来表示常量。
12.小结
①Python
支持多种数据类型,在计算机内部,可以把任何数据看成一个"对象",而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量关联起来。
②Python
的整数没有大小限制。
③Python
的浮点数也没有大小限制,但是超出一定范围就直接表示为inf
(无限大)。