python入门足迹

来源:互联网 发布:mac 查看局域网所有ip 编辑:程序博客网 时间:2024/06/05 06:31

阅读参考:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432523496782e0946b0f454549c0888d05959b99860f000

一、如何运行一个python小程序

绝对不能用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误。

python编辑器:python自带编辑器,notepad++,subline

todo:python帮助文档:

python内建函数文档:

https://docs.python.org/3/library/functions.html#abs

python命令行模式下输入help(xxx),xxx可以是函数名,内部数据结构名,查看相关函数使用方法。如help(dict),help(set) help(list)


todo:python各种解释器:后面再关注

todo:task: C:\Users\w00373289\python\learning.py实现研究,网页会调用本地python服务器。

同时安装2.7,3.4两个版本,指定不同的环境变量可运行不同的版本。


环境运行常用命令:

进入运行环境:python

退出运行环境:exit()

输出:print('xxx')//打印表达式,字符串,变量

print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。

输入:input(‘input your info:’)

input()可以让你显示一个字符串来提示用户,返回一个变量

执行.py脚本:python file.py

在Python交互环境中定义函数时,注意Python会出现...的提示。函数定义结束后需要按两次回车重新回到>>>提示符下,比如在输入函数时。

二、基础知识

采用缩进方式,当语句以冒号:结尾时,缩进的语句视为代码块,始终坚持使用4个空格的缩进。在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

#开头的语句是注释。

1、数据类型

  • 整数 浮点数  
  • Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647

    Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。


  • 字符串:不可变对象

           如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识

           \'  \"  \\  \n

           Python还允许用r''表示''内部的字符串默认不转义

           Python允许用'''...'''的格式表示多行内容

          replace()产生新的数组

  • 布尔值:字面值true,false 操作:and or not
  • 空值:none
  • 列表:定义list:a=[xxx,xxx], a[1],a[-2],len(listObj)  ,append(element), pop(),insert(index,element),pop(index),sort()
  • 元组tuple:不可变,t=(xxx,xxx),下标访问,元组中为什么不可以使用boolean直接量?
  • 字典:dict定义和js对象一样,一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。dict内部存放的顺序和key放入的顺序是没有关系的。

dict = {'name':'wangbi','age':'23'}

正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。


获取属性:
要避免key不存在的错误,有两种办法:
一是通过in判断key是否存在:'name' in dict 
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:


  • set
        set可以看成数学意义上的无序和无重复元素的集合
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。重复元素在set中自动被过滤。
>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
通过remove(key)方法可以删除元素
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
>>> s1 | s2

2、变量

动态语言:在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量

  a = 'ABC'
  根据内存和指针的概念可知,Python解释器干了两件事情:

    在内存中创建了一个'ABC'的字符串;

    在内存中创建了一个名为a的变量,并把它指向'ABC'。

PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,无机制性常量。

精确除/

地板除 // 

余数:%


3、条件与循环

  • 条件

age = 20if age >= 6:    print('teenager')elif age >= 18:    print('adult')else:    print('kid'
elif 是else if简写

if x:    print('True')

其他类型与布尔转换:只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

字符串转int:input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情。


  • 循环

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

 list(range(5)):Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数。

names = ['Michael', 'Bob', 'Tracy']for name in names:    print(name)

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

sum = 0n = 99while n > 0:    sum = sum + n    n = n - 2print(sum)
循环中可以使用break ,continue


ASCII码占用一个字节

Unicode占用4个字节

UTF-8可变长度的unicode编码 1~6个字节


  内建函数
  数据类型转换函数,比如int()函数可以把其他数据类型转换为整数,bool() float() str()

  函数定义:

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值return语句返回。

def my_abs(x):    if x >= 0:        return x    else:        return -x

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

return None可以简写为return



在Python中,一个.py文件就称之为一个模块(Module)。
最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。
使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。
一个abc.py的文件就是一个名字叫abc的模块。顶层包名,比如mycompany文件夹下放abc.py文件,abc.py模块的名字就变成了mycompany.abc。每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码。
自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。



原创粉丝点击