论坛
社区入口
导读
快捷查看社区内的最新帖子,热门帖子!
广播
广播喊一下,大家都知道~
淘帖
优秀贴淘一下就可以了~还可以围观别人收集的专辑喔!
资源下载
社区相关推荐资源的下载链接
搜索
快捷导航
登录
腾讯QQ
注册
每日签到
Python 3.7.10 正式版下载
Python 3.8.8正式版下载
Python 3.9.2正式版下载
pyefun函数库
ဆ
热搜词
python教程
人工智能
神经网络
机器学习
python函数
本版
帖子
用户
问答互助
+关注
已有
4
人关注
+发表新主题
有个代码看不懂,求解读
[复制链接]
作者:
几个春夏
|
时间: 2022-2-23 23:03:59
|
已解决
|
1
337
几个春夏
当前离线
UID
10482
好友
帖子
阅读权限
10
收听
最后登录
1970-1-1
几个春夏
结帖率:
100%
(1/1)
发表于 2022-2-23 23:03:59
|
显示全部楼层
|
阅读模式
楼主结帖率: 100% (1/1)
5
金币
def
uuid_generator
():
uuid_pattern =
"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
uuid =
""
now_t =
int
(
round
(time.time() *
1000000
)) /
1000.0
print
(
len
(uuid_pattern))
for
i
in
uuid_pattern:
e = (
int
(now_t +
16
* random.random()) %
16
) |
0
now_t = math.floor(now_t /
16
)
if
i !=
"-"
:
uuid = uuid +
hex
(e
if
i ==
"x"
else
3
& e |
8
)[-
1
:]
else
:
uuid = uuid +
"-"
# print(uuid)
return
uuid
这是一个生成uuid的函数,然后里面有一个hex(e if i=="x" else 3 & I 8)[-1:]
完全看不懂是啥意思 &和I 知道是and 和or 但是这样写的混在一起就看不懂了 [-1:]是切片大概看明白了,但是结果也不是特别清楚
求教说,如果正常写一个if的话写出来是什么样子的 方便解读和理解,另外为什么要这样写呢?是简写的目的吗?初学者看起来真的很吃力
最佳答案
cbiqih
查看完整内容
if条件成立就返回前面的值, 否则返回else的值,后面的& | 是位运算符合 所以整体意思就是: 如果i是字符串x,就返回e的值, 否则返回 ( 3 & e | 8 ) 3是0b 0011 8是0b 1000 ( 3 & e | 8 )的结果就是 取 e值二进制的后两位,再替换第四位为1 hex函数是将数值转换成16进制字符串, [-1:]是取字符串的最后一位 ...
回复
使用道具
举报
主题提升卡
主题置顶卡
主题变色卡
cbiqih
当前离线
UID
10867
好友
帖子
阅读权限
10
收听
最后登录
1970-1-1
cbiqih
发表于 2022-2-23 23:04:00
|
显示全部楼层
这里的if esle写法是python的三元表达式
if条件成立就返回前面的值, 否则返回else的值,后面的& | 是位运算符合
所以整体意思就是:
如果i是字符串x,就返回e的值,
否则返回 ( 3 & e | 8 )
3是0b 0011
8是0b 1000
( 3 & e | 8 )的结果就是 取 e值二进制的后两位,再替换第四位为1
hex函数是将数值转换成16进制字符串, [-1:]是取字符串的最后一位
评分
参与人数
2
好评
+1
金币
+2
收起
理由
pnccm
+ 1
新技能已get√
prison
+ 2
感谢分享,很给力!~
查看全部评分
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发表新帖
回复
!jz_fbzt!
快速回复
!jz_sctz!
!jz_fhlb!
按钮
!jz_gzwx!
扫一扫,关注社区动态
返回顶部
快速回复
返回列表
返回顶部