首页 > 编程语言 > 详细

python--第一天

时间:2015-12-10 13:27:43      阅读:302      评论:0      收藏:0      [点我收藏+]

python入门

1 第一个python代码:

      在linux上创建第一个.py脚本

#!/usr/bin/env python
#-*- coding:utf-8 -*-

print "Hello,World"

      执行代码:

python hellp.py

2 捕获参数:

    捕获参数,并存入到集合

print sys.argv

3 模块导入:

import hello

4 python编译:

    经过编译 成字节码文件 .pyc文件,反编译成 .py
    如果.pyc 和 .py 内容相同,则.pyc 优先级高,否则,先查找.py,再重新编译生成 .pyc 文件

5.变量:

   声明变量:

name = "Hello,World"

变量命名规则:

1)变量名只能以 数字、字母、下划线组成

2)第一个字符只能为字母、下划线;不能为数字

3)不要使用内置变量名

name1 = "test1"
name1 = name2

修改 name1 = "123"

name2 的值会跟着变吗?

答案是:不变

原因很简单:变量赋值时,会在内存中申请一块内存指针空间,将test1 赋值给 name1,相当于开辟了一块内存指针空间来存放 字符串test1,同时将 name2 = name1,相当于将 name2也同样指向这块内存指针空间,如果这个时候将字符串 “123”赋值给 name1,就相当于重新在内存中开辟一块内存指针来存储字符串 “123”,而name2 指针还是第原来的内存指针空间,所以name2的值并不会随着name1的改变而变化。

字符串特性:一旦修改,重新创建

以下是分配两块地址池的:

id1 = 7
id2 = 7

id(id1),id(id2) 指针地址一样,同一块内存指针池(看起来一样,是内部进行优化的,相当于在内部循环了一遍,当循环了一遍之后,发现有一个id1也是这个地址,于是也将id2指向这个地址,实际上是开辟两块指针空间的)

如果缓冲池过大,就会新开辟一块空间,缓冲池就会将多的扔掉

id1 = 700
id2 = 700 

id(id1),id(id2) 指针地址不一样

6 流程控制:

user_name = raw_input("please enter Your name:")
if user_name == "Allen":
    print "one!"
elif user_name == "yyh":
    print "Two!"
elif user_name == "ali":
    print "Three!"
else:
    print "Invalid User!"

7.数据类型,分为两部分:

1)、单值

a.数字 : 整型、长整型、浮点、复数 -

b.布尔值: 真或假 、1 或 0 -

c.字符串: “hello wolrd”

2)、集合:
列表、元组、字典、哈希表

3)、字符串:

万恶的字符串拼接:

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的 空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

a).字符串传值:
字符串格式化:

   name = "I‘m %s" % allen
   name = "I‘m %s, age: %d" % (allen,25)

   其中%s,%d 是占位符,%s代表字符串,%d 代表数字 ,% 后面的值是实际传入的参数,用来替换%s,和%d的值
   
   name = "I‘m {0},age:{1}"
   new_name = name.format(allen,25)
   print new_name

b) 打印字符串:

   print name   #使用单引号
   print "name"   #使用双引号
   print """      #使用三引号,打印多行
   I‘m is allen,
   age is 25
   """

c) 字符串切片:

   name = "allen"
   name[0]   #打印索引为0的值,输出值:a
   name[0:2] #打印索引从0 到 2 的值,不包括2(即<),输出值为:al
   name[-1]  #打印最后一个,输出值:n
   name[:-1] #打印索引从0开始至倒数第二个字符,不包括自己,输出值:alle

d) 统计长度

len(name) #统计字符串长度

 

e) 去除两边的字符

   name.strip()  #去除两边的空格
   name.lstrip()  #去除左边的空格
   name.rstrip()  #去除右边的空格

f) 分割

   name = "allen,25,wonderful"
   name.split(,)

8.列表

a) 创建列表:

name_list = [allen,yyh,ali,25]

name_list = list([allen,yyh,ali,25])

b)  追加

name_list.append(hello)

c) 删除

 del name_list[0]

d) john (列表变成字符串)

 "".join(name_list) 

e) in (包含,判断元素是否在列表中)

 "allen" in name_list

9.元组 (没有增删改),其他和列表一样

("allen","ali","yyh")

总结:

列表(list),字符串(str),元组(tuple)

共同点:
切片、索引、len() 、in

不同点:
str:重新开辟空间
list:修改后,不变

元组(tuple):
不允许修改

10.for 循环:

name_list =  [allen,yyh,ali,25]

for item in name_list:

    if item == "yyh":

        print "diu diu ..."

        continue

    if item == "ali":

        print "welcome to here!"

        break   # 跳出循环

11.while 循环:

while 条件:
    print "ok ok ok"
while True:  # 死循环
    print true

flag = True   #标记位
while flag:

    print "ok ok ok"
    flag = False

12.字典,键值对 (字典无序,特殊的for循环)

person = {
    "name":"allen",
    "age":"25",
    "gender":"man",
}

#person[‘name‘]
for k,v in person.items():  #字典无序
    print k,v 

person.keys()  #所有key
person.values() #所有value
person.items()  #所有元素  

13.运算符

a) 算数运算:+ - * / % ** //
b) 比较运算:==  !=  < >   >=  <=
c) 赋值运算:=  +=  -=  *=  /=  %=  **/  //=
d) 逻辑运算:and  or  not
e) 成员运算:in  not in
f) 身份运算:is  is not    
g) 位运算:& | ^ ~  >> <<

14.文件操作:

file_list = open(filename.txt,r)

or

file_list = file(filename.txt,r)

for line in file_list.read():
   print line  # 全量读

for line in file_list.readlines():
    print line  # 读取所有行,(列表)

for line in file_list.xreadlines():
    print line # 一行一行读(每次只读一行)

需求:将用户每登陆一次,记录一次登陆次数(通过操作文件实现)

log.txt文件内容格式如下:

sun;123;3
bo;123;4

#!/usr/bin/env python
#-*- coding:utf-8 -*-
file_obj = file(test.txt,r+)
line_list = file_obj.readlines()
my_list = []
for ele in line_list:
  line = ele.strip()
  value_list = line.split(;)
  last_value = int(value_list[-1])
  last_value += 1
  value_list[-1] = str(last_value)
  value_str = ;.join(value_list)
  my_list.append(value_str)
file_obj.seek(0)
my_str = \n.join(my_list)
file_obj.write(my_str)
file_obj.close()

 

python--第一天

原文:http://www.cnblogs.com/sundi/p/5035466.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!