在Python中用引号引起来的字符集称之为字符串,比如:'hello'、"my Python"、"2+3"等都是字符串 Python中字符串中使用的引号可以是单引号、双引号跟三引号
print ('hello world!')
c = 'It is a "dog"!'
print (c)
c1= "It's a dog!"
print (c1)
c2 = """hello
world
!"""
print (c2)
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\
print ('It\'s a dog!')
print ("hello world!\nhello Python!")
print ('\\\t\\')
原样输出引号内字符串可以使用在引号前加r
print (r'\\\t\\')
s = 'Python'
print( 'Py' in s)
print( 'py' in s)
取子字符串有两种方法,使用[]索引或者切片运算法[:],这两个方法使用面非常广
print (s[2])
print (s[1:4])
word1 = '"hello"'
word2 = '"world"'
sentence = word1.strip('"') + ' ' + word2.strip('"') + '!'
print( 'The first word is %s, and the second word is %s' %(word1, word2))
print (sentence)
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样
i = 7
print (i)
7 + 3
7 - 3
7 * 3
7 ** 3
7 / 3#Python3之后,整数除法和浮点数除法已经没有差异
7 % 3
7//3
7.0 / 3
3.14 * 10 ** 2
其它表示方法
0b1111
0xff
1.2e-5
更多运算
import math
print (math.log(math.e)) # 更多运算可查阅文档
True
False
True and False
True or False
not True
True + False
18 >= 6 * 3 or 'py' in 'Python'
18 >= 6 * 3 and 'py' in 'Python'
18 >= 6 * 3 and 'Py' in 'Python'
import time
now = time.strptime('2016-07-20', '%Y-%m-%d')
print (now)
time.strftime('%Y-%m-%d', now)
import datetime
someDay = datetime.date(1999,2,10)
anotherDay = datetime.date(1999,2,15)
deltaDay = anotherDay - someDay
deltaDay.days
还有其他一些datetime格式
type(None)
type(1.0)
type(True)
s="NoneType"
type(s)
str(10086)
?float()
float(10086)
int('10086')
complex(10086)
列表(list)、元组(tuple)、集合(set)、字典(dict)
用来存储一连串元素的容器,列表用[]来表示,其中元素的类型可不相同。
mylist= [0, 1, 2, 3, 4, 5]
print (mylist)
列表索引和切片
# 索引从0开始,含左不含右
print ('[4]=', mylist[4])
print ('[-4]=', mylist[-4])
print ('[0:4]=', mylist[0:4])
print ('[:4]=', mylist[:4])#dddd
print( '[4:]=', mylist[4:])
print ('[0:4:2]=', mylist[0:4:2])
print ('[-5:-1:]=', mylist[-5:-1:])
print ('[-2::-1]=', mylist[-2::-1])
修改列表
mylist[3] = "小月"
print (mylist[3])
mylist[5]="小楠"
print (mylist[5])
mylist[5]=19978
print (mylist[5])
print (mylist)
插入元素
mylist.append('han') # 添加到尾部
mylist.extend(['long', 'wan'])
print (mylist)
scores = [90, 80, 75, 66]
mylist.insert(1, scores) # 添加到指定位置
mylist
a=[]
删除元素
print (mylist.pop(1)) # 该函数返回被弹出的元素,不传入参数则删除最后一个元素
print (mylist)
判断元素是否在列表中等
print( 'wan' in mylist)
print ('han' not in mylist)
mylist.count('wan')
mylist.index('wan')
range函数生成整数列表
print (range(10))
print (range(-5, 5))
print (range(-10, 10, 2))
print (range(16, 10, -1))
元组类似列表,元组里面的元素也是进行索引计算。列表里面的元素的值可以修改,而元组里面的元素的值不能修改,只能读取。元组的符号是()。
studentsTuple = ("ming", "jun", "qiang", "wu", scores)
studentsTuple
try:
studentsTuple[1] = 'fu'
except TypeError:
print ('TypeError')
scores[1]= 100
studentsTuple
'ming' in studentsTuple
studentsTuple[0:4]
studentsTuple.count('ming')
studentsTuple.index('jun')
len(studentsTuple)
Python中集合主要有两个功能,一个功能是进行集合操作,另一个功能是消除重复元素。 集合的格式是:set(),其中()内可以是列表、字典或字符串,因为字符串是以列表的形式存储的
studentsSet = set(mylist)
print (studentsSet)
studentsSet.add('xu')
print (studentsSet)
studentsSet.remove('xu')
print (studentsSet)
a = set("abcnmaaaaggsng")
print ('a=', a)
b = set("cdfm")
print ('b=', b)
#交集
x = a & b
print( 'x=', x)
#并集
y = a | b
print ('y=', y)
#差集
z = a - b
print( 'z=', z)
#去除重复元素
new = set(a)
print( z)
Python中的字典dict也叫做关联数组,用大括号{}括起来,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度,其中key不能重复。
k = {"name":"weiwei", "home":"guilin"}
print (k["home"])
print( k.keys())
print( k.values())
添加、修改字典里面的项目
k["like"] = "music"
k['name'] = 'guangzhou'
print (k)
k.get('edu', -1) # 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value
删除key-value元素
k.pop('like')
print (k)
type(mylist)
tuple(mylist)
list(k)
zl = zip(('A', 'B', 'C'), [1, 2, 3, 4]) # zip可以将列表、元组、集合、字典‘缝合’起来
print (zl)
print (dict(zl))
在Python中通常的情况下程序的执行是从上往下执行的,而某些时候我们为了改变程序的执行顺序,使用控制流语句控制程序执行方式。Python中有三种控制流类型:顺序结构、分支结构、循环结构。
另外,Python可以使用分号";"分隔语句,但一般是使用换行来分隔;语句块不用大括号"{}",而使用缩进(可以使用四个空格)来表示
s = '7'
num = int(s) # 一般不使用这种分隔方式
num -= 1 # num = num - 1
num *= 6 # num = num * 6
print (num)
salary = 1000
if salary > 10000:
print ("Wow!!!!!!!")
elif salary > 5000:
print ("That's OK.")
elif salary > 3000:
print ("5555555555")
else:
print ("..........")
while 循环
a = 1
while a < 10:
if a <= 5:
print (a)
else:
print ("Hello")
a = a + 1
else:
print ("Done")
heights = {'Yao':226, 'Sharq':216, 'AI':183}
for i in heights:
print (i, heights[i])
for key, value in heights.items():
print(key, value)
total = 0
for i in range(1, 101):
total += i#total=total+i
print (total)
for i in range(1, 5):
if i == 3:
break
print (i)
for i in range(1, 5):
if i == 3:
continue
print (i)
for i in range(1, 5):
if i == 3:
pass
print (i)
三种形式
fruits = ['"Apple', 'Watermelon', '"Banana"']
[x.strip('"') for x in fruits]
# 另一种写法
test_list=[]
for x in fruits:
x=x.strip('"')
test_list.append(x)
test_list
[x ** 2 for x in range(21) if x%2]
# 另一种写法
test_list=[]
for x in range(21):
if x%2:
x=x**2
test_list.append(x)
test_list
[m + n for m in 'ABC' for n in 'XYZ']
# 另一种写法
test_list=[]
for m in 'ABC':
for n in 'XYZ':
x=m+n
test_list.append(x)
test_list
d = {'x': 'A', 'y': 'B', 'z': 'C' }
[k + '=' + v for k, v in d.items()]
# 另一种写法
test_list=[]
for k, v in d.items():
x=k + '=' + v
test_list.append(x)
test_list
函数是用来封装特定功能的实体,可对不同类型和结构的数据进行操作,达到预定目标
str1 = "as"
int1 = -9
print (len(str1))
print (abs(int1))
fruits = ['Apple', 'Banana', 'Melon']
fruits.append('Grape')
print (fruits)
当系统自带函数不足以完成指定的功能时,需要用户自定义函数来完成。
def my_abs(x):
if x >= 0:
return x
else:
return -x
my_abs(-9)
可以没有return
def filter_fruit(someList, d):
for i in someList:
if i == d:
someList.remove(i)
else:
pass
print (filter_fruit(fruits, 'Melon'))
print (fruits)
多个返回值的情况
def test(i, j):
k = i * j
return i, j, k
a , b , c = test(4, 5)
print (a, b , c)
type(test(4, 5))
函数本身也可以赋值给变量,函数与其它对象具有同等地位
myFunction = abs
myFunction(-9)
def add(x, y, f):
return f(x) + f(y)
add(7, -5, myFunction)
map/reduce: map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回;reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
myList = [-1, 2, -3, 4, -5, 6, 7]
map(abs, myList)
from functools import reduce
def powerAdd(a, b):
return pow(a, 2) + pow(b, 2)
reduce(powerAdd, myList) # 是否是计算平方和?
filter: filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素
def is_odd(x):
return x % 3 # 0被判断为False,其它被判断为True
filter(is_odd, myList)
sorted: 实现对序列排序,默认情况下对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1
默认排序:数字大小或字母序(针对字符串)
sorted(myList)
def powAdd(x, y):
def power(n):
return pow(x, n) + pow(y, n)
return power
myF = powAdd(3, 4)
myF
myF(2)
f = lambda x: x * x
f(4)
等同于:
def f(x):
return x * x
map(lambda x: x * x, myList)
匿名函数可以传入多个参数
reduce(lambda x, y: x + y, map(lambda x: x * x, myList))
返回函数可以是匿名函数
def powAdd1(x, y):
return lambda n: pow(x, n) + pow(y, n)
lamb = powAdd1(3, 4)
lamb(2)
关键字是指系统中自带的具备特定含义的标识符
# 查看一下关键字有哪些,避免关键字做自定义标识符
import keyword
print (keyword.kwlist)
Python中的注释一般用#进行注释
可以用?或者help()