2.1 语法基础
2.1.1 缩进分层
In [6]:
a = 3 b = 1 if a > b: print(a) #强制缩进,否则代码无法运行
3
2. 1.2 代码注释
In [14]:
#a = 1 ''' ddddddd 三个单引号或者三个双引号为多行注释 ''' print(123) #该条测试打印防止出现多行注释内容
123
2.1.3 断行
In [15]:
print(111);print(222) #用;来连接两个语句
111 222
In [29]:
print('111'\ '222')#\之后不能放任何字符或者单行注释
111222
2.2 输入/输出
2.2.1 输入
In [30]:
name = input('请输入任意字符:')
请输入任意字符:123
2.2.2 输出
In [32]:
print('a','b','c') print('a','b','c',sep=',') #sep多个要输出信息之间的分隔符,默认为空格,参看第一个 print('a','b','c',end=';') #end所要输出信息之后添加的符号,默认为换行符,结合第四个 print('e','f','g')
a b c a,b,c a b c;e f g
2.3 用PYTHON进行计算
2.3.1 算式与代数式运算
In [1]:
3*5/2+4*2
Out[1]:
15.5
In [3]:
2**3
Out[3]:
8
In [4]:
x = 3 2*x**2-x+4
Out[4]:
19
sin(x) 正弦 cos(x) 余弦 asin(x) 反正弦 acos(x) 反余弦 tan(x) 正切 atan(x) 余切 hypot(x,y) 直角三角形斜边长度 fomd(x,y) x/y余数 ceil(x) 取不小于x的最小整数 floor(x) 取不大于x的最大整数 fabs(x) 求绝对值 exp(x) x次幂 pow(x,y) 求x的y次幂 log10(x) 求x的10底对数 sqrt(x) 求x的平方根 pi π的值
In [5]:
import math #不是内建函数,需导入 math.sin(2)
Out[5]:
0.9092974268256817
In [10]:
import math x = 100 math.ceil(x)
Out[10]:
100
2.3.2 惊奇
In [11]:
0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
Out[11]:
0.8999999999999999
In [12]:
0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 == 0.9
Out[12]:
False
In [20]:
0.9-0.1-0.1-0.1-0.1-0.1-0.1-0.1-0.1-0.1<10**-9 #比较两个浮点数是否相等,看他们的差值是否小于一个极小的数即可
Out[20]:
True
3 python数据类型
3.1 简单数据类型
3.1.1 字符串
In [26]:
print('abc"def"') print("abc'def'") print(''' abcdef ''')
abc"def" abc'def' abcdef
1、转义字符
\n 换行符 \t 制表符(TAB) \r 回车 \\ “\”字符 \' 字符串中单引号 \" 字符串中双引号
In [28]:
print('abcd\nefg') print('abcd\tefg') print('abcd\\efg') print('abcd\'efg') print('abcd\"efg')
abcd efg abcd efg abcd\efg abcd'efg abcd"efg
2、字符串运算
In [30]:
print('aaa'+'bbb') #+连接字符串 print('python\t'*3) #*单字符串多次连接
aaabbb python python python
3、字符串处理
string.capitalize() 将字符串的第一个字母大写 string.count() 获得字符串某一子字符的个数 string.find() 获得字符串中某一子字符串的起始位置,无则返回-1 string.isalnum() 检测字符串是仅包含0-9A-Za-z string.isalpha() 检测字符串是仅包含A-Za-z string.isdigit() 检测字符串是仅包含数字 string.islower() 检测字符串是否均为小写 string.isspace() 检测字符串中所有字符是否均为空白字符 string.istitle() 检测字符串中的单词是否为首字母大写 string.isupper() 检测字符串是否均为大写字母 string.join() 连接字符串 string.lower() 将字符串全部转换为小写 string.split(sep,maxsplit) 分割字符串,sep指定分割的字符,maxsplit分割次数 string.swapcase() 将字符串中大写字母转换为小写,小写字母转换为大写 string.title() 将字符串中的单词首字母大写 string.upper() 将字符串中全部字母转换为大写 len(string) 获取字符串长度
In [54]:
test ='python学习测试文本python' print(test.capitalize()) print(test.count('o')) print(test.find('学')) print(test.isalnum()) print(test.islower()) print(test.isspace()) print(test.istitle()) print(test.join('study')) #这个挺有意思,每个字符都加入到字符串的首位 print(test.split()) print(test.split('o')) print(test.split('o',1)) print(test.swapcase()) print(test.title()) print(len(test))
Python学习测试文本python 2 6 True True False False spython学习测试文本pythontpython学习测试文本pythonupython学习测试文本pythondpython学习测试文本pythony ['python学习测试文本python'] ['pyth', 'n学习测试文本pyth', 'n'] ['pyth', 'n学习测试文本python'] PYTHON学习测试文本PYTHON Python学习测试文本Python 18
3.1.2 整数
0o[0O]24 八进制 0x[0X]3f 十六进制 0b[0B]101 二进制 这里的[]代表或者的意思,如0o24 = 0O24 第一位是零,第二位是字母O 十进制不得用0开头书写
In [57]:
print(0o24) print(0x3f) print(0b101)
20 63 5
** 乘方 * 乘法 / 除法 结果为浮点数,即使是两个整数相除 // 整除 14//4=3 % 取余 + 加法 - 减法 | 位或 ^ 位异或 & 位与 << 左移运算 >> 右移运算 优先级 ** *./.% +.- |^&<<>>
3.1.3 浮点数
带小数点的数 19. 0.098 -2e3 科学计数法,表示-2*10三次方
In [63]:
print(19/1) #结合上面的运算符号可以看出/得到的是浮点数 print(19//1) print(19.) print(19) print(0.098)
19.0 19 19.0 19 0.098
3.1.4 类型转换
str(object='') 整数和浮点数转换为字符 int(x,base=10) 数字转换为整数,base表示进制 float(x) 转换为浮点数
In [67]:
print(int(23.9)) print(int(23.001)) print(int('23')) print(float(3)) print(float('3')) print(float('3.2')) print(str(23)) print(str(23.2)) print(int('23.1')) #23.1 并不是整数,所以提示错误
23 23 23 3.0 3.0 3.2 23 23.2
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-67-c170b5b0f3d9> in <module>() 7 print(str(23)) 8 print(str(23.2)) ----> 9 print(int('23.1')) ValueError: invalid literal for int() with base 10: '23.1'
3.2 字符串进阶
3.2.1 原始字符串
In [70]:
r'abc\akdd' #将r后的内容全部转换为字符串,但是不能以\结尾 r'abc\'
File "<ipython-input-70-e8a9dadac6e9>", line 2 r'abc\' ^ SyntaxError: EOL while scanning string literal
3.2.2 格式化字符串
%c 单个字符 %d 十进制整数 %o 八进制整数 %s 字符串 %x 十六进制整数,其中的字母小写 %X 十六进制整数,其中的字符大写
In [74]:
print('I am a %s '% 'programment') print('I am a %s %s'% ('programment','加一点东西看看')) print('%d + %d = %d' % (2,3,2+3))
I am a programment I am a programment 加一点东西看看 2 + 3 = 5
3.2.3 中文字符串处理
In [85]:
wd = '我爱python' wd_utf8_bts = wd.encode() #默认为utf-8,可以使用gbk、gb2313等方式编码 print(wd_utf8_bts) wd_utf8_bts = wd_utf8_bts.decode() print(wd_utf8_bts) wd_utf8_bts = wd_utf8_bts.decode('gbk') #解码必须和编码时方式一致 print(wd_utf8_bts)
b'\xe6\x88\x91\xe7\x88\xb1python' 我爱python
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-85-09f0d61dd014> in <module>() 4 wd_utf8_bts = wd_utf8_bts.decode() 5 print(wd_utf8_bts) ----> 6 wd_utf8_bts = wd_utf8_bts.decode('gbk') #解码必须和编码时方式一致 7 print(wd_utf8_bts) AttributeError: 'str' object has no attribute 'decode'