码迷,mamicode.com
首页 > 编程语言 > 详细

python开发学习一

时间:2018-03-27 18:44:16      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:byte   upd   pca   存在   分组   下载   布尔值   第一个字符   oba   

一.python的发展

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 

python是一门动态解释性的强类型定义语言。

因此在编程中,类型的转换是需要特别注意的。而由于不会在初始化变量的时候就确定其类型,而是由其赋予的值决定。因此要注意同名变量的情况以及变量定义的范围,防止变量与自己想要的不一致。

当然,pyc的文件存在,python在解释器执行前会编译的

二.python的安装

最好是python3.x

windows下安装:

1、下载安装包

    https://www.python.org/downloads/

2、安装

    默认安装路径:C:\python27

3、配置环境变量

    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

    如:原来的值;C:\python27,切记前面有分号

cmd--》python--》显示信息--》成功

linux,mac自带

三.基础知识之变量

用来存储数据

变量定义的规则:
      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘,
      • ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘

建议使用字母_字母的格式,最好有意义。

变量的数据类型

1.数字

int(整型)
  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
      先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html 
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
 
2、布尔值
  真或假
  1 或 0
 
3、字符串
  "字符串"(没有字符与字符串的区别,可用""或‘‘都行)
  注意‘+’的使用,会开辟新的内存
  "string is %s,%s"%(str1,str2)字符串的格式化输出字符串是 %s;整数 %d;浮点数%f

在字符,中文,以及数据传输等方面,字符编码会影响。python3中会默认以unicode的格式。注意使用encode()与decode()方法进行编码的转换

4.列表(list)

[‘a‘,1,b] or list([1,2,3])

5.元组(tuple)

不可变的列表

6.字典(dict)

{‘name‘:‘aa‘,‘c‘:[1.2,3]} or dict({‘name‘:‘aa‘,‘c‘:[1.2,3]})

注释 : #单行

    """多行 """或‘‘‘多行‘‘‘(注意,变量 = """文档内容"""作为字符串)

四.基本的运算

+,-,*,/,%,and,or,not,<>,!=,//,in,not in,。。。

if 判断条件:

  注意缩进

  执行代码

elif 判断条件:

  xxxxx

else:

  xxxxx

while 条件:

  do something

for i in iter:

  looping...

注意循环的结束条件,break与continue的使用及作用范围

 

五.列表的操作

定义:persons = [‘a‘,12]

根据下标获取列表数据:persons[0],倒着取persons[-1]

切片:

  >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
  >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
  [‘Tenglan‘, ‘Eric‘, ‘Rain‘]
  >>> names[1:-1] #取下标1至-1的值,不包括-1
  [‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘]
  >>> names[0:3]
  [‘Alex‘, ‘Tenglan‘, ‘Eric‘]
  >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
  [‘Alex‘, ‘Tenglan‘, ‘Eric‘]
  >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
  [‘Rain‘, ‘Tom‘, ‘Amy‘]
  >>> names[3:-1] #这样-1就不会被包含了
  [‘Rain‘, ‘Tom‘]
  >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
  [‘Alex‘, ‘Eric‘, ‘Tom‘]
  >>> names[::2] #和上句效果一样
  [‘Alex‘, ‘Eric‘, ‘Tom‘]

添加:persons.append(添加),添加到末尾

插入:persons.insert(位置,内容),指定位置

修改:persons[index] = 内容,直接修改

删除:

  del persons删除列表,

  del persons[index]删除指定位置元素

  persons.remove(元素)删除指定的值

  persons.pop()删除末尾

拓展:

  >>> names
  [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘]
  >>> b = [1,2,3]
  >>> names.extend(b)
  >>> names
  [‘Alex‘, ‘Tenglan‘, ‘Rain‘, ‘Tom‘, ‘Amy‘, 1, 2, 3]

浅拷贝:copy()

统计元素出现次数:list.count(元素)

其他:sort()排序,reverse()翻转,index(元素)获得第一元素出线的下标

元组的使用count,与index

六.字符串(不可被修改)

name.capitalize()  首字母大写
name.casefold()   大写全部变小写
name.center(50,"-")  输出 ‘---------------------Alex Li----------------------‘
name.count(‘lex‘) 统计 lex出现次数
name.encode()  将字符串编码成bytes格式
name.endswith("Li")  判断字符串是否以 Li结尾
 "Alex\tLi".expandtabs(10) 输出‘Alex      Li‘, 将\t转换成多长的空格
 name.find(‘A‘)  查找A,找到返回其索引, 找不到返回-1

format :
    >>> msg = "my name is {}, and age is {}"
    >>> msg.format("alex",22)
    ‘my name is alex, and age is 22‘
    >>> msg = "my name is {1}, and age is {0}"
    >>> msg.format("alex",22)
    ‘my name is 22, and age is alex‘
    >>> msg = "my name is {name}, and age is {age}"
    >>> msg.format(age=22,name="ale")
    ‘my name is ale, and age is 22‘
format_map
    >>> msg.format_map({‘name‘:‘alex‘,‘age‘:22})
    ‘my name is alex, and age is 22‘

msg.index(‘a‘)  返回a所在字符串的索引
‘9aA‘.isalnum()   True

‘9‘.isdigit() 是否整数
name.isnumeric  
name.isprintable
name.isspace
name.istitle
name.isupper
 "|".join([‘alex‘,‘jack‘,‘rain‘])
‘alex|jack|rain‘

maketrans
    >>> intab = "aeiou"  #This is the string having actual characters.
    >>> outtab = "12345" #This is the string having corresponding mapping character
    >>> trantab = str.maketrans(intab, outtab)
    >>>
    >>> str = "this is string example....wow!!!"
    >>> str.translate(trantab)
    ‘th3s 3s str3ng 2x1mpl2....w4w!!!‘

 msg.partition(‘is‘)   输出 (‘my name ‘, ‘is‘, ‘ {name}, and age is {age}‘)

 >>> "alex li, chinese name is lijie".replace("li","LI",1)
     ‘alex LI, chinese name is lijie‘

 msg.swapcase 大小写互换
 >>> msg.zfill(40)
‘00000my name is {name}, and age is {age}‘

>>> n4.ljust(40,"-")
‘Hello 2orld-----------------------------‘
>>> n4.rjust(40,"-")
‘-----------------------------Hello 2orld‘

>>> b="ddefdsdff_哈哈"
>>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
True

七.字典

key-value,无序,key值唯一

 增加/修改:dic[key] = value

删除:dict.remove(key),del dict[key],随机删除dict.removeitem()

查找:key in dict 查找key是否在字典中

    dict.get(key)获得value,如果没有key,返回None

    dict[key]如果key不存在,会抛出异常

其他:

#values
>>> info.values()
dict_values([‘LongZe Luola‘, ‘XiaoZe Maliya‘])

#keys
>>> info.keys()
dict_keys([‘stu1102‘, ‘stu1103‘])

#setdefault
>>> info.setdefault("stu1106","Alex")
‘Alex‘
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}
>>> info.setdefault("stu1102","龙泽萝拉")
‘LongZe Luola‘
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}

#update
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{‘stu1102‘: ‘龙泽萝拉‘, 1: 2, 3: 4, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}

#items
info.items()
dict_items([(‘stu1102‘, ‘龙泽萝拉‘), (1, 2), (3, 4), (‘stu1103‘, ‘XiaoZe Maliya‘), (‘stu1106‘, ‘Alex‘)])


#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],‘testd‘)
{1: ‘testd‘, 2: ‘testd‘, 3: ‘testd‘}

字典的循环:

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)

 

八.集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

s = set([3,5,9,10])      #创建一个数值集合  
 
t = set("Hello")         #创建一个唯一字符的集合  

a = t | s          # t 和 s的并集  
 
b = t & s          # t 和 s的交集  
 
c = t – s          # 求差集(项在t中,但不在s中)  
 
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
 
   
 
基本操作:  
 
t.add(‘x‘)            # 添加一项  
 
使用remove()可以删除一项:  
 t.remove(‘H‘) 
 

len(s) 
set 的长度  
 
x in s  
测试 x 是否是 s 的成员  
 
x not in s  
测试 x 是否不是 s 的成员  
 
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
 
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
 
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
 
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
 
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
 
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
 
s.copy()  
返回 set “s”的一个浅复制

 ----大量参考了

    http://www.cnblogs.com/alex3714/articles/5465198.html

    http://www.cnblogs.com/alex3714/articles/5717620.html   

 

python开发学习一

标签:byte   upd   pca   存在   分组   下载   布尔值   第一个字符   oba   

原文地址:https://www.cnblogs.com/chanpu123/p/8657162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!