uni-app 小宠物 - 会说话的小鸟

news2024/11/18 13:30:10

在 template 中

<view class="container">
  <view class="external-shape">
    <view class="face-box">
      <view class="eye-box eye-left">
        <view class="eyeball-box eyeball-left">
          <span class="pupil-box"><span class="pupil-reflex"></span></span>
        </view>
      </view>
      <view class="eye-box eye-right">
        <view class="eyeball-box eyeball-right">
          <span class="pupil-box"><span class="pupil-reflex"></span></span>
        </view>
      </view>
      <view class="nose-box">
        <view class="nostril-tip"></view>
        <view class="nostril-tip"></view>
      </view>
      <view class="mouth-box">
        <view class="upper-teeth"></view>
        <view class="lower-teeth"></view>
      </view>
    </view>
  </view>
</view>

在 style 中

.container {
  $overall: #0097d9; // 整体背景
  // 眼睛部分
  $eyeBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 眼睛部分的阴影
  $eyeLeftBg: linear-gradient(to bottom, #fdfdfd, #c3efea); // 左眼背景
  $eyeRightBg: linear-gradient(to bottom, #fdfdfd, #e6d6f6); // 右眼背景
  // 眼球部分
  $eyeballLeftBg: linear-gradient(135deg, rgba(188, 248, 177, 0.7), #2fa38c 75%); // 左眼球背景
  $eyeballRightBg: linear-gradient(135deg, #f1a183, #8535cd); // 右眼球背景
  // 瞳孔部分
  $pupilBg: #2c2f32; // 瞳孔部分的背景
  $pupilBoxShadow: 0rpx 0rpx 20rpx rgba(0, 0, 0, 0.2); // 瞳孔部分的阴影
  $pupilReflexBg: #ebebeb; // 瞳孔反射部分的背景
  $pupilReflexBoxShadow: 20rpx 20rpx 20rpx rgba(255, 255, 255, 0.2); // 瞳孔反射部分的阴影
  // 鼻子部分
  $nostrilBg: rgba(0, 0, 0, 0.5); // 鼻孔的背景
  $nostrilBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.1); // 鼻孔的阴影
  // 嘴巴部分
  $mouthBg: #810332; // 嘴巴背景
  $mouthBorder: 50rpx solid #ffc333; // 嘴巴的边框
  $mouthBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 嘴巴的阴影
  $mouthBeforeBg: #400018; // 嘴巴内背景(在元素的内容前面插入新内容)[伪元素]
  $mouthAfterBg: #dc1b50; // 嘴巴内舌头(在元素的内容之后插入新内容)[伪元素]
  $upperBg: #fff; // 牙齿背景
  position: fixed;
  top: -70rpx;
  right: -150rpx;
  transform: scale(0.24);
  -o-transform: scale(0.24); // Opera
  -ms-transform: scale(0.24); // IE 9
  -moz-transform: scale(0.24); // Firefox
  -webkit-transform: scale(0.24); // Safari 和 Chrome
  z-index: 9999;
  .external-shape {
    display: flex;
    justify-content: center;
    position: relative;
    width: 340rpx;
    height: 800rpx;
    border-top-left-radius: 400rpx;
    border-top-right-radius: 400rpx;
    background-color: $overall;
    box-shadow: 40rpx 40rpx 120rpx $overall;
    transform: rotate(-50deg);
    -o-transform: rotate(-50deg); // Opera
    -ms-transform: rotate(-50deg); // IE 9
    -moz-transform: rotate(-50deg); // Firefox
    -webkit-transform: rotate(-50deg); // Safari 和 Chrome
  }
  .face-box {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: absolute;
    top: 14%;
    width: 75%;
    height: 320rpx;
  }
  // 眼睛部分
  .eye-box {
    position: absolute;
    top: -10%;
    width: 130rpx;
    height: 130rpx;
    margin: 6rpx;
    background: #fff;
    transform: translateX(-50%);
    -o-transform: translateX(-50%); // Opera
    -ms-transform: translateX(-50%); // IE 9
    -moz-transform: translateX(-50%); // Firefox
    -webkit-transform: translateX(-50%); // Safari 和 Chrome
    box-shadow: $eyeBoxShadow;
    border-radius: 100%;
    // 眼球部分
    .eyeball-box {
      position: absolute;
      top: 25%;
      left: 50%;
      width: 55%;
      height: 55%;
      transform: translate(-50%);
      -o-transform: translate(-50%); // Opera
      -ms-transform: translate(-50%); // IE 9
      -moz-transform: translate(-50%); // Firefox
      -webkit-transform: translate(-50%); // Safari 和 Chrome
      border-radius: 100%;
      z-index: 100;
      // 瞳孔部分
      .pupil-box {
        position: absolute;
        top: 25%;
        left: 50%;
        width: 55%;
        height: 55%;
        background: $pupilBg;
        transform: translate(-50%);
        -o-transform: translate(-50%); // Opera
        -ms-transform: translate(-50%); // IE 9
        -moz-transform: translate(-50%); // Firefox
        -webkit-transform: translate(-50%); // Safari 和 Chrome
        box-shadow: $pupilBoxShadow;
        border-radius: 100%;
        .pupil-reflex {
          position: absolute;
          top: 10%;
          left: 25%;
          width: 14rpx;
          height: 14rpx;
          background: $pupilReflexBg;
          transform: translate(-50%);
          -o-transform: translate(-50%); // Opera
          -ms-transform: translate(-50%); // IE 9
          -moz-transform: translate(-50%); // Firefox
          -webkit-transform: translate(-50%); // Safari 和 Chrome
          box-shadow: $pupilReflexBoxShadow;
          border-radius: 100%;
        }
      }
    }
    // 左眼球
    .eyeball-left {
      background: $eyeballLeftBg;
    }
    // 右眼球
    .eyeball-right {
      background: $eyeballRightBg;
    }
  }
  .eye-left {
    // 左眼
    left: 10%;
    background: $eyeLeftBg;
  }
  .eye-right {
    // 右眼
    left: 85%;
    background: $eyeRightBg;
  }
  // 鼻子部分
  .nose-box {
    top: 50%;
    display: flex;
    justify-content: space-between;
    width: 28%;
    height: auto;
    margin-bottom: 20rpx;
    .nostril-tip {
      width: 16rpx;
      height: 24rpx;
      background: $nostrilBg;
      box-shadow: $nostrilBoxShadow;
      border-radius: 40rpx;
    }
  }
  // 嘴巴部分
  .mouth-box {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    height: 0%;
    overflow: hidden;
    background-color: $mouthBg;
    animation: mouth-animate 1.75s infinite;
    border: $mouthBorder;
    box-shadow: $mouthBoxShadow;
    box-sizing: border-box;
    border-radius: 200rpx;
    // 上牙齿
    .upper-teeth {
      position: absolute;
      top: -60rpx;
      width: 340rpx;
      height: 60rpx;
      background-color: $upperBg;
      animation: upper-teeth-animate 1.75s infinite;
      border-bottom-left-radius: 20rpx;
      border-bottom-right-radius: 20rpx;
      z-index: 100;
    }
    // 下牙齿
    .lower-teeth {
      position: absolute;
      bottom: 0;
      width: 200rpx;
      height: 60rpx;
      background-color: $upperBg;
      animation: lower-teeth-animate 1.75s infinite;
      border-top-left-radius: 20rpx;
      border-top-right-radius: 20rpx;
      z-index: 100;
    }
  }
  .mouth-box::before {
    content: "";
    position: absolute;
    width: 300rpx;
    height: 160rpx;
    background-color: $mouthBeforeBg;
    border-radius: 200rpx;
  }
  .mouth-box::after {
    content: "";
    position: absolute;
    bottom: -160rpx;
    width: 320rpx;
    height: 160rpx;
    background-color: $mouthAfterBg;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    animation: mouth-after-animate 1.75s infinite;
  }
  // 动画部分
  @keyframes upper-teeth-animate {
    0%,
    10%,
    80%,
    100% {
      top: -60rpx;
    }
    20% {
      top: 0rpx;
    }
    30% {
      top: -40rpx;
    }
    40% {
      top: -0rpx;
    }
    50% {
      top: -50rpx;
    }
    70% {
      top: 0rpx;
    }
  }
  @keyframes lower-teeth-animate {
    0%,
    10%,
    80%,
    100% {
      bottom: -60rpx;
    }
    20% {
      bottom: 0rpx;
    }
    30% {
      bottom: -40rpx;
    }
    40% {
      bottom: -0rpx;
    }
    50% {
      bottom: -50rpx;
    }
    70% {
      bottom: 0rpx;
    }
  }
  @keyframes mouth-animate {
    0%,
    10%,
    100% {
      width: 100%;
      height: 0%;
    }
    15% {
      width: 90%;
      height: 30%;
    }
    20% {
      width: 50%;
      height: 70%;
    }
    25% {
      width: 70%;
      height: 70%;
    }
    30% {
      width: 80%;
      height: 60%;
    }
    35% {
      width: 60%;
      height: 70%;
    }
    40% {
      width: 55%;
      height: 75%;
    }
    45% {
      width: 50%;
      height: 90%;
    }
    50% {
      width: 40%;
      height: 70%;
    }
    55% {
      width: 70%;
      height: 95%;
    }
    60% {
      width: 40%;
      height: 50%;
    }
    65% {
      width: 100%;
      height: 60%;
    }
    70% {
      width: 100%;
      height: 70%;
    }
    75% {
      width: 90%;
      height: 70%;
    }
    80% {
      width: 50%;
      height: 70%;
    }
    85% {
      width: 90%;
      height: 50%;
    }
    85% {
      width: 40%;
      height: 70%;
    }
    90% {
      width: 90%;
      height: 30%;
    }
    95% {
      width: 100%;
      height: 10%;
    }
  }
  @keyframes mouth-after-animate {
    0%,
    20%,
    100% {
      bottom: -160rpx;
    }
    30%,
    90% {
      bottom: -80rpx;
    }
    40% {
      bottom: -90rpx;
    }
    50% {
      bottom: -100rpx;
    }
    70% {
      bottom: -160rpx;
    }
    90% {
      bottom: -80rpx;
    }
  }
}

完整源码

<!-- 会说话的小鸟 -->
<template>
  <view>
    <view class="container">
      <view class="external-shape">
        <view class="face-box">
          <view class="eye-box eye-left">
            <view class="eyeball-box eyeball-left">
              <span class="pupil-box"><span class="pupil-reflex"></span></span>
            </view>
          </view>
          <view class="eye-box eye-right">
            <view class="eyeball-box eyeball-right">
              <span class="pupil-box"><span class="pupil-reflex"></span></span>
            </view>
          </view>
          <view class="nose-box">
            <view class="nostril-tip"></view>
            <view class="nostril-tip"></view>
          </view>
          <view class="mouth-box">
            <view class="upper-teeth"></view>
            <view class="lower-teeth"></view>
          </view>
        </view>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {};
  },
  onLoad() {},
  methods: {}
};
</script>

<style lang="scss" scoped>
.container {
  $overall: #0097d9; // 整体背景
  // 眼睛部分
  $eyeBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 眼睛部分的阴影
  $eyeLeftBg: linear-gradient(to bottom, #fdfdfd, #c3efea); // 左眼背景
  $eyeRightBg: linear-gradient(to bottom, #fdfdfd, #e6d6f6); // 右眼背景
  // 眼球部分
  $eyeballLeftBg: linear-gradient(135deg, rgba(188, 248, 177, 0.7), #2fa38c 75%); // 左眼球背景
  $eyeballRightBg: linear-gradient(135deg, #f1a183, #8535cd); // 右眼球背景
  // 瞳孔部分
  $pupilBg: #2c2f32; // 瞳孔部分的背景
  $pupilBoxShadow: 0rpx 0rpx 20rpx rgba(0, 0, 0, 0.2); // 瞳孔部分的阴影
  $pupilReflexBg: #ebebeb; // 瞳孔反射部分的背景
  $pupilReflexBoxShadow: 20rpx 20rpx 20rpx rgba(255, 255, 255, 0.2); // 瞳孔反射部分的阴影
  // 鼻子部分
  $nostrilBg: rgba(0, 0, 0, 0.5); // 鼻孔的背景
  $nostrilBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.1); // 鼻孔的阴影
  // 嘴巴部分
  $mouthBg: #810332; // 嘴巴背景
  $mouthBorder: 50rpx solid #ffc333; // 嘴巴的边框
  $mouthBoxShadow: 8rpx 16rpx 10rpx rgba(0, 0, 0, 0.2); // 嘴巴的阴影
  $mouthBeforeBg: #400018; // 嘴巴内背景(在元素的内容前面插入新内容)[伪元素]
  $mouthAfterBg: #dc1b50; // 嘴巴内舌头(在元素的内容之后插入新内容)[伪元素]
  $upperBg: #fff; // 牙齿背景
  position: fixed;
  top: -70rpx;
  right: -150rpx;
  transform: scale(0.24);
  -o-transform: scale(0.24); // Opera
  -ms-transform: scale(0.24); // IE 9
  -moz-transform: scale(0.24); // Firefox
  -webkit-transform: scale(0.24); // Safari 和 Chrome
  z-index: 9999;
  .external-shape {
    display: flex;
    justify-content: center;
    position: relative;
    width: 340rpx;
    height: 800rpx;
    border-top-left-radius: 400rpx;
    border-top-right-radius: 400rpx;
    background-color: $overall;
    box-shadow: 40rpx 40rpx 120rpx $overall;
    transform: rotate(-50deg);
    -o-transform: rotate(-50deg); // Opera
    -ms-transform: rotate(-50deg); // IE 9
    -moz-transform: rotate(-50deg); // Firefox
    -webkit-transform: rotate(-50deg); // Safari 和 Chrome
  }
  .face-box {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: absolute;
    top: 14%;
    width: 75%;
    height: 320rpx;
  }
  // 眼睛部分
  .eye-box {
    position: absolute;
    top: -10%;
    width: 130rpx;
    height: 130rpx;
    margin: 6rpx;
    background: #fff;
    transform: translateX(-50%);
    -o-transform: translateX(-50%); // Opera
    -ms-transform: translateX(-50%); // IE 9
    -moz-transform: translateX(-50%); // Firefox
    -webkit-transform: translateX(-50%); // Safari 和 Chrome
    box-shadow: $eyeBoxShadow;
    border-radius: 100%;
    // 眼球部分
    .eyeball-box {
      position: absolute;
      top: 25%;
      left: 50%;
      width: 55%;
      height: 55%;
      transform: translate(-50%);
      -o-transform: translate(-50%); // Opera
      -ms-transform: translate(-50%); // IE 9
      -moz-transform: translate(-50%); // Firefox
      -webkit-transform: translate(-50%); // Safari 和 Chrome
      border-radius: 100%;
      z-index: 100;
      // 瞳孔部分
      .pupil-box {
        position: absolute;
        top: 25%;
        left: 50%;
        width: 55%;
        height: 55%;
        background: $pupilBg;
        transform: translate(-50%);
        -o-transform: translate(-50%); // Opera
        -ms-transform: translate(-50%); // IE 9
        -moz-transform: translate(-50%); // Firefox
        -webkit-transform: translate(-50%); // Safari 和 Chrome
        box-shadow: $pupilBoxShadow;
        border-radius: 100%;
        .pupil-reflex {
          position: absolute;
          top: 10%;
          left: 25%;
          width: 14rpx;
          height: 14rpx;
          background: $pupilReflexBg;
          transform: translate(-50%);
          -o-transform: translate(-50%); // Opera
          -ms-transform: translate(-50%); // IE 9
          -moz-transform: translate(-50%); // Firefox
          -webkit-transform: translate(-50%); // Safari 和 Chrome
          box-shadow: $pupilReflexBoxShadow;
          border-radius: 100%;
        }
      }
    }
    // 左眼球
    .eyeball-left {
      background: $eyeballLeftBg;
    }
    // 右眼球
    .eyeball-right {
      background: $eyeballRightBg;
    }
  }
  .eye-left {
    // 左眼
    left: 10%;
    background: $eyeLeftBg;
  }
  .eye-right {
    // 右眼
    left: 85%;
    background: $eyeRightBg;
  }
  // 鼻子部分
  .nose-box {
    top: 50%;
    display: flex;
    justify-content: space-between;
    width: 28%;
    height: auto;
    margin-bottom: 20rpx;
    .nostril-tip {
      width: 16rpx;
      height: 24rpx;
      background: $nostrilBg;
      box-shadow: $nostrilBoxShadow;
      border-radius: 40rpx;
    }
  }
  // 嘴巴部分
  .mouth-box {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    height: 0%;
    overflow: hidden;
    background-color: $mouthBg;
    animation: mouth-animate 1.75s infinite;
    border: $mouthBorder;
    box-shadow: $mouthBoxShadow;
    box-sizing: border-box;
    border-radius: 200rpx;
    // 上牙齿
    .upper-teeth {
      position: absolute;
      top: -60rpx;
      width: 340rpx;
      height: 60rpx;
      background-color: $upperBg;
      animation: upper-teeth-animate 1.75s infinite;
      border-bottom-left-radius: 20rpx;
      border-bottom-right-radius: 20rpx;
      z-index: 100;
    }
    // 下牙齿
    .lower-teeth {
      position: absolute;
      bottom: 0;
      width: 200rpx;
      height: 60rpx;
      background-color: $upperBg;
      animation: lower-teeth-animate 1.75s infinite;
      border-top-left-radius: 20rpx;
      border-top-right-radius: 20rpx;
      z-index: 100;
    }
  }
  .mouth-box::before {
    content: "";
    position: absolute;
    width: 300rpx;
    height: 160rpx;
    background-color: $mouthBeforeBg;
    border-radius: 200rpx;
  }
  .mouth-box::after {
    content: "";
    position: absolute;
    bottom: -160rpx;
    width: 320rpx;
    height: 160rpx;
    background-color: $mouthAfterBg;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    animation: mouth-after-animate 1.75s infinite;
  }
  // 动画部分
  @keyframes upper-teeth-animate {
    0%,
    10%,
    80%,
    100% {
      top: -60rpx;
    }
    20% {
      top: 0rpx;
    }
    30% {
      top: -40rpx;
    }
    40% {
      top: -0rpx;
    }
    50% {
      top: -50rpx;
    }
    70% {
      top: 0rpx;
    }
  }
  @keyframes lower-teeth-animate {
    0%,
    10%,
    80%,
    100% {
      bottom: -60rpx;
    }
    20% {
      bottom: 0rpx;
    }
    30% {
      bottom: -40rpx;
    }
    40% {
      bottom: -0rpx;
    }
    50% {
      bottom: -50rpx;
    }
    70% {
      bottom: 0rpx;
    }
  }
  @keyframes mouth-animate {
    0%,
    10%,
    100% {
      width: 100%;
      height: 0%;
    }
    15% {
      width: 90%;
      height: 30%;
    }
    20% {
      width: 50%;
      height: 70%;
    }
    25% {
      width: 70%;
      height: 70%;
    }
    30% {
      width: 80%;
      height: 60%;
    }
    35% {
      width: 60%;
      height: 70%;
    }
    40% {
      width: 55%;
      height: 75%;
    }
    45% {
      width: 50%;
      height: 90%;
    }
    50% {
      width: 40%;
      height: 70%;
    }
    55% {
      width: 70%;
      height: 95%;
    }
    60% {
      width: 40%;
      height: 50%;
    }
    65% {
      width: 100%;
      height: 60%;
    }
    70% {
      width: 100%;
      height: 70%;
    }
    75% {
      width: 90%;
      height: 70%;
    }
    80% {
      width: 50%;
      height: 70%;
    }
    85% {
      width: 90%;
      height: 50%;
    }
    85% {
      width: 40%;
      height: 70%;
    }
    90% {
      width: 90%;
      height: 30%;
    }
    95% {
      width: 100%;
      height: 10%;
    }
  }
  @keyframes mouth-after-animate {
    0%,
    20%,
    100% {
      bottom: -160rpx;
    }
    30%,
    90% {
      bottom: -80rpx;
    }
    40% {
      bottom: -90rpx;
    }
    50% {
      bottom: -100rpx;
    }
    70% {
      bottom: -160rpx;
    }
    90% {
      bottom: -80rpx;
    }
  }
}
</style>

参考:【会说话的小鸟】给你的微信小程序加一个宠物吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1124902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建nexus私服部署项目

目录 1、前言 2、添加release和snapshot版本库 3、配置idea中的Maven设置 4、配置maven的settings.xml文件 5、项目中使用maven部署 1、前言 前文主要讲述了maven私服nexus的搭建&#xff1a;maven私服nexus搭建mybatisplus使用-CSDN博客 本文将继续讲述搭建nexus私服有…

img标签如何将<svg></svg>数据渲染出来

要将 ​​<svg></svg>​​​ 数据插入到 ​​<img>​​ 标签中&#xff0c;你可以使用以下两种方法&#xff1a; 方法一&#xff1a;使用 Data URL 你可以将 ​​<svg></svg>​​ 数据编码为 Data URL&#xff0c;并将其作为 ​​<img>​​…

“游蛇”黑产团伙专题分析报告

目录 ​编辑 01概览 02黑产团伙攻击手段 2.1 恶意程序传播 双击类恶意程序 跳图类恶意程序 损坏类恶意程序 2.2 恶意程序执行 可信站点 黑产团伙基础设施 03黑产团伙的几种变现方式 3.1 伪装身份后实施诈骗 3.2 恶意拉群后实施诈骗 04防护、排查与处置 01概览 “…

手写SVG图片

有时候QT中可能会需要一些简单的SVG图片,但是网上的质量参差不齐,想要满意的SVG图片,我们可以尝试直接手写的方法. 新建文本文档,将以下代码复制进去,修改后缀名为.svg,保存 <?xml version"1.0" encoding"utf-8"?> <svg xmlns"http://www…

QTday06(人脸识别项目前置知识)

qt版本5.4.0&#xff1a;旧版本的qt&#xff0c;为啥要用旧版本的我也不知道 实现结果&#xff1a; 调用系统摄像头&#xff0c;用红框框住画面中的人头 代码&#xff1a; pro&#xff1a; #------------------------------------------------- # # Project created by QtC…

通过热敏电阻计算温度(二)---ODrive实现分析

文章目录 通过热敏电阻计算温度&#xff08;二&#xff09;---ODrive实现分析测量原理图计算分析计算拟合的多项式系数根据多项式方程计算温度的函数温度计算调用函数 通过热敏电阻计算温度&#xff08;二&#xff09;—ODrive实现分析 ODrive计算热敏电阻的温度采用的时B值的…

计算机基础知识37

针对记录的SQL语句 记录: 表中的一行一行的数据称之为是一条记录 先有库---->表---->记录 C:\Users\26647>mysql -u root -p # 先登录 mysql> show databases&#xff1b; # 查看所有库 mysql> create database db1; # 创造库 mysql> use db1; # 引用…

Java逻辑运算符(、||和!),Java关系运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式&#xff0c;以判断程序中的表达式是否成立&#xff0c;判断的结果是 true 或 false。 逻辑运算符是对布尔型变量进行运算&#xff0c;其结果也是布尔型&#xff0c;具体如表 1 所示。 表 1 逻辑运算符的用…

科大讯飞星火认知大模型

哈喽&#xff0c;大家好&#xff01; 前段时间「科大讯飞版ChatGPT」上线&#xff0c;给大家推荐了一波&#xff0c;演示了其强大的功能&#xff0c;不少小伙伴都立马申请体验了一把&#xff0c;也有私信说非常强大&#xff0c;工作效率提高不少&#xff0c;支持国产大模型&am…

【Python · PyTorch】数据基础

数据基础 1. 数据操作1.1 入门1.2 运算符1.3 广播机制1.4 索引和切片1.5 节省内存1.6 转化为其他Python对象 2. 数据预处理2.1 读取数据集2.2 处理缺失值2.3 转换为张量格式 本文介绍了PyTorch数据基础&#xff0c;Python版本3.9.0&#xff0c;代码于Jupyter Lab中运行&#xf…

linux系统安装jdk

1.从官网下载jdk包,Java Archive Downloads - Java SE 8u211 and later 2.创建java目录并上传jdk包 mkdir -p /home/local/java 3.解压jdk包 cd /home/local/java tar -zxvf /home/local/java/jdk-8u381-linux-x64.tar.gz 4.配置环境变量 vim /etc/profile i export JAV…

关于数据可视化那些事

干巴巴的数据没人看&#xff0c;数据可视化才能直观展现数据要点&#xff0c;提升数据分析、数字化运营决策效率。那关于可视化的实现方式、技巧、工具等&#xff0c;你了解几分&#xff1f;接下来&#xff0c;我们就来聊聊数据可视化那些事。 1、什么是数据可视化&#xff1f…

酒精壁炉:独特的室内取暖方式

酒精壁炉是一种现代而引人注目的室内取暖方式&#xff0c;其独特之处在于使用酒精作为唯一的燃料源。这种现代壁炉设计旨在为家庭带来温暖和舒适&#xff0c;同时呈现出简约而时尚的外观。 1、无需烟囱的壁炉 传统壁炉通常需要烟囱或排气系统&#xff0c;以排除燃烧过程中产生…

Java赋值运算符(=)

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“”&#xff0c;它是双目运算符&#xff0c;左边的操作数必须是变量&#xff0c;不能是常量或表达式。 其语法格式如下所示&#xff1a; 变量名称表达式内容 在 Java 语言中&#xff0c;“变量名称”和“表达式…

RISC-V架构——物理内存保护机制设置函数(pmp_set)解析

1、物理内存保护机制 参考博客&#xff1a;《RISC-V架构——物理内存属性和物理内存保护》&#xff1b; 2、pmp_set函数源码 int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,unsigned long log2len) {int pmpcfg_csr, pmpcfg_shift, pmpaddr_csr;unsign…

【C++和数据结构】位图和布隆过滤器

目录 一、位图 1、位图的概念 2、位图的实现 ①、基本结构 ②、set ③、reset&#xff1a; ④、test ⑤、问题&#xff1a; ⑥、位图优缺点及应用&#xff1a; ⑦、完整代码及测试 二、布隆过滤器 1、布隆过滤器的提出 2、布隆过滤器的实现 ①、基本结构 ②…

初识测开/测试

前言 在进入软件测试的正式讲解之前&#xff0c;我们需要对这个行业有一个整体的了解。 当我们从软件开发转向软件测试的时候&#xff0c;多数公司是欢迎的&#xff0c;而且难度也小。 反之&#xff0c;当我们从软件测试转向软件开发的时候&#xff0c;难度将会变得很大。 关于…

《持续交付:发布可靠软件的系统方法》- 读书笔记(七)

持续交付&#xff1a;发布可靠软件的系统方法&#xff08;七&#xff09; 第 7 章 提交阶段7.1 引言7.2 提交阶段的原则和实践7.2.1 提供快速有用的反馈7.2.2 何时令提交阶段失败7.2.3 精心对待提交阶段7.2.4 让开发人员也拥有所有权7.2.5 在超大项目团队中指定一个构建负责人 …

Mock测试详细教程入门这一篇就够了!

1、什么是mock测试 1.png Mock测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的比较复杂的数据/场景&#xff0c;用一个虚拟的对象(Mock对象)来创建用于测试的测试方法。 2、为什么要进行Mock测试 Mock是为了解决不同的单元之间由于耦合而难于开发、测试…