Python基础100题打卡Day15

题目五十四

假设我们有“username@companyname.com”格式的电子邮件地址,请编写程序打印给定电子邮件地址的公司名称。
用户名和公司名称都仅由字母组成。示例:如果给出以下电子邮件地址作为程序的输入:
john@google.com
输出的结果应该为:
google
输入应当从控制台输入。

提示:
使用\w来匹配字母。

代码实现

方法一:

import re #加载库
email_adress, domain_name = [],[]  
while True:
    email1 = input("请输入邮件地址:")
    if not email1:
        break
    email_adress.append(email1)  #记录输入的邮件地址信息

for i in email_adress:  #调取邮件信息
    pattern = "\w+@(\w+).com"  #字符匹配,注意括号的位置,如果括号的位置不对的话,很有可能会输出一个字母
    ans = re.findall(pattern, i)
    domain_name.append(ans[0])#因为匹配出来的是一个列表,所以这个地方是将列表的单一元素添加到记录表中

print(domain_name)

方法二:

import re
email = "john@google.com elise@python.com"
pattern = "\w+@(\w+).com"
ans = re.findall(pattern, email)
print(ans)

运行结果

输出一:

请输入邮件地址:john@google.com
请输入邮件地址:elise@python.com
请输入邮件地址:
['google', 'python']

输出二:

['google', 'python']

题目五十五

编写一个程序,该程序接受由空格分隔的一系列单词作为输入,以打印仅由数字组成的单词。
示例:如果给出以下单词作为程序的输入:
2 cats and 3 dogs.
输出:
[‘2’, ‘3’]

提示:
使用re.findall()查找使用regex的所有子字符串。

代码实现

方法一:re.findall()查找

import re

lst = input("请输入:")
pattern = "\d+"
ans = re.findall(pattern,lst)
print(ans)

方法二:.isdigit()函数

lst  = input("请输入:").split()
num_lst = [i for i in lst if i.isdigit() ]
print(num_lst)

运行结果

输出:

请输入:2 cats and 3 dogs.
['2', '3']

题目五十六

打印一个Unicode字符串“Hello world”。

提示:
使用u‘string’格式定义Unicode字符串

代码实现

lst = u"Hello world"
print(lst)

运行结果

输出:

Hello world

题目五十七

编写一个程序来读取ASCII字符串,并将其转换为utf-8编码的Unicode字符串。

提示:
使用Unicode()/encode()函数进行转换。

代码实现

s = input("请输入:")
u = s.encode("utf-8")
print(u)

运行结果

输出:

请输入:aaaa
b'aaaa'

题目五十八

编写一个特殊的注释,以指示Python源代码文件在Unicode中。

提示:
使用Unicode()函数进行转换。

代码实现

# -*- coding: utf-8 -*-

题目五十九

编写一个程序计算1/2+2/3+3/4+.+n/n+1,并通过控制台输入给定的n(n>0)。
示例:如果给出以下n作为程序的输入:
5
输出为:
3.55

提示:
使用Float()将整数转换为浮点数。即使不转换,也不会引起问题,因为python默认理解值的数据类型。

代码实现

n = int(input("请输入整数:"))  #输入时从字符串转为整数类型
sum = 0
for i in range(1,n+1):  #注意range函数是左闭右开的区间范围
    sum += i/(i+1)
print(round(sum,2))	 #取小数点后两位

运行结果

输出:

请输入整数:5
3.55
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值