python入门基础:数据类型+循环语句+函数+递归

目录


1.python3数据类型介绍

2.python3中数字

3.python3的字符串

4.python3 的列表

5.python3 的元组

6.python3 的字典

7.python3 的集合

8.while循环

9.for循环

10.函数以及参数

11.递归

12.匿名函数lambda





1.Python3有六个标准的数据类型

Numbers(数字)

String(字符串)

List(列表)

Tuple(元组)

Dictionary(字典)

set(集合)



2.number 数字类型:

int(有符号整型)

long(长整型[也可以代表八进制和十六进制])

float(浮点型)

complex(复数)


2.1 数字类型的数学函数


2.2 数字类型:随机数函数

此表格为random模块中的函数

import random

2.3math 计算包

math — 数学函数 | 《Python 3 标准库实例教程》 | 高品质的 Python 开发者社区


好难🤯 暴风哭泣

单独开一个==



3.string 字符串


字符串或串(String)是由数字、字母、下划线组成的一串字符。

‘’   “” 表示

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

不包含第五个字符!!!!!!!!

[1:5] 只要4个


3.1 字符串和运算符


3.2 字符串:转义字符

\n 换行

我们可以对字符串进行换行,事实上,python还为我们提供了多行换行, 使用'''...'''或者"""..."""都可以进行多行换行,...代表的是提示符

ps:... 是在终端使用

"""这种在jupyter notebook中 就可以实现换行


字符串前加r,使得字符串中的\用作普通字符


3.3 字符串与unicode的区别

pass 

留个坑


3.4 字符串的更改 

字符串不能更改里面的内容。

只能通过.replace()更改,然后赋值给另一个变量


3.5 创建字符串时,* 可以顶替missing letter


3.6 字符串的strip()用法

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

str.strip([chars])



4.列表list

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

4.1 创建列表

4.1.1 通过变量创建


4.1.2 通过字符串split


4.1.3 通过list()



4.2 给列表中添加元素

append( ) :只能在最后加元素进去,item类型可以是任意的

extend():加多个元素,也是在最后加 只接受列表参数,并把列表中的item分解,然后添加到原有的列表

如果指定在第几个index加入,用insert()

4.3 删除列表中的元素

del删除。它按item的索引值或切片进行删除

del a_list[0]   //删除列表的第一个值

del a_list[:2]   //删除列表的前两个值。(为什么不是前三个呢?因为python的列表切片,包含前一个索引,但不包括后一个索引)


remove方法删除。它不按item索引,而是按照item的值进行删除:

a_list.remove('a')  //把a从列表中删除

pop方法删除。它按item索引值进行删除,同时返回被删除的item值;若不指定索引,默认删除最后一个item:

a_list.pop(1)  //删除列表的第二个值,并返回被删除的值

a_list.pop()   //删除列表的最后一个值,并返回被删除的值


4.5 重新赋值

对指定索引使用assignment符号进行赋值

a_list = ['a','b','c','hello']:

a_list[1] = 'bbb'

4.6 检索列表的值

四种方式:in、not in、count、index,后两种方式是列表的方法。

示例列表:a_list = ['a','b','c','hello']:


判断值是否在列表中,in操作符:

'a' in a_list  //判断值a是否在列表中,并返回True或False


判断值是否不在列表,not in操作符:

'a' not in a_list   //判断a是否不在列表中,并返回True或False


统计指定值在列表中出现的次数,count方法:

a_list.count('a')  //返回a在列表中的出现的次数


查看指定值在列表中的位置,index方法:

a_list.index('a')   //返回a在列表中每一次出现的位置,默认搜索整个列表

a_list.index('a',0,3)  //返回a在指定切片内第一次出现的位置

https://blog.csdn.net/wudiyi815/article/details/7775549

4.7列表的method


4.




5.元组 tuple

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

A tuple is a collection which is ordered and unchangeable. In Python tuples are written with round brackets.

jiaocheng


所以 元组的添加是这样的:

要有逗号


5.1 元组只可以只读,所以要查询元组,用for loop语句。


5.2 You can access tuple items by referring to the index number, inside square bracket

也可以用index 查询元组

5.3 检查某个字符串或别的在不在元组里,用in

5.3 求元组的长度

len()

5.4 与字符串同样,元组也是不可变对象 所以不能直接修改他们的值

如果需要修改,直接在同一个元组上更新是不可行的,但是可以通过拷贝现有的元组片段构造一个新的元组的方式解决。

通过分片的方法让元组拆分成两部分,然后再使用连接操作符(+)合并成一个新元组,最后将原来的变量名(temp)指向连接好的新元组。



5.5  两个元组之间 + 可以组成新的元组

5.6 元组的删除 用del



6.字典 dictionary

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。


6.1 查找字典


()得到key

[ ]得到value     

.get("key") 也能得到value 


6.2给字典里添加item

直接添加就行了

集合要用add 或者update()

Adding an item to the dictionary is done by using a new index key and assigning a value to it:



6.3 字典 多种删除方法

pop( )  括号中写入指定的key

del() 括号中写入指定的key 

del 还能直接删除整个字典

clear() 清除字典中的内容,保留结构

popitem( ) 只删除最新的那一列字典


6.4 创建字典 dict( )



ps: 为什么用= 比用冒号要好??????


6.5 复制另一个字典

copy( )

dict( )


6.6 字典的method





7.集合 set

A set is a collection which is unordered and unindexed. In Python sets are written with curly brackets.

集合是用{ }表示的

Sets are unordered, so the items will appear in a random order.

7.1 集合是无序的,没有index

7.2 给集合添加元素 用 add()

7.3给集合添加多个元素,用update()


7.4 集合的删除 remove() 和 discard()

区别: 如果删除一个不在该集合中的元素,remove()会报错。discard()不会



7.5 pop()

pop()也能删除,但是只能删除最后一个元素

但是集合是无序的,你也不知道删的是哪个


7.6 删除整个set

clear()只能把集合中清空

del()是全部删除,直接报错的那种


7.7 把元组转成集合

set()

注意是圆括号,不是大括号


7.8 集合中的method


i




8. while循环

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立


在i=3的时候跳过该次循环

8.1 while... else

在 python 中,while … else 在循环条件为 false 时执行 else 语句块:




9.for 循环语句

9.1 break语句



在for语句同样,continue 用来跳过该次循环


9.2 for...    else 语句

The else keyword in a for loop specifies a block of code to be executed when the loop is finished

else后面执行当循环结束之后的语句



10.函数function

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。


10.1 Parameters 参数

Information can be passed to functions as parameter.

Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma.


10.2 Default Parameter Value 默认参数

The following example shows how to use a default parameter value.


10.3 Passing a List as a Parameter

You can send any data types of parameter to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.


10.4 可更改(mutable)与不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

Python3 函数 | 菜鸟教程

10.5 不定长参数


你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。


加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。


如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量


加了两个星号 ** 的参数会以字典的形式导入。

i



11. Recursion 递归

Python also accepts function recursion, which means a defined function can call itself.

Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.

The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.

In this example, tri_recursion() is a function that we have defined to call itself ("recurse"). We use the k variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).

To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.





11.1 应用场景

递归算法一般用于解决三类问题:

(1)数据的定义是按递归定义的。(比如Fibonacci函数)

(2)问题解法按递归算法实现。(回溯)

(3)数据的结构形式是按递归定义的。(比如树的遍历,图的搜索) 


11.2 默认的Python有一个可用的递归深度的限制,以避免耗尽计算机中的内存。默认是1000。 


11.3 递归的优缺点

优点:

递归使代码看起来更加整洁、优雅

可以用递归将复杂任务分解成更简单的子问题

使用递归比使用一些嵌套迭代更容易

缺点:

递归的逻辑很难调试、跟进

递归算法解题的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。

Python递归算法详解





12.匿名函数 lambda


12.1 lambda表达式

lambda arguments expression





13.字符编码

python3中的字符编码 - 简书

14.numpy入门

numpy入门到放弃 - 简书

15.pandas入门

pandas 从入门到放弃 - 简书

16.利用pandas进行数据分析

python 利用pandas进行数据分析 - 简书

17.可视化

python中的可视化 - 简书

18.python中的io

python中的io - 简书

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容