python :
人生苦短,我用python ------ Life is short ,you need python.
01 注释的作用:
使用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的 可读性
02 单行注释(行注释)
以#开头,#右边的所有东西都被当作说名文字,而不是真正要执行的程序,只起到辅助说明作用
03 多行注释。。。。
算术运算符的基本使用:
运算符 描述 实例
+ 加 a+b=30 假设变量a为10,变量b为20
- 减 a-b=10
* 乘 a*b=200
/ 除 a/b=0.5
....... ....... ..........
** 幂(最高优先级)
2. 变量的基本命名和使用:
变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如:可将变量命名为 message_1 ,但不能将其命名为 1_message ;
变量名不能包含空格,但可使用下划线来分隔其中的单词。例如:变量名 greeting_message 可行,但变量名 greeting message 会引发错误;
不要将 Python 关键字和函数名用作变量名,即不要使用 Python 保留用于特殊用途的单词,如:print 等;
变量名应既简短又具有描述性。例如:name 比 n 好, student_name 比 s_n 好, name_length 比 length_of_persons_name 好;
慎用小写字母 l 和大写字母 O,因为它们可能被人错看成数字 1 和 0
变量的基本使用:
在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
等号(=)用来给变量赋值
message = "Hello Python World!"
print(message)
message = "Hello Python Crash Course World!"
print(message)
运行这个程序,结果如下:
Hello Python World!
Hello Python Crash Course World!
3. 变量的类型 :
在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)
数据类型可以分为 数字型 和 非数字型
数字型
- 整型 (int)
- 浮点型(float)
- 布尔型(bool)
- 真 True 非 0 数 —— 非零即真
- 假 False 0
- 复数型 (complex)
- 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题
非数字型
提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:
使用 type 函数可以查看一个变量的类型
标识符.关键字。变量的命名规则:python标识符、命名规则及关键字(含笔记) - CSDN博客
变量的输入和输出:
1.变量
①.变量的命名规则
语法:
(下划线或字母)+(任意数目的字母、数字或下划线)
变量名必须以下划线或字母开头,而后面接任意数目的字母、数字或下划线。下划线分割。
区分大小写: SPAM和spam不同
不能使用python内置关键字,以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
命名惯例:
a. 显示 ----通俗易懂
b. nums_of_alex_gf = 19
c. NumsOfAlexGf = 2 ---- 驼峰表示法
d. 5name -- 数字不能开头 ,但是数字可以结尾与放在中间 例 name5,na5me
e. !name 特殊字符不能有
f. name of teacher = 不能加空格
②声明变量
1 # !/usr/bin/env python2 # -*- coding:utf-8 -*-3 age = 194 print(age)
上述代码声明了一个变量,变量名为: age,变量age的值为:"18"
变量的作用:昵称,其代指内存里某个地址中保存的内容
2.输入和输出
#!/usr/bin/env python# -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量name = input("请输入用户名:") # 打印输入的内容print(name)
如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass 5 6 # 将用户输入的内容赋值给 name 变量 7 pwd = getpass.getpass("请输入密码:") 8 9 # 打印输入的内容10 print(pwd)
3.判断语句
语法:
1 if 条件 and 条件2:2 print('True')3 elif 条件:4 print('')5 else:6 print('Flase')
注意缩进,空四格。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import getpass 4 Type = input('请输入职业:') 5 if Type == "学生": 6 name = input('请输入用户名') 7 if name == 'hexin': 8 passwd = getpass.getpass('请输入密码:') 9 if passwd == '1234':10 print('验证成功,欢迎登录',name)11 else:12 print('验证失败,再见')
4.循环语句
while循环
语法:
while 条件: # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行
break 跳出整个循环
continue 结束本次循环,开始下一次循环
例:计算1到100的和
i = 1value = 0while i < 101: i += 1 value = value + iprint(value)
语法:
当python运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。
例
for x in ['spam','eggs','ham']: print(x,end= ' ')
输出
python支持一下几种运算符:
1. 算数计算符:Python算术运算符示例 - Python教程™
假设变量a
的值是10
,变量b
的值是21
,则 -
运算符
描述
实例
+
加
两个对象相加 a + b 输出结果 30
-
减
得到负数或是一个数减去另一个数 a - b 输出结果 -10
*
乘
两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/
除
x除以y b / a 输出结果 2
//
取整除
返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
%
取余
返回除法的余数 b % a 输出结果 0
**
幂
返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
运算符描述示例+
加法运算,将运算符两边的操作数增加。a + b = 31
-
减法运算,将运算符左边的操作数减去右边的操作数。a – b = -11
*
乘法运算,将运算符两边的操作数相乘a * b = 210
/
除法运算,用右操作数除左操作数b / a = 2.1
%
模运算,用右操作数除数左操作数并返回余数b % a = 1
**
对运算符进行指数(幂)计算a ** b
,表示10
的21
次幂//
地板除 - 操作数的除法,其结果是删除小数点后的商数。 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去9//2 = 4
, 9.0//2.0 = 4.0
, -11//3 =
-4
, -11.0//3 = -4.0
2 。比较(关系)运算符:Python比较运算符示例 - Python教程™
比较(关系)运算符比较它们两边的值,并确定它们之间的关系。它们也称为关系运算符。假设变量a
的值10
,变量b
的值是20
,则 -
运算符描述示例==
如果两个操作数的值相等,则条件为真。(a == b)
求值结果为 false
!=
如果两个操作数的值不相等,则条件为真。(a != b)
求值结果为 true
>
如果左操作数的值大于右操作数的值,则条件成为真。(a > b)
求值结果为 false
<
如果左操作数的值小于右操作数的值,则条件成为真。(a < b)
求值结果为 true
>=
如果左操作数的值大于或等于右操作数的值,则条件成为真。(a >= b)
求值结果为 false
<=
如果左操作数的值小于或等于右操作数的值,则条件成为真。(a <= b)
求值结果为 true
。。。。。。。。。。。
。。。。。。。。。。。Python赋值运算符示例 - Python教程™
常用的数据类型转换:
函数
说明
int(x [,base ])
将x转换为一个整数
long(x [,base ])
将x转换为一个长整数
float(x )
将x转换到一个浮点数
complex(real [,imag ])
创建一个复数
str(x )
将对象 x 转换为字符串
repr(x )
将对象 x 转换为表达式字符串
eval(str )
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )
将序列 s 转换为一个元组
list(s )
将序列 s 转换为一个列表
chr(x )
将一个整数转换为一个字符
unichr(x )
将一个整数转换为Unicode字符
ord(x )
将一个字符转换为它的整数值
hex(x )
将一个整数转换为一个十六进制字符串
oct(x )
将一个整数转换为一个八进制字符串
分支语句在开发中的应用场景 分支语句的基本用法:
Python中条件选择语句的关键字为:if 、elif 、else这三个。其基本形式如下:
if condition: blockelif condition: block...else: block
其中elif和else语句块是可选的。对于if和elif只有condition为True时,该分支语句才执行,只有当if和所有的elif的condition都为False时,才执行else分支。注意Python中条件选择语句和C中的区别,C语言中condition必须要用括号括起来,在Python中不用,但是要注意condition后面有个冒号。
下面这个是成绩划分等级的一个例子:
score=input()if score<60: print "D"elif score<80: print "C"elif score<90: print "B"else: print "A"
二.循环语句
和C语言一样,Python也提供了for循环和while循环(在Python中没有do..while循环)两种。但是Python中的for循环用法和C语言中的大不一样(和Java、C#中的for循环用法类似),while循环用法大致和C语言中的类似。
for循环的基本形式如下:
for variable in list: block
举个例子,求算从1加到100的和:
sum=0for var in range(1,101): sum+=varprint sum
range()是一个内置函数,它可以生成某个范围内的数字列表。比如说range(1,6)就会生成[1,2,3,4,5]这样一个列表,而range(8)会生成[0,1,2,3,4,5,6,7]这样一个列表。
当然可以有嵌套循环,比如说有一个列表list=['China','England','America'],要遍历输出每个字母。
list=['China','England','America']for i in range(len(list)): word=list[i] for j in range(len(word)): print word[j]
内置的函数len()不仅可以用来求算字符串的长度也可以用来求列表或者集合中成员的个数。
下面来看一下while循环的基本形式:
while condition: block
只有当condition为True时,才执行循环。一旦condition为False,循环就终止了。
举个例子:
count=2while count>0: print "i love python!" count=count-1
如果想要在语句块过程中终止循环,可以用break或者continue。break是跳出整个循环,而continue是跳出该次循环。
count=5while True: print "i love python!" count=count-1 if count==2: break
count=5while count>0: count=count-1 if count==3: continue print "i love python!"
最后加一点,Python中的for和while循环都可以加else子句,else子句在整个循环执行条件不符合时执行(这种用法现在一般用得比较少了)。看两个例子:
#这两段循环功能完全相同for i in range(0,10): print ielse: print 'over' for i in range(0,10): print iprint 'over'
下面是while..else的用法:
#这两段循环功能完全相同count=5while count>0: print 'i love python' count=count-1else: print 'over' count=5while count>0: print 'i love python' count=count-1print 'over'
1 比较(即关系)运算符
python中的比较运算符如下表
运算符
描述
示例
==
检查两个操作数的值是否相等,如果是则条件变为真。
如a=3,b=3则(a == b) 为 true.
!=
检查两个操作数的值是否相等,如果值不相等,则条件变为真。
如a=1,b=3则(a != b) 为 true.
<>
检查两个操作数的值是否相等,如果值不相等,则条件变为真。
如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
>
检查左操作数的值是否大于右操作数的值,如果是,则条件成立。
如a=7,b=3则(a > b) 为 true.
<
检查左操作数的值是否小于右操作数的值,如果是,则条件成立。
如a=7,b=3则(a < b) 为 false.
>=
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。
如a=3,b=3则(a >= b) 为 true.
<=
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。
如a=3,b=3则(a <= b) 为 true.
2 逻辑运算符
运算符
逻辑表达式
描述
实例
and
x and y
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
(a and b) 返回 20。
or
x or y
布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。
(a or b) 返回 10。
n、ot
not x
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
not(a and b) 返回 False
python 中的循环用法:
for循环、while循环
Python中有两种循环,分别为:for循环和while循环。
1. for循环
for循环可以用来遍历某一对象(遍历:通俗点说,就是把这个循环中的第一个元素到最后一个元素依次访问一次)。for循环的基本结构如下:
具体看这个案例:
设计一个函数,在桌面创建10个文本,用数字从1-10依次给它们命名。
1 def text_create(): 2 path = '/Users/duwangdan/Desktop/' 3 for text_name in range(1,11): 4 # 1-10的范围需要用到range函数 5 with open (path + str(text_name) + '.txt','w') as text: 6 # with...as的用法正文内会详细介绍 7 text.write(str(text_name)) 8 text.close() 9 print('Done')10 11 text_create()
现在我们来理解下每行代码。
第1行:定义一个text_create函数;
第2行:给变量path赋值为桌面路径;
第3行:将1-10范围内的每个数字依次装入变量text_name中,每次命名一个文件;
第5行:打开位于桌面的txt文件,并给每一个text执行写入操作;
第7行:给每个文件依次命名;
第8行:关闭文件;
第9行:执行完一次命名操作后显示一个Done;
第11行:调用函数。
案例中提到了“with...as”,在Python中,“with...as”语法是用来代替传统的“try...finally”的。
比如:打开桌面的test文件,尝试读取文件内容,最后关闭文件。
1 file = open('/Users/duwangdan/Desktop/test.txt')2 try:3 data = file.read()4 finally:5 file.close()
虽然这段代码执行良好,但比较冗长,换成用“with...as”来表达后,代码会更为简洁。
1 with open('/Users/duwangdan/Desktop/test.txt') as file:2 data = file.read()
除了上面的单层循环之外,还有一种常见的循环,是嵌套循环。
比如用嵌套循环实现九九乘法口诀。
1 for i in range(1,10):2 for j in range(1,10):3 print('{} X {} = {}'.format(i,j,i*j))
最外层的循环,依次将1-9的数字储存在变量i中;变量i每取一次值,内层循环就依次将1-9的数字储存在变量j中;最后打印出当前的i、j、和i*j的值。
从Python2.6开始,新增了format函数,用来格式化字符串,可以通过{}.format来实现。在上面这个案例中,将i、j、i*j的值分别存入前面的{ }中,然后做好格式化,统一形式。
2. while循环
for循环和while循环,两者的相同点在于都能循环做一件重复的事情;不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。
具体,看下面这个例子:
1 count = 02 while True:3 print('重复一遍')4 count = count + 15 if count == 3:6 break
给变量count赋值为0,while True就是条件成立,显示“重复一遍”,此时count被重新赋值为count+1,如果count等于3时,跳出循环。最后一句的break是跳出最近一层的循环,如果不跳出,程序会无限制循环下去,造成死循环。
如果不想用break来跳出循环,也可以改变使循环成立的条件。
将上面的例子可转化为如下:
1 count = 02 while (count < 3):3 print('重复一遍')4 count = count + 1
1. break
<1> for循环
普通的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
print(x)
带有break的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
break
print(x)
<2> while循环
普通的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
print(i)
带有break的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
if i==5:
break
print(i)
小总结:
2. continue
<1> for循环
带有continue的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
continue
print(x)
<2> while循环
带有continue的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
if i==5:
continue
print(i)
python中的字符串 列表 字典
字符串
一个有序的字符集合 不可变
1,可以使用for in语句进行迭代循环,返回元素
2,in类是于str.find()方法但是是返回布尔结果
str.find()返回的是位置
操作
查找字符串:
find 找不到返回-1
rfind 从右边
index 报错 都是从左边开始查找
rindex 从右边
统计字符串个数
count
替换字符串
replace 原字符串不变
切割
split 不包含隔开符,切割为一个列表
splitslines 按换行符去隔开
partition 包含隔开符
partition
首字母
capitaize 第一个位 首字母 大写
title 所有单词首字母
大小写变换
upper
lower
判断开头结尾
startswith
endswith
对齐
ljust
rjust
center
删除空白符
lstrip 左边
rstrip 右边
strip 两边
判断字符串的组成
isalpha 全为字母
isdigit 全为数子
isalnum 全为字母或数字
isspace 全为空格
将列表转换为字符串
join
L=['s','p','a','n']
例如: S=".join(L)
s='span'
列表操作 lisst[0] =值
操作
增加
append 在后面追加 原处修改,返回值None
extend 两个集合合并
insert 某 个位置插入
修改 =下标位修改
查找
in 查找元素是否在列表中 判断
not in true=false
index 返回元素的下标位
count 统计元素的次数
删除元素
del 根据下标位删除
pop 默认删除,并返回最后一个元素
remove 删除内容
排序
sort 原处修改,返回值None 保证元素类型相同 计较默认升序 reverse=True 倒叙
reverse 降序==[::-1]
元组()
里面的元素不能修改
可以按下标访问元素
内置函数==count
index
字典{} 使用键值存储==key-value,且键不能重复 没有顺序=下标 具有快速查询
操作
dit【key】=values
修改
通过key修改
添加
通过key添加,如果存在就修改,不存在就添加
删除元素
del
clean =不会立刻清理内存
常见函数
len()
字典中的键值个数
keys()
返回key列表
values()
返回values列表
items()
返回键值的元组
has_key() == in
判断键是否在字典中
如有字符串mystr = ‘hello wo shi zui shuai de ren jiu shi wo',以下是常见的操作
一、find
检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr.find(str, start=0, end=len(mystr))
二、index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr.index(str, start=0, end=len(mystr))
三、count
返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
四、replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, mystr.count(str1))
五、split
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
六、capitalize
把字符串的第一个字符大写
七、title
把字符串的每个单词首字母大写
mister.title()
八、startswith
检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
九、endswith
检查字符串是否以obj结束,如果是返回True,否则返回 False.
十、lower
转换 mystr 中所有大写字符为小写
十一、upper
转换 mystr 中的小写字母为大写
十二、ljust
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
十三、rjust
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
十四、center
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
十五、lstrip
删除 mystr 左边的空白字符
十六、rstrip
删除 mystr 字符串末尾的空白字符
十七、strip
删除mystr字符串两端的空白字符
mister.strip()
十八、partition
把mystr以str分割成三部分,str前,str和str后
十九、rpartition
类似于 partition()函数,不过是从右边开始.
二十、splitlines
按照行分隔,返回一个包含各行作为元素的列表
二十一、isalpha
如果 mystr 所有字符都是字母 则返回 True,否则返回 False
二十二、isdigit
如果 mystr 只包含数字则返回 True 否则返回 False.
二十三、isalnum
如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
二十四、isspace
如果 mystr 中只包含空格,则返回 True,否则返回 False.
二十五、join
mystr 中每个字符后面插入str,构造出一个新的字符串