飞道的博客

Python基础知识-pycharm版-02

403人阅读  评论(0)

链式赋值

当多个变量是同一个值时,可以同时赋值。

a=b=123
#等价于
a=123
b=123

系列解包赋值

注意一一对应,个数必须相同。

a,b,c=1,2,3
#等价于
a=1
b=2
c=3

该方法也可以实现变量间的值互换

a,b=1,2
a,b=b,a

这样输出结果就由原a=1,b=2变为a=2,b=1

常量

python实际上不支持常量定义,我们只是通过默认的命名规则提示自己这是常量。使用大写来表示常量

CONSTANT_VALUE=1#大写就相当于常量,实际上它依旧可以被更改

基本的内置数据类型

整型整数。例:2345,10,…
浮点型小数。例:3.14或使用科学计数法314e-2
布尔型真假,只包含Ture与False两种。
字符串型有字符串组成的序列。例:“关注”,“temmie”

数字能进行的运算

包含整数与浮点数,

运算符 说明 例子 结果
+ 加法 1+2 3
- 减法 2-1 1
* 乘法 2*2 4
/ 浮点数除法 4/2 2.0 注意结果是浮点数
// 整数除法 7//2 3 小数部分直接舍去,不是四舍五入
% 模(取余) 7%4 3
** 2**3 8

注意:除法的时候不允许0作除数。
如果想同时得到商和余数可以使用 divmod() 函数

增强型运算符

运算符 例子 等价
+= a+=2 a=a+2
-= a-=2 a=a-2
*= a*=2 a=a*2
/= a/=2 a=a/2
//= a//=2 a=a//2
**= a**=2 a=a**2
%= a%=2 a=a%2

比较运算符

运算符 描述 例子a,b=15,30
== 等于,比较对象的值是否相等 (a == b) 返回 False
!= 不等于, 比较两个对象的值是否不相等 (a != b) 返回 true
> 大于 ,返回 x 是否大于 y (a > b) 返回 False
< 小于,返回 x 是否小于 y (a < b) 返回 true
>= 大于等于,返回 x 是否大于等于 y (a >= b) 返回 False
<= 小于等于, 返回 x 是否小于等于 y (a <= b) 返回 true

逻辑运算符

运算符 格式
or 逻辑或 x or y
and 逻辑与 x and y
not 逻辑非 not x

什么true还是false,不如直接01表示看的直接,但这样有缺点

x y or返回值 and返回值
0 0 0 0
0 1 1 0
1 0 1 0
1 1 1 1
x not的返回值
0 1
1 0


注意表中所说的不计算,直接返回。这意味着你后面的数无论是什么,哪怕是会报错的内容,它都不会去管。
30/0会报错:不能将0作为除数

但是使用or时,如果前面已经为true,会略过后面不报错

同一运算符

运算符 描述
is is 是判断两个标识符是不是引用同一个对象
is not is not 是判断两个标识符是不是引用不同对象

==是比较的两个变量的值,而is是比较地址。
pycharm上试验没做出来效果,可能优化器又有变动了。

又尝试了几种方法

整数

python中包含十进制、二进制(0b 0B)01表示、八进制(0o 0O)0-7表示和十六进制(0x 0X)0-f表示
例:15

进制 表示
十进制 15
二进制 1111
八进制 17
十六进制 f

浮点数

float,可以使用正常表示方法3.14或科学计数法314e-2

布尔值

True真,False假本质上依旧是数字,可以与数相加。

字符串

字符串在定义好后无法改变。使用的是unicode编码,16位。
可以使用ord()把字符转化为unicode码;使用chr()把十进制数字转化为对应的字符

创建字符串

使用’或"
若果字符串中包含’,可以把外面的写成"。
使用三个单引号’’‘创建多行字符串。
空字符串:’’,使用length可以查询该字符长度为0。

可变字符串

需要使用io模块

import io
a='temmie!!'
print(a)
s=io.StringIO(a)
print(s)
b=s.getvalue()#获得字符
print(b)
s.seek(1)#指针移动到第二个字符
s.write('t')#在该位置写一个字符
c=s.getvalue()
print(c)

转义字符

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
单引号
" 双引号
\b 退格(Backspace)
\n 换行
\t 横向制表符
\r 回车

字符串拼接

使用 + 要求两侧必须都是字符串,或者直接空格也可以。拼接后是生成新的对象。

字符串复制

在字符串后写*次数

不换行打印

默认print的结尾是换行符,所以每次打印都在新的一行,也可以用end来指定最后的内容

控制台读取字符串

input(内容)从控制台读取字符串,括号内的内容是显示在控制台提示你输入的,接下来程序会等你输入并回车后继续。

提取字符

使用[]提取字符
从左向右的索引为0到n-1,也可以从右向左-1-到-n

字符替换

replace()实现替换,但要注意,这个替换是生成了新的对象,原对象没有变。

字符串切片

截取字符串

操作和说明 示例 结果
[:] 提取整个字符串 “abcdef”[:] “abcdef”
[start:]从 start 索引开始到结尾 “abcdef”[2:] “cdef”
[:end]从头开始直到 end-1 “abcdef”[:2] “ab”
[start :end]从 start 到 end-1 “abcdef” [2:4] “cd”
[start: end:step]从 start 提取到end-1,步长是 step “abcdef”[1:5:2] “bd”
实例 说明 结果
“abcdefghijklmnopqrstuvwxyz”[-3:] 倒数三个 “xyz”
“abcdefghijklmnopqrstuvwxyz”[-8:-3] 倒数第八个到倒数第三个(包头不包尾) ‘stuvw’
“abcdefghijklmnopqrstuvwxyz”[::-1] 步长为负,从右到左反向提取 ‘zyxwvutsrqponmlkjihgfedcba’

如果终止偏移量范围比实际的大,则取到最后就结束,不会报错。

字符串分割

split()基于指定的分割符对字符串进行分割。如不填写则默认按换行符、空格、制表符分割。

字符合并

join()函数,不写就是正常拼接,写的话就会在拼接位置加入字符。使用这个函数比+性能更高。
注意!的个数。

字符串比较

字符串驻留机制如果字符串符合python的标识符命名规则,则会驻留,如果给a与b同时赋值则两个用is比较是相等,如果不符合则不会驻留,两个的is比较为False。不过这个内容再pycharm中似乎不起作用。

字符串的比较使用 == 、 != 来进行字符串比较。使用 in 、 not in来判断字符串是否在指定字符串内

字符串常用的一些语法

a='我是temmie1024'
ans1=len(a)#字符串的长度
ans2=a.startswith('我是')#是否以 我是 开头
ans3=a.endswith('24')#是否以 24 结尾
ans4=a.find('m')#查找第一个 m 的位置
ans5=a.rfind('m')#查找最后一个 m 的位置
ans6=a.count("m")#查找 m 出现的次数
ans7=a.isalnum()#a 是否全部为字符或数字
print(ans1,ans2,ans3,ans4,ans5,ans6,ans7)

ans1="*s*x*t*".strip("*")##去除首尾*
ans2="*s*x*t*".lstrip("*")#去除首*
ans3="*s*x*t*".rstrip("*")#去除尾*
ans4=" sx t ".strip()#去除首尾空格,中间不算
print(ans1,ans2,ans3,ans4)

a='temmie eimmet'
ans1=a.capitalize()#产生新的字符串,首字母大写
ans2=a.title()#产生新的字符串,每个单词都首字母大写
ans3=a.upper()#产生新的字符串,所有字符全转成大写
ans4=ans3.lower()#产生新的字符串,所有字符全转成小写
ans5=ans1.swapcase()#产生新的字符串,所有字符全转成小写
print(ans1,'\n',ans2,'\n',ans3,'\n',ans4,'\n',ans5)

a="SXT"
a1=a.center(10,"*")#居中,使用*填充,总长度10
a2=a.center(10)#居中,使用空格填充,总长度10
a3=a.ljust(10,"*")#左对齐,使用型号填充,总长度10
print(a,'\n',a1,'\n',a2,'\n',a3)

a='temmie'
ans1=a.isalnum()#是否为字母或数字
ans2=a.isalpha()#检测字符串是否只由字母组成(含汉字)。
ans3=a.isdigit()#检测字符串是否只由数字组成。
ans4=a.isspace()#检测是否为空白符
ans5=a.isupper()#是否为大写字母
ans6=a.islower()#是否为小写字母
print(ans1,'\n',ans2,'\n',ans3,'\n',ans4,'\n',ans5,'\n',ans6)

字符串格式化

推荐使用.format()函数实现,{}作为占位符,是要填进去的内容

可以重复匹配

{}中可以写索引名,这样顺序就不需要一一对应了。

填充与对齐

:进行填充,数字表示总长度;使用^进行居中;<进行左对齐;>进行右对齐,如果不写符号用空格补齐。

a='名字是{name:!<9},是{type:!^4},但它真的是{type:?>6}吗?'
print(a.format(name='temmie',type='狗'))

数字格式化

浮点数通过f,整数通过d进行格式化。2f相当于浮点数保留两位小数

数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} 3.14 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为 2)
5 {:x<4d} 5xxx 数字补 x (填充右边, 宽度为 4)
10 {:x<4d} 10xx 数字补 x (填充右边, 宽度为 4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00E+09 指数记法
13 {:10d} (前面有八个空格)13 右对齐 (默认, 宽度为 10)
13 {:<10d} 13(后面有八个空格) 左对齐(宽度为 10)
13 {:^10d} 左边有四个空格)13(右边有四个空格) 中间对齐(宽度为 10)

类型转换

int()

1.可使浮点数舍去小数部分变为整数
2.可将布尔值(True)转化为1,(False)转化为0
3.字符串符合整数格式(不能包含中英文字符,小数)则转化为对应的整数,其他会报错。

自动转型
整数与浮点数混合运算,自动转换为浮点数

四舍五入
使用round()函数进行四舍五入

float()

用法与int类似

str()

实现数字转成字符串

获取时间

time.time()
获取的值是相对于1970年1月1日秒数。

练习

绘制一个方形并计算初始点与起始点的距离

import turtle
import math
x1,x2,x3,x4,y1,y2,y3,y4=50,50,-50,-50,50,-50,-50,50
turtle.width(10)
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
turtle.goto(x1,y1)
distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
print(distance)



转载:https://blog.csdn.net/Temmie1024/article/details/115702159
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场