第四周作业

本文介绍了Python中的各种基础编程技巧,包括寻找特定类型的数字、计算列表元素、字符串处理、日期格式转换、密码生成与哈希、用户输入验证等实用功能。
摘要由CSDN通过智能技术生成

一.找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

代码:

def find_special_numbers(upper_limit=10000):

    special_numbers = []

    for i in range(1, upper_limit):

        if (i % 5 == 0 or i % 6 == 0) and not (i % 5 == 0 and i % 6 == 0):

            special_numbers.append(i)

    return special_numbers

print(find_special_numbers())

二.写一个方法,计算列表所有偶数下标元素的和(注意返回值)

代码:

def sum_even_index_elements(lst):

    total = 0

    for i in range(0, len(lst), 2):

        total += lst[i]

    return total

lst = [6, 7, 3, 4, 5, 3, 7, 8, 1]

print(sum_even_index_elements(lst))

三.根据完整的路径从路径中分离文件路径、文件名及扩展名

。。。

四.根据标点符号对字符串进行分行,去掉字符串数组中每个字符串的空格

代码:

def split_string_by_punctuation(text):

    return re.split(r'(?<=[.,;!?])', text)

text = "你好,你好吗? 不,我不好!"

print('\n'.join(split_string_by_punctuation(text)))

def remove_spaces(str_list):

    return [s.replace(" ", "") for s in str_list]

strings = ["h     el    lo"]

print(remove_spaces(strings))

五.两个学员输入各自最喜欢的游戏名称,判断是否一致,如 果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输 出你们俩喜欢不相同的游戏。

代码:

def compare_game_names(name1, name2):

    if name1.lower() == name2.lower():

        print("你们俩喜欢相同的游戏")

    else:

        print("你们俩喜欢不相同的游戏")

name1 = input("学员1最喜欢的游戏:")

name2 = input("学员2最喜欢的游戏:")

compare_game_names(name1, name2)

六.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?

代码:

def standardize_game_name(name):

    return name.lower()

name1 = standardize_game_name(input("学员1最喜欢的游戏:").strip())

name2 = standardize_game_name(input("学员2最喜欢的游戏:").strip())

if name1 == name2:

    print("你们俩喜欢相同的游戏")

else:

    print("你们俩喜欢不相同的游戏")

七.让用户输入一个日期格式如“2008/08/08”,将 输入的日 期格式转换为“2008年-8月-8日”。

代码:

def convert_date_format(date_str):

    date_parts = date_str.split('/')

    return f"{date_parts[0]}年{date_parts[1]}月{date_parts[2]}日"

date_str = "2008/08/08"

print(convert_date_format(date_str))

八.接收用户输入的字符串,将其中的字符进行排序(升 序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”

代码:

def sort_and_reverse(text):

    return ''.join(sorted(text))[::-1]

text = "cabed"

print(sort_and_reverse(text))

九.接收用户输入的一句英文,将其中的单词以反序输 出,“hello c java python”→“python java c hello”。

代码:

def reverse_words(text):

    return ' '.join(text.split()[::-1])

text = "hello c java python"

print(reverse_words(text))、

十.从请求地址中提取出用户名和域名

代码:

from urllib.parse import urlparse, parse_qs

def extract_info_from_url(url):

    parsed_url = urlparse(url)

    query_params = parse_qs(parsed_url.query)

    return query_params.get('userName', [])[0], parsed_url.netloc

url = "http://www.163.com?userName=admin&pwd=123456"

user_name, domain = extract_info_from_url(url)

print(f"用户名: {user_name}, 域名: {domain}")

十一.有个字符串数组,存储了10个书名,书名有长有短,现 在将他们统一处理,若书名长度大于10,则截取长度8的 子串并且最后添加“...”,加一个竖线后输出作者的名字。

。。。

十二.让用户输入一句话,找出所有"呵"的位置。

代码:

def find_positions_of_word(text, word):

    positions = [i for i, char in enumerate(text) if char == word]

    return positions

text = "你好呵,balbllbal。呵,这很重要。"

word = "呵"

positions = find_positions_of_word(text, word)

print(positions)

十三.让用户输入一句话,判断这句话中有没有邪恶,如果有邪 恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变 成”老牛很**”;

代码:

def replace_evil(text):

    return text.replace('邪恶', '**')

text = "老牛很邪恶"

print(replace_evil(text))

十四.判断一个字符是否是回文字符串 "1234567654321" "上海自来水来自海上"

代码:

def is_palindrome(s):

    return s == s[::-1]

strings = ["1234567654321", "上海自来水来自海上"]

for string in strings:

    print(f"'{string}' 是回文字符串: {is_palindrome(string)}")

十五.过滤某个文件夹下的所有"xx.py"python文件

。。。

第八天:

代码:

import hashlib

import random

import string

def generate_password(length=12):

    """Generate a random password"""

   

    characters = string.ascii_letters + string.digits + string.punctuation

   

    password = ''.join(random.choice(characters) for i in range(length))

    return password

def hash_password(password):

    """Hash a password using SHA-256"""

    hash_obj = hashlib.sha256(password.encode('utf-8'))

   

    return hash_obj.hexdigest()  

random_password = generate_password()

hashed_password = hash_password(random_password)

print(f"Randomly generated password: {random_password}")

print(f"Hashed password: {hashed_password}")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值