#coding:utf-8
#这是一个注释
#第一个python程序
print 'HelloWorld'
#一个小程序
a=100
if a>100:
print a
else:
print -a
print '我'
#Python输入的写法:
#name=raw_input()
#print name
#转移字符的使用\
print "Hello\'World\'"
#r''表示''内部的字符串不转义
print r'\\\t\\'
#python多行表示
print '''
hahaha
hdhh
jdjdhj
'''
#python的True false表示
#or and not
#False or True #True
#not True #False
#3>2 #True
#3<2 #False
#python中的空值是None
a=None
print a
#赋值
a='ABC'
b=a
a='xyz'
print b
print a
#常量:全部大写的变量名表示常量
PI=3.1415926
print PI
#Python 遵循自动提升原则
#>>>10/3
#3
#>>>10.0/3
#3.3333333333333335
#求余使用%
#>>>10%3
#1
#用Unicode表示的字符串用u'...'表示
print ord('A') #65
print chr(65) #A
#print u'中' #报错
print u'\u4e2d' #中
#len函数返回字符串长度
print len('AAAABBBBCCCC') #12
#常见的站位符%d整数 %f浮点数 %s字符串 %x十六进制整数
#>>>'Hi, %s, you have $%d.' % ('Michael',1000)
#'Hi, Michael, you have $1000.'
#>>>'%2d-%02d'%(3,1)
#'3-01'
#>>>'%.2f' %3.1415926
#'3.14'
print u'H---%s handsome' %u'卫'
print u'H---%s %%handsome' %u'卫'
#字符串是不可以改变的类型
#>>>a='ABC'
#>>>a.replace('A','d')
#dBC
#>>>a
#'ABC'
#Python 的一种内置数据类型是列表list:有序的集合可以随时添加和删除元素
#list里面的元素可以不同,即也可以是一个list
#stulist=['mike','rose','jack']
#print stulist
#print len(stulist)
#最后一个元素的索引len(stulist)-1或者print stulist[-1]
#插入stulist.insert(1,'hahaha')
#追加到末尾 stulist.append('那你就技术的')
#删除指定位置元素:stulist.pop(i)
#删除末尾元素:用pop()方法 stulist.pop()
#将某个位置元素替换成别的元素stulist[1]='nnbcbddb'
#tuple一个有序数组:一旦初始化就不可以被修改没有append和insert
#方法获取元素的方法与list一样,不可以赋值另一个元素
#>>>t=() 空tuple
#
#>>>t=(1,) 有一个元素
#当tuple中指向的list,list中的元素时可以改变的
#条件循环与分支
age=20
if age >= 18: #条件满足两行都执行
print 'your age is'
print age
#例子
age=3-01
if age >= 18: #条件满足两行都执行
print 'adult'
elif age>=14:
print'teenager'
else:
print 'kids'
print '\n'
#for...in循环
names=['micale','rose','kang']
for name in names:
print name
sum =0
a={1,2,3,4,5,6}
for x in a:
sum = sum + x;
print sum
print sum
#生成序列函数range
sum=0
for a in range(101):
sum = sum +a
print sum
#while循环
sum = 0
n=99
while n>0:
sum = sum +n
n=n-2
print sum
#注意:python没有自增自加减运算符
#注意raw_input()的用法,默认输入字符串
#birth = int (raw_input('b:'))
#while birth>0:
# print birth
# birth=birth-1
#python中的map是dict
#>>>d={'Jack':99,'iii':88,'vvv':9}
#>>>d['jack']
#>>>d['fff']=23
#>>>d['fff']
d={'Jack':99,'iii':88,'vvv':9}
if not 'ss' in d:
print 'error'
#删除一个key 用pop(key)
#d.pop('Jack')
d={'Jack':99,'iii':88,'vvv':9}
d.pop('Jack')
print d
#set:没有重复的key没有value
s=set([1,2,3])
s.add(4)
print s
s.remove(1)
print s
s1=set([1,2,3])
s2=set([6,2,3])
print s1&s2
print s1|s2
#函数:定义函数使用def语句返回值用return语句返回
def my_abs(x): #求绝对值
if x<0 :
return -x
else:
return x
print my_abs(-3)
#定义一个什么都不做的函数用pass
def p():
pass
print p() #None
#函数参数个数不对python自动检查抛出TypeError,如果是参数;类型不#对无法自动检查出来
#我们可以对参数进行判断
#if not isinstance(x,(int,float)):
# raise TypeError('ERROR')
#函数可以返回多个值,实际是一个
#例题
import math
def move(x,y,step,angle=0):
nx=x+step*math.cos(angle)
ny=y-step*math.sin(angle)
return nx,ny
x,y=move(100,100,60,math.pi/6)
r=move(100,100,60,math.pi/6)
print x,y,r
#函数的参数(必选参数,默认参数,可变参数,关键字参数)
#例子注意必选参数必须在前,默认参数在后,一般把变化小的当做默认参数
def power (x,n=2):
s=10
while n>0:
n=n-1
s=s*x
return s
print power(3,4)
#默认参数必须指向不变的对象
#可变参数:传入参数的个数是可变的:在参数前面加*
def col(*num):
sum=0
for n in num:
sum =sum +n*n*n
return sum
print '值:',col(1,2,3,4,5)
#关键字参数 #**a,允许传入0个或者人任意个含有参数名的参数,这些关键字参数在函数内部自动组装成一#个dict
def make(name,age,**kw):
print 'name:',name,'age:',age,'kw:',kw
kw={"city":"beijing","job":100}
make('mica',20,**kw)
#参数组合顺序为:必选参数,默认参数,可变参数,关键字参数
#递归函数
def fact(n):
if n==1:
return 1
return n*fact(n-1)
print (fact(10))
#递归函数调用次数过多会出现栈溢出问题,可以通过尾递归优化解决
#类似于循环,可以把循环看成一种特殊的尾递归函数
#尾递归是指在函数返回时调用自身本身,return语句不能包含任何的表达式
#例子
print '\n'
def a(num,product):
if num==1:
return product
return a(num-1,num*product)
print a(4,1)
以上是本人python学习时的学习笔记,这只是一部分,其余部分学习完成后会在下面的帖子中更新,作为自己的学习笔记。