10000条代码Planning⑪

#!Python 3.8.12
#Mu Editor软件


##json.loads()
##用于将给定的 JSON 字符串解析为 Python 对象。
'''
json.loads(s[, encoding[, cls[,
object_hook[, parse_float[, parse_int[,
parse_constant[, object_pairs_hook[, **kw]]]]]]]])
'''

import json
jsonStr = '{"a": 1, "c": 3, "一种": 2, "e": 5, "d": 4}'
# 使用json.loads()解析JSON字符串,设置可选参数
data = json.loads(
    jsonStr,
    cls=None,               # 类参数,用于指定JSON解析器要使用的类,默认为None
    object_hook=None,       # 对象钩子参数,用于在JSON对象被转换为Python对象时自定义转换逻辑,默认为None
    parse_float=None,       # 浮点数解析参数,用于将JSON中的浮点数转换为Python浮点数,默认为None
    parse_int=None,         # 整数解析参数,用于将JSON中的整数转换为Python整数,默认为None
    parse_constant=None,    # 常量解析参数,用于将JSON中的特殊常量(如NaN, Infinity)转换为Python常量,默认为None
    object_pairs_hook=None, # 对象对钩子参数,用于在JSON对象的键值对被转换为Python对象时自定义转换逻辑,默认为None
)
print(data)     #{'a': 1, 'c': 3, '一种': 2, 'e': 5, 'd': 4}


##jieba.analyse.extract_tags() 
##函数是结巴分词中用于关键词提取的功能之一。
##它用于从文本中提取关键词,并根据其重要性进行排序和返回。以下是该函数的参数和说明:
'''
jieba.analyse.extract_tags(sentence,
topK=None,withWeight=False,
allowPOS=(),withFlag=False)

sentence: 待提取关键词的文本字符串。
topK=None: 返回关键词的数量,默认为 20,表示返回频率最高的前 20 个关键词。
withWeight=False: 是否返回关键词的权重,默认为 False,表示只返回关键词列表,不包括权重信息。
allowPOS=():仅包括指定词性的词,默认为空,表示不限制词性。
'''

import jieba.analyse
text = "中国是个国家,中国人都是龙的传人,中国有万里长城"

#提取关键词,topK=None,默认返回前20个关键词,默认为 20,表示返回频率最高的前 20 个关键词。
keywords = jieba.analyse.extract_tags(text)    
print("默认提取的关键词:", keywords)        # 默认提取的关键词: ['龙的传人', '万里长城', '中国', '国家']
keywords = jieba.analyse.extract_tags(text) 
print("默认提取的关键词:", keywords)        # 默认提取的关键词: ['龙的传人', '万里长城', '中国', '国家']

#提取关键词,返回带权重的关键词
#withFlag=False: 返回的关键词是否附带词性,默认为 False,表示只返回关键词,不包括词性信息。
keywords_with_weight = jieba.analyse.extract_tags(text, withWeight=True)
print("带权重的关键词:", keywords_with_weight)         # 结果
                                                    ##带权重的关键词: [('龙的传人', 2.3167796086666668), 
                                                    #('万里长城', 1.664775774425), ('中国', 1.51366034333), 
                                                    #('国家', 0.6667408986933333)]
                                                    
#withWeight=False,默认False,可忽略不写
keywords_with_weight = jieba.analyse.extract_tags(text, withWeight=False)
print("带权重的关键词:", keywords_with_weight)         # 结果
                                                    # 带权重的关键词: ['龙的传人', '万里长城', '中国', '国家']

# withWeight=False: 是否返回关键词的权重,默认为 False,表示只返回关键词列表,不包括权重信息。
#topK=5,返回关键词前5;withWeight=False,不包括权重信息。
top_keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=False)
print("指定数量的关键词:", top_keywords)               # 指定数量的关键词: ['龙的传人', '万里长城', '中国', '国家']
##topK=5,返回关键词前5;withWeight=False,包括权重信息。
top_keywords_with_weight = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
print("指定数量的带权重的关键词:", top_keywords_with_weight)   # 指定数量的带权重的关键词: [('龙的传人', 2.3167796086666668), 
                                                          # ('万里长城', 1.664775774425), ('中国', 1.51366034333), 
                                                          # ('国家', 0.6667408986933333)]


##random.shuffle(seq)
##将序列重新排列,一般与seed同用,以便结果固定
import random
random.seed(10)
seqL=['m','fs','4','5','pp']
random.shuffle(seqL)
print(seqL)     #['5', '4', 'fs', 'm', 'pp']

为了偷懒方便,写了代码方便知道除开注释写了多少条代码。

不是很准确,暂时没想到怎么改正,希望集思广益有个准确代码。

def count_valid_code_lines(file_path: str) -> int:
    '''
    统计代码条数
    '''
    with open(file_path, 'r', encoding='UTF-8') as f:
        lines = f.readlines()
    
    valid_line_count = 0
    for line in lines:
        line = line.strip()
        if len(line) > 0 and not line.startswith('#') and not line.startswith("'''") and not line.startswith('"""'):
            valid_line_count += 1
    return valid_line_count

file_path = 'C:\\Users\\x\\202400330.py'
valid_code_lines = count_valid_code_lines(file_path)
print(f'有效代码行数:{valid_code_lines}')

如果你真的想当程序员那么就先写一万条代码。……《向上生长》
30号写下31条代码

目标:10000条

剩余:9503条

总结:

最近懒了,看了文件时间差了好多天都没有打开代码学习。不能输给自己的惰性呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值