python学习笔记(一)

来源:极客学院

字符串

一、单引号、双引号和三引号

看下面的例子

c1="hello world"
c2='hello world'
c3='It is a "dog"'
c4="It's a 'dog'"
c5='It\'s a \'dog\''
c6="It's a \"dog\""

c7='''peng
dong
lin
163'''

c8="""peng
dong
lin
163
"""

print(c1)
print(c2)
print(c3)
print(c4)
print(c5)
print(c6)
print(c7)
print(c8)

下面是运行结果

C:\Python27\python.exe D:/MY_Documents/Python/demo/yinhao.py
hello world
hello world
It is a "dog"
It's a 'dog'
It's a 'dog'
It's a "dog"
peng
dong
lin
163
peng
dong
lin
163

从上面可以看出,单引号和双引号可以嵌套,如果想输出单引号,需要使用转义或者被双引号括住;同理如果想输出双引号,也需要使用转义或者用单引号括住。

二、自然语言

看例子

c1="pengdonglin\npengdonglin"
c2=r"hello world\nhello world"

print(c1)
print(c2)

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/nature.py
pengdonglin
pengdonglin
hello world\nhello world

 三、字符串重复

print("Hello World\n")*3
print("hello"*2)

输出:

C:\Python27\python.exe D:/MY_Documents/Python/demo/repeat.py
Hello World
Hello World
Hello World

hellohello

四、子字符串

c1="12345678"
c2=c1[0]
c3=c1[7]
c4=c1[:2]
c5=c1[2:]
c6=c1[4:7]

print(c1)
print(c2)
print(c3)
print(c4)
print(c5)
print(c6)

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/sub_string.py
12345678
1
8
12
345678
567

总结:

索引运算符从0开始索引

切片运算符[a:b]是指从第a下标开始到第b-1下标。同样,第一位下标为0

数据类型

一、列表

#coding=utf-8

students=["小明","小华","小李","小娟","小云"]
print(students[3])

students[2]="彭东林"
print(students[2])

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/liebiao.py
小娟
彭东林

可以看出,列表的下标也是从0开始的,并且内容可以修改

二、元组

#coding=utf-8

students=("小明","小华","小李","小娟","小云")
print(students[3])

students[3]="彭东林"
print(students[3])

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/yuanzu.py
小娟
Traceback (most recent call last):
  File "D:/MY_Documents/Python/demo/yuanzu.py", line 6, in 
    students[3]="彭东林"
TypeError: 'tuple' object does not support item assignment

可以看出,元组的下标也是从0开始的,但是内容不能修改。

三、集合

#coding=utf-8

a=set("abcnmaaaaggsng")
print("a: {0}".format(a))
b=set("cdfm")
print("b: {0}".format(b))

# 交集
x=a&b
print("a&b: {0}".format(x))

# 并集
y=a|b
print("a|b: {0}".format(y))

#差集
z=a-b
print("a-b: {0}".format(z))

#去除重复元素
new=set(a)
print(new)

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/jihe.py
a: set(['a', 'c', 'b', 'g', 'm', 'n', 's'])
b: set(['c', 'm', 'd', 'f'])
a&b: set(['c', 'm'])
a|b: set(['a', 'c', 'b', 'd', 'g', 'f', 'm', 'n', 's'])
a-b: set(['a', 's', 'b', 'g', 'n'])
set(['a', 'c', 'b', 'g', 'm', 's', 'n'])

四、字典

#coding=utf-8

k={"姓名":"彭东林","籍贯":"山西"}
print(k["籍贯"])

# 添加字典里的项目
k["爱好"]="音乐"
print(k["姓名"])
print(k["爱好"])

输出

C:\Python27\python.exe D:/MY_Documents/Python/demo/zidian.py
山西
彭东林
音乐

标识符

一、标识符

首字符不能是数字,只能是字母或者下划线,此外,Python大小写敏感。

二、关键字

常用的Python关键字有 and, elif, global, or, else, pass, break, continue, import, class, return, for, while。

对象

一、对象类型

Python的内置对象类型主要有数字、字符串、列表、元组、字典、集合等等。其实,在Python中,一切皆为对象。

运算符

#"+":两个对象相加
#两个数字相加
a=7+8
#$print a

#两个字符串相加
b="GOOD"+" JOB!"
#print b

#"-":取一个数字的相反数或者实现两个数字相减
a=-7
#print a
b=-(-8)
#print b

c=19-1
#print c


#"*":两个数相乘或者字符串重复
a=4*7
#print a

b="hello"*7
#print b

#"/":两个数字相除
a=7/2
#print a

b=7.0/2
c=7/2.0
#print b
#print c

#"**":求幂运算
a=2**3   #相当于2的3次幂,就是2*2*2
#print a

#"<":小于符号,返回一个bool值
a=3<7
#print a

b=3<3
#print b

#">":大于符号,返回一个bool值
a=3>7
#print a

b=3>1
#print b

#"!=":不等于符号,同样返回一个bool值
a=2!=3
#print a

b=2!=2
#print b

#"//":除法运算,然后返回其商的整数部分,舍掉余数
a=10//3
#print a

#"%":除法运算,然后返回其商的余数部分,舍掉商
a=10%3
#print a

b=10%1  #没有余数的时候返回什么?
#print b

a=10//3  #a为商的整数部分
b=10%3   #b为
c=3*a+b  #c为除数乘以商的整数部分加上余数,应该c的值就是被除数
#print c

#"&":按位与运算,所谓的按位与是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算

a=7&18  #执行一下,为什么7跟18与会得到2呢??
#print a
'''首先我们打开计算器,然后我们将7转化为二进制,得到7的二进制值是:111,自动补全为8位,即00000111
   然后我们将18转化为二进制,得到18二进制的值是10010,同样补全为8位,即00010010
   再然后,我们将00000111
   ,跟        00010010按位进行与运算,
   得到的结果是:00000010,然后,我们将00000010转化为十进制
   得到数字二,所以7跟18按位与的结果是二进制的10,即为十进制的2

'''

#"|":按位或运算,同样我们要将数字转化为二进制之后按位进行或运算
a=7|18
#print a
'''我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010
   我们将      00000111
   跟         00010010按位进行或运算,
   得到的结果是 00010111,然后,我们将00010111转化为十进制
   得到数字23,所以7跟18按位或的结果是二进制的10111,即为十进制的23


'''

#"^"按位异或
a=7^18
#print a
'''
   首先,异或指的是,不同则为1,相同则为0.
   我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010
   我们将      00000111
   跟         00010010按位进行异或运算,
   得到的结果是 00010101,然后,我们将00010101转化为十进制
   得到数字21,所以7跟18按位异或的结果是二进制的10101,即为十进制的21


'''

#"~":按位翻转~x=-(x+1)
a=~18  #~18=-(18+1)=-19
#print a


#"<<":左移
'''
比如18左移就是将他的二进制形式00100100左移,即移后成为00100100,即成为36,左移一个单位相当于乘2,左移动两个单位
相当于乘4,左移3个单位相当于乘8,左移n个单位相当于乘2的n次幂。
'''
a=18<<1
#print a

b=3<<3
#print b

#"<<":右移
'''
右移是左移的逆运算,即将对应的二进制数向右移动,右移一个单位相当于除以2,右移动两个单位相当于除以4,右移3个单位相当于
除以8,右移n个单位相当于除以2的n次幂。
'''
a=18>>1
#print a

b=18>>2
#print b


#"<=":小于等于符号,比较运算,小于或等于,返回一个bool值
a=3<=3#print a

b=4<=3
#print b

#">="
a=1>=3
#print a

b=4>=3
#print b

#"==":比较两个对象是否相等
a=12==13
#print a

b="hello"=="hello"
#print b

#not:逻辑非
a=True
b=not a
#print b

c=False
#print not c

#and:逻辑与
'''
True and True等于True
True and False等于False
False and True等于False
'''
#print True and True


#or:逻辑或
'''
True and True等于True
True and False等于True
False and False等于False
'''
print True or False


二、优先级

#优先级使用实战

#优先级排行榜第1名——函数调用、寻址、下标

#优先级排行榜第2名——幂运算**
a=4*2**3
#print a

#优先级排行榜第3名——翻转运算~

#优先级排行榜第4名——正负号
#print 2+4*-2   #我们可以看,正负号的使用方法是紧挨着操作数的,否则会出错,这就说明正负号优先于加减乘除运算

#优先级排行榜第5名——*、/、%
#print 2+4*2/4

#优先级排行榜第6名——+、-
#print 3<<2+1

#优先级排行榜第7名——<<、>>

#优先级排行榜第8名——按位&、^、|,其实这三个中也是有优先级顺序的,但是他们处于同一级别,故而不细分

#优先级排行榜第9名——比较运算符
a=2*3+5<=5+1*2
#print a


#优先级排行榜第10名——逻辑的not、and、or


#优先级排行榜第11名——lambda表达式

控制流

一、顺序

a=8
print(a)
a=a-1
print(a)
a+=6
print(a)

二、分支

xiaoming="nnn"
if xiaoming=="eat":
    print("小明很乖")
else:
    print("小明不乖")

score=60
if score>=60:
    print("及格")
else:
    print("不及格")

三、for循环

for i in range(0,3):
    print i

输出:

0
1
2

四、while循环

a=3
while a>=0:
    print a
    a-=1

输出:

3
2
1
0

 

你可能感兴趣的:(python学习笔记(一))