精华内容
下载资源
问答
  • 多重背包二进制写法

    2019-03-07 20:48:07
    for (j = 1; j * a[i] <= m && j <= x; x -= j, j *= 2) b[++tot] = j * a[i];...x为物品价格为a[i]个数,方法就是把x拆为多个二进制,从而能组成1…n所有...这些分出来数字和一定...
    for (j = 1; j * a[i] <= m && j <= x; x -= j, j *= 2)
    	b[++tot] = j * a[i];
    if (x) b[++tot] = x * a[i];
    

    x为物品价格为a[i]个数,方法就是把x拆为多个二进制,从而能组成1…n的所有数字
    例如
    x=10100
    1
    10
    100
    1000
    101
    这些分出来的数字和一定是x

    题目 Coins

    题意

    nn 种钱币,每种有 C[i]C[i] 个,面值为 A[i]A[i] ,求用这些钱币在 [1,m][1,m] 中所能组成的面值个数
    多重背包问题,先把每个钱币的个数用二进制拆分拆,就变成01背包问题

    #include <cstdio>
    #include <iostream>
    #define lb(x) (x & -x)
    #define jh(a, b) a ^= b, b ^= a, a ^= b
    using namespace std;
    inline void read(int &x){
        x = 0; int f = 1; char ch = getchar();
        while (!(ch >= '0' && ch <= '9')){if (ch == '-') f = -1; ch = getchar();}
        while (ch >= '0' && ch <= '9'){x = x * 10 + ch - '0'; ch = getchar();}
        x *= f;
    }
    inline void Max(int &x, int y){if (y > x) x = y;}
    const int N = 1e7 + 10;
    int n, m, a[N], b[N], tot, ans;
    bool f[N];
    int main(){
        while (cin >> n >> m){
            if (!(n | m)) break;
            tot = ans = 0;
            for (int i = 0; i <= m; i++) f[i] = false;
            for (int i = 1; i <= n; i++) read(a[i]);
            for (int i = 1; i <= n; i++){
                int x, j; read(x);
                for (j = 1; j * a[i] <= m && j <= x; x -= j, j *= 2)
                    b[++tot] = j * a[i];
                if (x) b[++tot] = x * a[i];
            }
            f[0] = true;
            for (int i = 1; i <= tot; i++)
                for (int j = m; j >= b[i]; j--)
                    f[j] |= f[j - b[i]];
            for (int i = 1; i <= m; i++) if (f[i]) ans++;
            printf("%d\n", ans);
        }
        return 0;
    }
    
    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201908/01/1564673525_473465.png) 这里有什么写法吗,为什么不能两个一起写?
  • 点击上方蓝色小,关注“涛哥聊Python”重磅干货,第一时间送达有人说 Python 入门容易,但是精通难语言。Python 语言里有许多(而且是越来越多)高级特性,是 Pyth...

    点击上方蓝色小字,关注涛哥聊Python

    重磅干货,第一时间送达

    有的人说 Python 入门容易,但是精通难的语言。

    Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。甚至有些人觉得,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。

    但你要知道,在团队合作里,炫技是大忌。

    为什么这么说呢?我说下自己的看法:

    1. 越简洁的代码,越清晰的逻辑,就越不容易出错;

    2. 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一种良好的品德

    3. 简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)

    今天我就来写一写条件判断语句里有哪些炫技操作。在这里,你可以学到一些超酷的代码技巧,但学习归学习,希望你区分场景慎重使用。

    0. 原代码

    这是一段非常简单的通过年龄判断一个人是否成年的代码,由于代码行数过多,有些人就不太愿意这样写,因为这体现不出自己多年的 Python 功力。

    if age > 18:
        return "已成年"
    else:
        return "未成年"
    

    下面我列举了五种这段代码的变异写法,一个比一个还 6 ,单独拿出来比较好理解,放在工程代码里,没见过这些写法的人,一定会看得一脸懵逼,理解了之后,又不经意大呼:卧槽,还可以这样写?,而后就要开始骂街了:这是给人看的代码? (除了第一种之外)

    1. 第一种

    语法:

    <expression 1> if <condition> else <expression 2> 
    

    例子

    >>> age1 = 20
    >>> age2 = 17
    >>> 
    >>> 
    >>> msg1 = "已成年" if age1 > 18 else "未成年"
    >>> print msg1
    已成年
    >>> 
    >>> msg2 = "已成年" if age2 > 18 else "未成年"
    >>> print msg2
    未成年
    >>> 
    

    2. 第二种

    语法

    <expression> and <on_true> or <on_false>
    

    例子

    >>> msg1 = age1 > 18 and "已成年" or "未成年"
    >>> msg2 = "已成年" if age2 > 18 else "未成年"
    >>> 
    >>> print(msg1)
    已成年
    >>> 
    >>> print(msg2)
    未成年
    

    3. 第三种

    语法

    ("false", "true")[condition]
    

    例子

    >>> msg1 = ("未成年", "已成年")[age1 > 18]
    >>> print(msg1)
    未成年
    >>> 
    >>> 
    >>> msg2 = ("未成年", "已成年")[age2 > 18]
    >>> print(msg2)
    未成年
    

    4. 第四种

    语法

    (lambda: <on_false>, lambda:<on_true>)[<condition>]()
    

    例子

    >>> msg1 = (lambda:"未成年", lambda:"已成年")[age1 > 18]()
    >>> print(msg1)
    已成年
    >>> 
    >>> msg2 = (lambda:"未成年", lambda:"已成年")[age2 > 18]()
    >>> print(msg2)
    未成年
    

    5. 第五种

    语法:

    {True: <on_true>, False: <on_false>}[<condition>]
    

    例子:

    >>> msg1 = {True: "已成年", False: "未成年"}[age1 > 18]
    >>> print(msg1)
    已成年
    >>> 
    >>> msg2 = {True: "已成年", False: "未成年"}[age2 > 18]
    >>> print(msg2)
    未成年
    

    6. 第六种

    语法

    ((<condition>) and (<on_true>,) or (<on_false>,))[0]
    

    例子

    >>> msg1 = ((age1 > 18) and ("已成年",) or ("未成年",))[0]
    >>> print(msg1)
    已成年
    >>> 
    >>> msg2 = ((age2 > 18) and ("已成年",) or ("未成年",))[0]
    >>> print(msg2)
    未成年
    

    看到这里,有没有涨姿势了,学了这么久的 Python ,这么多骚操作,还真是活久见。

    除了基本写法的六种写法里,我最推荐使用的是第一种,自己也经常在用,简洁直白,代码行数还少。而其他的写法虽然能用,但是没有特别的必要,更不建议在多人合作的项目中使用这样的“技巧”

    作者:写代码的明哥 

    来源:Python编程时光

    
    - 完 -
    作为最流行的开源数据库软件之一,MySQL数据库软件已经是广为人知的了,性能调优是MySQL的一项重要技能,今天给大家分享一份我珍藏已久的《MySQL性能调优和优化手册》电子书。
    资料领取方式:
    
    
    《MySQL性能调优和优化手册》高清电子书已经打包好,可以通过下述步骤来获取:
    
    
    关注公众号,后台回复关键词:数据库
    
    
    
    ????长按上方二维码 2 秒
    回复「数据库」即可获取资料
    其他
    最后涛哥推荐下我的视频号,我从3月份开通了视频号,坚持录制80多期左右的视频了,不说每篇干货满满,有爬虫技术,有工具推荐,有软件开发技能、副业赚钱但都是原创用心输出,有些东西公众号看不到,视频号能看到,一来不足以成文,二来可以看看逗比涛哥。
    今天是视频号82/100天打卡,加油呀!
    
    
    展开全文
  • 年度组织生活会参考写法 ...思想上,由于平时科研工作与学习任务加重,我对自我思考有一些过度,导致个人在今年思想负担较。且即使过度思考,对自我定位问题仍没有得到深刻理解。在明年中,我需要减少思

    年度组织生活会参考写法

    (大约550个字,发言时长大约2分钟)
    在2020年,进入研二,科研任务加重,经过自我剖析,我认为我在以下几个方面还有不足。
    政治上,我的政治理论学习不够主动,理论知识研读还不够深入,政治理论的综合性理解还不够完善,政治理论的总体性框架不够清楚。这一块在今年做的不够好。明年需要在政治理论学习上发挥更多主观能动性。
    思想上,由于平时科研工作与学习任务的加重,我对自我的思考有一些过度,导致个人在今年思想负担较重。且即使过度思考,对自我定位的问题仍没有得到深刻的理解。在明年中,我需要减少思想负担,在思想上给自己一些释怀,争取将自我思考更多在工作学习中体现。
    学习和工作上,时间管理能力不够优秀,在面对较难问题的时候会出现畏难情绪,会产生拖沓的行为,最终导致效率低下,总是在假忙碌和假勤奋。工作成绩上在个人看来,达到及格水平。
    能力上,在一年中与导师交流科研过程较多。由于导师认真负责,因材施教,在学术和工作上都教给我很多,让我在能力上有了较大的提升。但我与一个优秀的共产党员所应具备的能力还有一定差距,需要进一步提高。
    作风上,这一年中由于思想重心放在了科研上,因此生活中作息不太好,影响了舍友的休息,也对自己的身体有了一定的伤害。我认为,这里的解决办法一方面还是要提高自己的工作效率,另一方面在休息时要管住自己玩手机的时长。

    展开全文
  • 点击上方蓝色小,关注“涛哥聊Python”重磅干货,第一时间送达来源:Python编程时光大家好今天给大家分享一下关于装饰器知识点,内容非常干,全程高能,认真吸收看完,一定会对装饰器...

    点击上方蓝色小字,关注涛哥聊Python

    重磅干货,第一时间送达

    来源:Python编程时光

    大家好

    今天给大家分享一下关于装饰器的知识点,内容非常干,全程高能,认真吸收看完,一定会对装饰器有更深的理解。

    Hello,装饰器

    装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

    它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。

    装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

    装饰器的使用方法很固定

    • 先定义一个装饰器(帽子)

    • 再定义你的业务函数或者类(人)

    • 最后把这装饰器(帽子)扣在这个函数(人)头上

    就像下面这样子

    # 定义装饰器
    def decorator(func):
        def wrapper(*args, **kw):
            return func()
        return wrapper
    
    # 定义业务函数并进行装饰
    @decorator
    def function():
        print("hello, decorator")
    

    实际上,装饰器并不是编码必须性,意思就是说,你不使用装饰器完全可以,它的出现,应该是使我们的代码

    • 更加优雅,代码结构更加清晰

    • 将实现特定的功能代码封装成装饰器,提高代码复用率,增强代码可读性

    接下来,我将以实例讲解,如何编写出各种简单及复杂的装饰器。

    第一种:普通装饰器

    首先咱来写一个最普通的装饰器,它实现的功能是:

    • 在函数执行前,先记录一行日志

    • 在函数执行完,再记录一行日志

    # 这是装饰器函数,参数 func 是被装饰的函数
    def logger(func):
        def wrapper(*args, **kw):
            print('我准备开始执行:{} 函数了:'.format(func.__name__))
    
            # 真正执行的是这行。
            func(*args, **kw)
    
            print('主人,我执行完啦。')
        return wrapper
    

    假如,我的业务函数是,计算两个数之和。写好后,直接给它带上帽子。

    @logger
    def add(x, y):
        print('{} + {} = {}'.format(x, y, x+y))
    

    然后执行一下 add 函数。

    add(200, 50)
    

    来看看输出了什么?

    我准备开始执行:add 函数了:
    200 + 50 = 250
    我执行完啦。
    

    第二种:带参数的函数装饰器

    通过上面两个简单的入门示例,你应该能体会到装饰器的工作原理了。

    不过,装饰器的用法还远不止如此,深究下去,还大有文章。今天就一起来把这个知识点学透。

    回过头去看看上面的例子,装饰器是不能接收参数的。其用法,只能适用于一些简单的场景。不传参的装饰器,只能对被装饰函数,执行固定逻辑。

    装饰器本身是一个函数,做为一个函数,如果不能传参,那这个函数的功能就会很受限,只能执行固定的逻辑。这意味着,如果装饰器的逻辑代码的执行需要根据不同场景进行调整,若不能传参的话,我们就要写两个装饰器,这显然是不合理的。

    比如我们要实现一个可以定时发送邮件的任务(一分钟发送一封),定时进行时间同步的任务(一天同步一次),就可以自己实现一个 periodic_task (定时任务)的装饰器,这个装饰器可以接收一个时间间隔的参数,间隔多长时间执行一次任务。

    可以这样像下面这样写,由于这个功能代码比较复杂,不利于学习,这里就不贴了。

    @periodic_task(spacing=60)
    def send_mail():
         pass
    
    @periodic_task(spacing=86400)
    def ntp()
        pass 
    

    那我们来自己创造一个伪场景,可以在装饰器里传入一个参数,指明国籍,并在函数执行前,用自己国家的母语打一个招呼。

    # 小明,中国人
    @say_hello("china")
    def xiaoming():
        pass
    
    # jack,美国人
    @say_hello("america")
    def jack():
        pass
    

    那我们如果实现这个装饰器,让其可以实现 传参 呢?

    会比较复杂,需要两层嵌套。

    def say_hello(contry):
        def wrapper(func):
            def deco(*args, **kwargs):
                if contry == "china":
                    print("你好!")
                elif contry == "america":
                    print('hello.')
                else:
                    return
    
                # 真正执行函数的地方
                func(*args, **kwargs)
            return deco
        return wrapper
    

    来执行一下

    xiaoming()
    print("------------")
    jack()
    

    看看输出结果。

    你好!
    ------------
    hello.
    

    第三种:不带参数的类装饰器

    以上都是基于函数实现的装饰器,在阅读别人代码时,还可以时常发现还有基于类实现的装饰器。

    基于类装饰器的实现,必须实现 __call____init__两个内置函数。
    __init__ :接收被装饰函数
    __call__ :实现装饰逻辑。

    还是以日志打印这个简单的例子为例

    class logger(object):
        def __init__(self, func):
            self.func = func
    
        def __call__(self, *args, **kwargs):
            print("[INFO]: the function {func}() is running..."\
                .format(func=self.func.__name__))
            return self.func(*args, **kwargs)
    
    @logger
    def say(something):
        print("say {}!".format(something))
    
    say("hello")
    

    执行一下,看看输出

    [INFO]: the function say() is running...
    say hello!
    

    第四种:带参数的类装饰器

    上面不带参数的例子,你发现没有,只能打印INFO级别的日志,正常情况下,我们还需要打印DEBUG WARNING等级别的日志。这就需要给类装饰器传入参数,给这个函数指定级别了。

    带参数和不带参数的类装饰器有很大的不同。

    __init__ :不再接收被装饰函数,而是接收传入参数。
    __call__ :接收被装饰函数,实现装饰逻辑。

    class logger(object):
        def __init__(self, level='INFO'):
            self.level = level
    
        def __call__(self, func): # 接受函数
            def wrapper(*args, **kwargs):
                print("[{level}]: the function {func}() is running..."\
                    .format(level=self.level, func=func.__name__))
                func(*args, **kwargs)
            return wrapper  #返回函数
    
    @logger(level='WARNING')
    def say(something):
        print("say {}!".format(something))
    
    say("hello")
    

    我们指定WARNING级别,运行一下,来看看输出。

    [WARNING]: the function say() is running...
    say hello!

    第五种:使用偏函数与类实现装饰器

    绝大多数装饰器都是基于函数和闭包实现的,但这并非制造装饰器的唯一方式。

    事实上,Python 对某个对象是否能通过装饰器( @decorator)形式使用只有一个要求:decorator 必须是一个“可被调用(callable)的对象

    对于这个 callable 对象,我们最熟悉的就是函数了。

    除函数之外,类也可以是 callable 对象,只要实现了__call__ 函数(上面几个例子已经接触过了)。

    还有容易被人忽略的偏函数其实也是 callable 对象。

    接下来就来说说,如何使用 类和偏函数结合实现一个与众不同的装饰器。

    如下所示,DelayFunc 是一个实现了 __call__ 的类,delay 返回一个偏函数,在这里 delay 就可以做为一个装饰器。(以下代码摘自 Python工匠:使用装饰器的小技巧)

    import time
    import functools
    
    class DelayFunc:
        def __init__(self,  duration, func):
            self.duration = duration
            self.func = func
    
        def __call__(self, *args, **kwargs):
            print(f'Wait for {self.duration} seconds...')
            time.sleep(self.duration)
            return self.func(*args, **kwargs)
    
        def eager_call(self, *args, **kwargs):
            print('Call without delay')
            return self.func(*args, **kwargs)
    
    def delay(duration):
        """
        装饰器:推迟某个函数的执行。
        同时提供 .eager_call 方法立即执行
        """
        # 此处为了避免定义额外函数,
        # 直接使用 functools.partial 帮助构造 DelayFunc 实例
        return functools.partial(DelayFunc, duration)
    

    我们的业务函数很简单,就是相加

    @delay(duration=2)
    def add(a, b):
        return a+b
    

    来看一下执行过程

    >>> add    # 可见 add 变成了 Delay 的实例
    <__main__.DelayFunc object at 0x107bd0be0>
    >>> 
    >>> add(3,5)  # 直接调用实例,进入 __call__
    Wait for 2 seconds...
    8
    >>> 
    >>> add.func # 实现实例方法
    <function add at 0x107bef1e0>
    

    第六种:能装饰类的装饰器

    用 Python 写单例模式的时候,常用的有三种写法。其中一种,是用装饰器来实现的。

    以下便是我自己写的装饰器版的单例写法。

    instances = {}
    
    def singleton(cls):
        def get_instance(*args, **kw):
            cls_name = cls.__name__
            print('===== 1 ====')
            if not cls_name in instances:
                print('===== 2 ====')
                instance = cls(*args, **kw)
                instances[cls_name] = instance
            return instances[cls_name]
        return get_instance
    
    @singleton
    class User:
        _instance = None
    
        def __init__(self, name):
            print('===== 3 ====')
            self.name = name
    

    可以看到我们用singleton 这个装饰函数来装饰 User 这个类。装饰器用在类上,并不是很常见,但只要熟悉装饰器的实现过程,就不难以实现对类的装饰。在上面这个例子中,装饰器就只是实现对类实例的生成的控制而已。

    其实例化的过程,你可以参考我这里的调试过程,加以理解。

    -END-

    今天給大家推荐一个南京大学的Python数据分析公开课,由浅入深,非常适合入门,每章都配有代码和练习题!

    课程大纲

    视频及课件

    B站:
    https://www.bilibili.com/video/BV1Y7411o7JP/

    
    
    课件获取方法
      1. 扫描下方二维码(非本号)
      2. 回复关键词:P90
    (建议复制关键词)
    
    
    
    ????长按上方二维码 2 秒
    回复「P90」即可获取资料
    
    展开全文
  • 程序代码奇妙之处在于他足够灵活,对于大部分计算机语言,关键字也就几十个,但是就凭这个几十个关键字灵活运用却能生产出无数个不软件产品与功能,就像人类语言一样,常用也就几百个,但是就凭这几百...
  • 伪静态实际上是利用php把当前地址解析成另一种方法来访问网站,要学伪静态规则的写法,要懂一点正则 一、正则表达式教程 有一个经典的教程:正则表达式30分钟入门教程 常用正则如下: . 换行符以外的所有字符 \...
  • 写这个文章的的时候我构思了很多种写法,因为考虑我读者很多大学生,也有很多毕业仔,想照顾所有群体,那我整个文章会从读书时候一些学习方法,还有就是工作之后工作学习方法去写,这个思路应该也ok。...
  • 第七届蓝桥杯决赛 凑平方数 【简单写法+20多行代码】 凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到。 比如:0, 36, 5948721 ...分组时,必须用完所有数字,不能
  • 目前已补全原字体中有对应繁体字的简体字、 GB 2312 范围内的所有汉字 (6763 个) 、《通用规范汉字表》范围内的所有汉字 (8105 个) ,BIG5-2003 范围内的所有汉字 (13058 个,包含台湾教育部门规定的 4808 个...
  • 目前已补全原字体中有对应繁体字的简体字、 GB 2312 范围内的所有汉字 (6763 个) 、《通用规范汉字表》范围内的所有汉字 (8105 个) ,BIG5-2003 范围内的所有汉字 (13058 个,包含台湾教育部门规定的 4808 个...
  • 这是一款基于 中文开源字体,是将日本写法的字体改造成简体中文写法的尝试。 本字体尝试在 和 原有字形基础上,将其改造成中国大陆标准字形,更加适合中国大陆用户需求。 字库 本字库已补全 GB 2312-80 及 ...
  • 在mongosql的写法是这样的: db.tb_realtime.find({"$where":"this.weight > 100"}) tb_realtime是表名,weight是重量字段名 在mongodbTemplate中写法: DBObject obj = new BasicDBObject(); o
  • 在经过方法的基础学习之后,我们通过三个小例子巩固一下知识,此外,也对方法的注意事项进行一个简单的总结。...该方法有很多种写法,不同的写法代码量不同,但思路也不同,例如: public class Demo01Metho...
  • 下面举个例子:我们想统计一个字符串中字母的数量,我们一般的写法如下: fun getLettersCount(str:String):Int{ var count=0 for(chr in str){ if(chr.isLetter()) count++ } return cou
  • text-stroke多重描边

    2017-07-15 21:30:00
    text-stroke属性用于给文字进行描边,它其实和background属性等复合属性类似,有多个属性合并成的写法,只不过text-stroke只有两个属性合并:text-stroke-width和text-stroke-color.就是描边的颜色和宽度,在text-...
  • 如果我们不是判断是否能凑成这个数,而是计算这个数内背包最大值,就不能用这个写法了(也可能是我太菜了,一直WA) 于是就有了二进制背包方式 在多重背包中如果每个背包被选择次数maxi都比较小 我们可以把他...
  • 复习了下快速排序的写法和原理,其实现在看起来并没有很难,缩减代码后更是显得非常简略。 快排的基本思想是随意选择数组中一个数字作为标记值,然后将范围内所有大于标记值的数放在标记值位置的右边,所有小于标记...
  • 在word解析html标签

    2020-12-07 17:11:49
    <p><img alt="" height="316" src=...我现在这种写法只是单纯展示了文字,插件用是docxtemplater,虽然插件有这个功能但是需要花钱,求各位大神解答</p>
  • 当然另外的两for循环的写法也算是很简单的了。这里就直接写素因子分解的写法。 对于A中的数,我们可以将每个数都进行素因子分解,最后保留各个质数的指数,对B进行同样操作,然后在去两者指数的min值就可以了。...
  • 文件写法优化5.网站结构排版优化6.栏目布局优化优势:1.抛弃了数据库改为txt文档2.抛弃了图片,提高了网站打开数度3.抛弃了后台功能,提高了网站安全性,ftp实现文章更新,要后台就弄个大马4.经测试完美兼容google...
  • //设置显示属性 private Font fontGameOver = new Font("宋体", Font.BOLD, 50); //分数 private int score = 0; /* * 记录开始时候时间 * */ private long beginTime=0; /* *实例化Snake...
  • 思路分析: 获取前两个数字中看最大值,有多重写法,这里先演示第一种。三元运算符方式 转载于:https://www.cnblogs.com/wangjunwei/p/11199787.html...
  • 三重引号:使用三重引号字符串可以跨越多行 —— 其中所有空白字符都将包含在该字符串面值中 字符串前缀 字节串面值要加前缀 ‘b’ 或 ‘B’;生成是类型 bytes 实例,不是类型 str 实例。 字符串和...
  • 经常在shell脚本中,看到有"2>&1"字样的写法,到底这是什么意思呢? 解决办法: 1。这里的1和2指的是文件描述符。 0:stdin 1:stdout 2:stderr 2。 ">"则是重定向符号。 “2>&1”的意思是:将输出...
  • golang注意事项

    2020-12-13 20:54:05
    7、goto 的写法和功能与C语言保持一致 8、golang函数名字首字母小写,为私有,大写为公有 9、不定参数类型和传递 10、函数类型 9.1 、回调函数 10、匿名函数和闭包 11、defer 12、获取命令行参数 -- 待补充 ...
  • css字体样式

    2020-12-07 13:06:57
    值可以为数字,范围100-900,字体越越粗,400是标准身材 值可以为英文,bold时候相当于700重量 字体倾斜 font-style:italic 一般取值 italic或者normal 字体样式连写 完整写法 font: 字体倾斜 字体粗细 字体...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

重字的写法