python中y和n_python入门

第一次接触到python这个概念还是在2013年在锐捷网络做实习生的时候,当时因为项目测试需要,有提出想用python进行自动化测试,但是由于项目的实际需要,后面最终没有用,也就搁置了python的学习,自己载了python的教程,也是看的零零碎碎的,最近一直在思考自己应该做什么,迷茫,好像很多语言很多工具需要自己去学习,但又精力不够,最新的想法是与其去和那些培训或者门槛低的人去抢android的饭碗,不如在自己C++编程的基础上,学习少数人会去学习的语言,就像java语言一样,很多人都说会用java语言编程,但是真正能深入理解其机制和原理的,估计不多,多的是用框架去编写项目。

python:简洁,优雅,快捷

简洁到变量可以不用定义直接用,可以调用很多函数,方便移植,对数据的处理速度快,但是耗内存

我学习python的时候,感觉这就像是在看小学生的作业,当然只是刚学习到了基础部分,还没有进阶到高阶,加了个python开发群,去群里问了有没什么好的IDE,热心的人说pycharm不错,载下来发现这就是传说中的大蟒蛇,果然给力。

整理了下python的入门知识。

1.变量和数据类型

1.1 数据类型

在Python中,能够直接处理的数据类型有以下几种:

一、整数

Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样。

二、浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是相等的。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

三、字符串

字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。

四、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。

布尔值可以用and、or和not运算。

五、空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

对比与C语言,可以发现很多的不同,最大的不同就是更加抽象化和口语化

1.2 变量

在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,

a = 123 # a是整数

print a

a = 'imooc' # a变为字符串

print a

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量

a = "mooc"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活。

1.3 注释

单行注释用“#”

C语言用/**/或//

2.list和Tuple类型

2.1 list:列表,有序的集合,由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据,用[元素]。

顺序访问list:需要特别注意的是,索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。

倒序访问list:最后一个元素的索引是-1,以此类推。

类似于数组的访问

添加元素:用函数append(i),如:L.append("hello"),用函数insert(i,h),如:L.insert(0,"hello")在L的第一个位置添加“hello”元素,其他元素自动移位,比数组的添加简单多了。

删除元素:用函数pop(i),删除第i个元素,当用pop()时表示删除最后一个元素,其他元素自动移位。

替换元素:直接针对位置替换,如:L(2)="HEllo",将原本第三个位置的元素替换为“HEllo”

2.2 Tuple:有序的列表,我们称为“元组”,tuple一旦创建完毕,就不能修改,创建tuple和创建list唯一不同之处是用( 元素)替代了[ ]。

但是当Tuple里面的元素是可变的集合,比如list时,list对应的元素可以进行修改,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的。

3.条件判断和循环

3.1 if :冒号表示对应的代码块

要缩进

elif  :

要缩进

else:

要缩进

3.2 for name in L  :

要缩进,不需要什么++之类的,比C简单很多

3.3 while x

add code要缩进

x+=1或x=x+1

3.4 退出循环

break:后续循环  continue:当次循环

4.Dict和SET

4.1 dict:key-value,类似于map,用{元素},并且key不能重复。

4.1.1 当访问value的时候,要避免 KeyError 发生,有两个办法:

一是先判断一下 key 是否存在,用 in 操作符:

if 'Paul' in d:

print d['Paul']

如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。

二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:print d.get('Bart')

4.1.2 dict特点:1.查找速度快,无论数据量多少,当然是以消耗内存为代价的,list正好相反,占用内存小,但是查找速度慢。2. 存储的key-value序对是没有顺序的,所以可能每次打印出来的dict都不一样。3.作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key

4.1.3 添加和更新元素:直接采用赋值语句

4.1.4 遍历:for循环,如:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

for key in d:

print key

4.2 set:持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

set里面的元素大小写敏感,而且访问时可以用:in 进行判断元素是否存在。

Bart是该班的同学吗?

>>> 'Bart' in s

True

bart是该班的同学吗?

>>> 'bart' in s

False

4.2.1 set的特点:

set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。

最后,set存储的元素也是没有顺序的。

4.2.2 遍历:for name in set:进行遍历

4.2.3 更新:采用add()直接添加,判断后再用remove()删除

5.函数

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return语句返回。如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

5.1 定义默认参数:由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面,请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'其中world设置为默认参数。

5.2 定义可变参数:

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

def fn(*args):

print args

可变参数的名字前面有个 *号,我们可以传入0个、1个或多个参数给可变参数。

Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 。例如:求任意数的平均值

6.对list进行切片:L[0:10],L[::2],L[0:-1],L[4:50:5]

7.迭代:Python中,迭代永远是取出元素本身,而非元素的索引。

7.1 list迭代索引:使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:

['Adam', 'Lisa', 'Bart', 'Paul']

变成了类似:

[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

enumerate()函数和zip函数的功能类似,只是zip可以指定索引,而enumerate()函数默认从索引0开始。

zip()函数可以把两个 list 变成一个 list:

>>> zip([10, 20, 30], ['A', 'B', 'C'])

[(10, 'A'), (20, 'B'), (30, 'C')]

7.2 dict迭代获取values:

用dict.values()或dict.itervalues()可以获取dict的所有values值。

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。

7.3 dict迭代key和values:

for key, value in d.items():

... print key, ':', value

用函数items()或iteritems()

8.列表生成式:列表生成式则可以用一行语句代替循环,如:

[x * x for x in range(1, 11) if x % 2 == 0]条件过滤

[m + n for m in 'ABC' for n in '123'多重循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,train_test_split函数可以用于将数据集划分为训练集和测试集。该函数的引用可以在不同的代码片段找到。 引用,使用cross_validation模块的train_test_split函数将train_data和train_target数据集划分为训练集(X_train和y_train)和测试集(X_test和y_test),并将测试集的比例设置为0.4。 引用,使用sklearn.model_selection模块的train_test_split函数将X和y数据集划分为训练集(X_train和y_train)和测试集(X_test和y_test),并将测试集的比例设置为0.33。 引用,使用train_test_split函数将X_d和y数据集划分为训练集(X_train和y_train)和测试集(X_test和y_test),并将测试集的比例设置为默认值0.25。 你可以根据需要选择使用这些引用的任何一个来划分你的数据集。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [train_test_split用法](https://blog.csdn.net/MRxjh/article/details/78481578)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解](https://blog.csdn.net/weixin_48964486/article/details/122866347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值