python学习之入门基础

hello wold

print ‘hello world!’

print是一个常用函数,其功能就是输出括号中的字符串或者其他类型的数值

python脚本

新建sum.py

#!/usr/bin/env python
a=1
b=1
print a+b
chmod +x sum.py
./sum.py

结果输出为2

数据类型

a = 3
print (type(a))
  • int a=3
  • float a=3.1
  • 真值 a=True
  • 字符串

序列 sequence

  • 序列是一组有顺序的元素的集合
  • 包含一个或多个元素,也可以没有
  • 主要分为两类:tuple和list(主要区别在于tuple的各个元素不可改变,list元素可改变
  • 字符串一种特殊的元祖
s1 = (1,'python', 2)
s2 = [5, 4, 2]
s3 = [1,[2,3,4]]
print s1,type(s1)
print s2,type(s2)
print s1[0]
print s3[1]
print s2[2:0:-1]
s = "asda"
print s[0:3]
(1, 'python', 2) <type 'tuple'>
[5, 4, 2] <type 'list'>
1
[2, 3, 4]
[2, 4]
asd

引用方式

  • 下标引用
  • 范围引用:[下限:上限:步长],但是上限本身不引用,print s[0:3:1], s[3]不会打印

字典dict-map

dict使用键值存储(key-value),具有极快的查找速度

kv = {'name':'jack','id':2}
print kv
print kv['name']
# dict可修改
kv['name'] = 'rose'
print kv['name']
# 可通过in判断key是否在dict中
print 'name' in kv
# dict还可通过get方法获取对应的value
print kv.get('name')
print kv.get('id')
# pop删除,返回删除的值,并删除
print kv.pop('id')
print kv
{'name': 'jack', 'id': 2}
jack
rose
True
rose
2
2
{'name': 'rose'}
dict和list比较
  • 查找和插入的速度极快,dict不会随着key的增加而变慢,list查找和插入的时间随着元素的增加而增加;
  • dict需要占用大量的内存,内存浪费多,list占用空间少,内存浪费少
  • dict用空间换时间
  • dict的key是不可变的且不重复,因此key必须是不可变的值,比如字符串和数字

set

set和dict类似,但是只是key的集合,不存在value,set中没有重复的key,它的key和dict里的key一模一样

s = set([1,1,1,3,2,2,3])
print s
# set添加
s.add(5)
print s
# set删除
s.remove(1)
print s
# set可做交集和并集    
s1 = set([1,2,3])
s2 = set([2,3,4,5])
print (s1&s2)
print (s1|s2)
# tuple不变,可作为key
q = (1,2)
s.add(q)
print s
set([1, 2, 3])
set([1, 2, 3, 5])
set([2, 3, 5])
set([2, 3])
set([1, 2, 3, 4, 5])
set([(1, 2), 2, 3, 5])

运算

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

缩进

在c、c++和java中,一块代码都是利用{}完成,而python最具特色的就是利用缩进表明成块的代码,四个空格表示隶属关系

val = input()
if val == 1:
    print ('c++')
elif val == 2:
    print ('java')    
else:
    print ('python')

循环

  • for
for i in range(3):
    print i
  • while
i = 0
while i<3:
    print i
    i=i+1
  • 结果
1
2
3

函数

函数的最主要作用就是减少重复,方便用户调用,将一些操作放入一个函数内进行封装

  • 求和函数示例
def sum(a,b):  #def关键字通知python定义了一个函数
    return a+b 

if __name__ == "__main__":
    a=input()
    b=input()
    sum = sum(a,b)
    print(sum)
  • 参数传递之值传递和指针传递
def valueChange(a):    #值传递
    a=a+1
    return a

def pointerChange(b):  #指针传递
    b[0] = b[0]+1
    return b

if __name__ == "__main__":

    a =1
    print(valueChange(a))
    print(a)

    b = [1,2]
    print(pointerChange(b))
    print(b)
2
1
[2, 2]
[2, 2]

上述代码分别为值传递和指针传递代码的结果,但是可看到结果完全不同,为什么呢?解释一下

值传递:基本类型变量传给函数后,函数会在内存中复制一个新的变量,之后的操作都是对这个新的变量进行,从而不影响旧变量值的改变

指针传递:列表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作,也是在原有内存中进行,改变原有值,从而影响原有变量

猜你喜欢

转载自blog.csdn.net/pupoqian3720/article/details/81485057
今日推荐