单词
Help 帮助
Function 函数
Built-in(builtins)内置
Module 模块
Value 值
Stream 流
Default 默认
Format 格式化
digit 数字 %d
Required 必须 需要
一、变量
1. print函数
语法格式:
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
spe参数:分隔符
代码如下:
# 同时输出多个变量和字符串,指定分隔符
user_name = 'Charlie'
user_age = 8
print("读者名:", user_name, "年龄:", user_age, sep=' | ')
>> 读者名:|Charlie|年龄:|8
end参数:默认换行
转义字符:\n 换行 \t 制表符 \r 回车
# 设置end参数,指定输出之后不再换行
print(40, '\t', end="")
print(50, '\t', end="")
print(60, '\t', end="")
>>40 50 60
file参数:指定输出目标,默认到屏幕
f = open("poem.txt", "w") # 打开文件以便写入
print('沧海月明珠有泪', file=f)
print('蓝田日暖玉生烟', file=f)
f.close()
flush参数:控制输出缓存
2. 变量的命名规则
在使用标识符时,需要注意如下规则:
>标识符可以由字母、数字、下画线(_)组成,其中数字不能打头.
>标识符不能是Python关键字,但可以包含关键字.
>标识符不能包含空格.
3. 关键字和内置函数
关键字和内置函数不能作为标识符
(1)关键字
查看有哪些关键字:
import keyword
print(keyword.kwlist)
关键字 | 关键字 | 关键字 | 关键字 | 关键字 |
---|---|---|---|---|
False | None | True | and | as |
assert | break | class | continue | def |
del | elif | else | except | finally |
for | from | global | if | import |
in | is | lambda | nonlocal | not |
or | pass | raise | return | try |
while | with | yield | - | - |
1-1 as
- with…as…
- 导入模块起别名
- except结合使用
参考链接:https://blog.youkuaiyun.com/weixin_44306005/article/details/93975548
1-2 assert
条件为false时执,等价于 if not
1-3 finally
异常处理:try…finally 无论是否异常都执行finally
1-4 global
定义函数时,在函数内部对函数外的变量进行操作
链接:https://blog.youkuaiyun.com/weixin_40894921/article/details/88528159
1-5 lambda
创建匿名函数
语法:
lambda [arg1 [,arg2,…argn]]:expression
代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )
>>相加后的值为 : 30
>>相加后的值为 : 40
lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
1-6 nonlocal
在函数或其他作用域中使用外层(非全局)变量
链接:https://blog.youkuaiyun.com/Candance_star/article/details/91991225
1-7 yield
带有 yield 的函数在 Python 中被称之为 generator(生成器)
举例:如何生成斐波那契数列
链接:https://www.runoob.com/w3cnote/python-yield-used-analysis.html
一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。
yield 的好处是显而易见的,把一个函数改写为一个 generator 就获得了迭代能力,比起用类的实例保存状态来计算下一个 next() 的值,不仅代码简洁,而且执行流程异常清晰。
(2)内置函数
内置函数 | 内置函数 | 内置函数 | 内置函数 | 内置函数 |
---|---|---|---|---|
abs() | all() | any() | basestring() | bin() |
bool() | batearray() | callable() | chr() | classmethod() |
cmp() | compile() | complex() | delattr() | dict() |
dir() | divmod() | enumerate() | eval() | execfile() |
file() | filter() | float() | format() | frozenset() |
getattr() | globals() | hasattr() | hash() | help() |
hex() | id() | input() | int() | isinstance() |
issubclass() | iter() | len() | list() | locals() |
long() | map() | max() | memoryview() | min() |
next() | object() | oct() | open() | ord() |
pow() | print() | property() | range() | raw_input() |
reduce() | reload() | repr() | reversed() | zip() |
round() | set() | setattr() ** | slice()** | sorted() |
staticmethod() | str() | sum() | super() | tuple() |
type() | unichr() | unicode() | vars() | xrange() |
Zip() | __ import__() | apply() | buffer() | coerce() |
intern | - | - | - | - |
chr()
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
dir()
列出指定类或模块包含的全部内容(包含函数、方法、类、变量)
dir(str)
format()
字符串格式化输出
方式:1.使用占位符 %s %d %f 2.format函数
format是一个字符串中的函数 ‘’.format()
age=2
s='已经上'
nessage = '乔治说:我今年{}岁了,{}幼儿园!'.format(age,s)
print(message)
isinstance()
用于判断某个变量是否为指定类型的实例,其中前一个参数是要判断的变量,后一个参数是类型。
代码如下:
ele = 23
if isintance(ele, int) or isintance(ele, float):
print(ele)
>> 23
raw_input()
python 2.x
repr()
- 将数值转换为字符串
- 以python表达式的形式来表示值(双引号变成单引号)
代码如下:
st = " I will very happy!"
print(st)
print(repr(st))
>> I will very happy!
>> ' I will very happy!'
reversed()
该函数可接收各种序列(元组、列表、区间等)参数,然后返回一个“反序排列”的迭代器,该函数对参数本身不会产生任何影响。
代码如下:
a = range (10)
b = [x for x in reversed (a)]
print(b)
>> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
.
二、字符串
1. 长字符串(\)
转义字符(\)对换行符进行转义
代码如下:
s2 = 'The quick brown fox \
jumps over the lazy dog'
print(s2)
2. 原始字符串(r开头)
r’C:\user\pthon3.8\xcx’
原始字符串中有引号,需要对引号进行转义
代码如下:
# 原始字符串包含的引号,同样需要转义
s2 = r'"Let\'s go", said Charlie'
print(s2)
>> "Let\'s go", said Charlie
# 原始字符串结尾处包含反斜线
s3 = r'Good Morning' '\\'
print(s3)
>> Good Morning\
3. 转义字符(\n)
支持的转义字符:
转义字符 | 说明 |
---|---|
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
" | 双引号 |
’ | 单引号 |
\ | 反斜线 |
代码如下:
s2 ='商品名\t\t单价\t\t数*\t\t总价,
s3 ='疯狂Java讲义\tl08\t\t2\t\t216,
print(s2)
print(s3)
>>商品名 单价 数量 总价
>>疯狂Java讲义 108 2 216
4. 字符串格式化(%)
代码如下:
user = "Charli"
age = 8
# 格式化字符串中有两个占位符,第三部分也应该提供两个变量
pzint("%« is a %s y«ars old boy" % (user , age))
转换说明符:
转换说明符 | 说明 |
---|---|
d,i | 转换为带符号的十进制形式的整数 |
o | 转换为带符号的八进制形式的整数 |
x | 转换为带符号的十六进制形式的整数 |
X | 转换为带符号的十六进制形式的整数 |
e | 转换为科学计数法表示的浮点数(e小写) |
E | 转换为科学计数法表示的浮点数(E小写) |
f,F | 转换为十进制形式的浮点数 |
g | 智能选择使用f或e格式 |
G | 智能选择使用F或E格式 |
C | 转换为单字符(只接受整数或单字符字符串) |
r | 使用repr()将变量或表达式转换为字符串 |
s | 使用repr()将变量或表达式转换为字符串 |
代码如下:
num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)
>>num is: -28
>>num is: -28
>>num is: -34
>>num is: -1c
>>num is: -1c
>>num is: -28
备注:
从上面的输出结果可以看岀,此时指定了字符串的最小宽度为6,因此程序转换数值时总宽度为6,程序自动在数值前面补充了三个空格。
在默认情况下,转换出来的字符串总是右对齐的,不够宽度时左边补充空格。Python也允许在最小宽度之前添加一个标志来改变这种行为,Python支持如下标志。
-:指定左对齐。
+:表示数值总要带着符号(正数带"+”,负数带“-”)。
0:表示不补充空格,而是补充0。
这三个标志可以同时存在。
代码如下:
# 最小宽度为0,左边补0
print(nnum2 is: %06dM % num2)
# 最小宽度为6,左边补0,总带上符号
print (*'num2 is: %+06dM % num2)
# 最小宽度为6,左对齐
print(Hnum2 is: %-6dM % num2)
>>num2 is: 000030
>>num2 is: +00030
>>num2 is: 30
浮点数的小数点数,字符串的个数
代码如下:
my_value = 3.001415926535
# 最小宽度为8,小数点后保留3位
print (Mmy__value is: %8.3f ** % my_value)
# 最小宽度为8,小数点后保留3位,左近补0
print (*'my__value is: %08.3f" % my__value)
# 最小宽度为8,小数点后保留3位,左边补0,始终带符号
print (Mmy_value is: %+08.3ff, % my__value)
the__name = nCharlieH
# 貝裸留3个字符
print(Hthe name is: %.3sn % the_name) # 输出 Ch&
# 只保留2个字符,最小宽度为10 一
printthe name is: %10.2sn % the name)
my_value is: 3.001
my_value is:0003.001
my_value is:+003.001
the name is:Cha
the name is: Ch
5. 序列相关方法(s[2])
代码如下:
s = 'crazyit.org is very good'
# 获取s中索引2的字符
print (s[2]) # 输出 a
6. 大小写相关方法(str类)
dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
help():査看某个函数或方法的帮助文档。
# 查看str类中包含的全部内容
dir(str)
title():将每个单词的首字母改为大写.
lower():将整个字符串改为小写。
upper():将整个字符串改为大写。
capwords():将每个单次的首字母变成大写
7. 删除空白(str类)
strip():删除字符串前后的空白。
Istrip():删除字符串前面(左边)的空白。
rstrip():删除字符串后面(右边)的空白。
8. 查找、替换相关方法(str类)
startswith():判断字符串是否以指定子串开头。
endswith():判断字符串是否以指定子串结尾。
find():査找指定子串在字符串中出现的位置,如果没有找到指定子串,则返回-1。
index():査找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发ValueError错误。
replace():使用指定子串替换字符串中的目标子串。
translate():使用指定的翻译映射表对字符串执行替换。
# 将字符串中的所有it替换成xxxx
print(s・ replace('it', 'xxxx'))
# 将字符串中1个让替换成xxxx
print(s.replace('it', 'xxxx', 1))
9. 分割、连接方法(str类)
split():将字符串按指定分割符分割成多个短语。
join():将多个短语连接成字符串。
s = 'crazyit.org is a good site'
# 使用空白对字符串进行分割
print (s. split ()) # 输出['crazyit.org', 'is', 'good', 'site']
# 使用空白对字符串进行分割,最多只分割前两个单词
print (s.split (None, 2)) # 输出['crazyit.org', 'is', 'a good site' ]
# 使用点进行分割
print (s.split ('.')) # 输出['crazyit', 'org is a good site* ]
mylist = s.split ()
# 使用'/'作为分割符,将mylist连接成字符串
print (' / * .join (mylist)) # 输出 crazyit. org/is/a/good/site
# 使用作为分割符,将mylist连接成字符串
print (• r ' .join (mylist)) # 输出 ceazYit.oirg,:bs,a,good, site
三、运算符
1. 赋值运算符(=)
2. 算数运算符(+ - * / // % **)
+:加法运算符
-:减法运算符
*:乘法运算符
/ :除法运算符
//:整除运算符
%:求余运算符
**:乘方运算符
3. 位运算符(& | ^ ~ << >>)
&:按位与
I:按位或
^:按位异或
~:按位取反
«:左位移运算符
»:右位移运算符
第一个操作数 | 第二个操作数 | 按位与 | 按位或 | 按位异或 |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
代码如下:
# 将输出1
print(5 & 9)
# 将输出13
print(5 | 9)
a = -5
# 将输出4
print(~a) # 取反
# 将输出12
print(5 ^ 9) # 异或
5 & 9运算过程
00000101
& 00001001
——————————
00000001
-5取反运算过程
-5的原码:10000000000000000000000000000101
原码除符号位外取反得到反码
-5的反码:11111111111111111111111111111010
负数在计算机里以补码存在,这就是-5;反码加1得到补码
-5的补码:11111111111111111111111111111011
正数的补码和原码相同,下面就是4;取反后最高位(符号位为0),成为正数
-5的取反:00000000000000000000000000000100
4. 索引运算符(a[2:8:2])
5. 比较运算符(bool类型)
6. 逻辑运算符(and or not)
7. 三目运算符(if)
语法格式:
True_statement if expression else False_statement
代码如下:
a = 5
b = 3
st = "a 大于 b" if a > b else 'a 不大于 b'
# 输出"a大于b”
print(st)
8. 运算符的优先级
运算符说明 | Python运算符 | 优先级 |
---|---|---|
索引运算符 | x[index] 或 x[index:index2[:index3]] | 18、19 |
属性访问 | x.attribute | 17 |
乘方 | ** | 16 |
按位取反 | ~ | 15 |
符号运算符 | +或- | 14 |
乘、除 | *、/、//、% | 13 |
加、减 | +、- | 12 |
位移 | >>、<< | 11 |
按位与 | & | 10 |
按位异或 | ^ | 9 |
按位或 | l | 8 |
比较运算符 | ==、!=、>、>=、<、<= | 7 |
is运算符 | is、is not | 6 |
in运算符 | in、not in | 5 |
逻辑非 | not | 4 |
逻辑与 | and | 3 |
逻辑或 | or | 2 |