Python代码补全计划: DAY-11

声明:该系列文章首发于公众号:Y1X1n安全,转载请注明出处!本公众号所分享内容仅用于每一个爱好者之间的技术讨论,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果。

前言:
1、以后每天会在文末附上第二天的题目,可以提前写写,打开思路;
2、遇到不懂的地方可以多看看注释和🍭相关知识点部分;
3、每题至少会给出两个写法,可根据自身情况学习掌握;
4、量不在多,需持之以恒!

Question 14

1、Question:

编写一个接受句子的程序,并计算大写字母和小写字母的数量。

假设向程序提供了以下输入:

Hello world!

output

UPPER CASE 1
LOWER CASE 9

Hints:

如果向问题提供输入数据,则应将其假定为控制台输入。


2、Solution

2.1 比较ascii
word = input()
upper,lower = 0,0

for i in word:
    if 'a'<=i and i<='z' :
        lower+=1
    if 'A'<=i and i<='Z':
        upper+=1

print("UPPER CASE {0}\nLOWER CASE {1}".format(upper,lower))
2.2 islower() 和 isupper()
word = input()
upper,lower = 0,0

for i in word:
        lower+=i.islower()
        upper+=i.isupper()

print("UPPER CASE {0}\nLOWER CASE {1}".format(upper,lower))
2.3 islower() 和 isupper()
word = input()
upper = sum(1 for i in word if i.isupper())           # 如果条件为真,求和函数累积求和1
lower = sum(1 for i in word if i.islower())

print("UPPER CASE {0}\nLOWER CASE {1}".format(upper,lower))

2.4 Python 2
s = raw_input()
d = {"UPPER CASE":0, "LOWER CASE":0} # 创建一个字典 d,用于存储大写字母和小写字母的数量,初始值都为0
for c in s:
    if c.isupper():
        d["UPPER CASE"]+=1
    elif c.islower():
        d["LOWER CASE"]+=1
    else:
        pass
print "UPPER CASE", d["UPPER CASE"]
print "LOWER CASE", d["LOWER CASE"]

3、相关知识点

3.1 islower() 和 isupper()

islower() 和 isupper() 是 Python 中用于判断字符串中字符的大小写的内置函数。

islower() 函数用于判断字符串中的所有字母是否都是小写字母,如果是则返回 True,否则返回 False。例如:

s = 'hello world'
print(s.islower())  # True

s = 'Hello World'
print(s.islower())  # False

isupper() 函数用于判断字符串中的所有字母是否都是大写字母,如果是则返回 True,否则返回 False。例如:

s = 'HELLO WORLD'
print(s.isupper())  # True

s = 'Hello World'
print(s.isupper())  # False

需要注意的是,如果字符串中既包含大写字母又包含小写字母,这两个函数都会返回 False。此外,如果字符串中不包含字母,则这两个函数也会返回 False。

这两个函数是 Python 中常用的字符串方法,可以用于判断字符串的大小写特性,以及进行字符串的大小写转换。


Question 15

1、Question:

编写一个程序,以给定的数字作为a的值来计算a+aa+aaa+aaaa的值。

假设向程序提供了以下输入:

9

output:

11106

Hints:

如果输入数据被提供给问题,则应将其假定为控制台输入.


2、Solution

2.1 整数拼接到字符串上
a = input()
total,tmp = 0,str()        # 初始化整数和空字符串

for i in range(4):
    tmp+=a               # 将输入的数字字符串连接到变量 tmp 中
    total+=int(tmp)      # 将变量 tmp 转换为整数类型后加到变量 total 中

print(total)

2.2 字符串重复拼接
a = input()
total = int(a) + int(2*a) + int(3*a) + int(4*a)  # N*a=Na, for example  a="23", 2*a="2323",3*a="232323"字符串的重复拼接操作
print(total)

2.3 reduce() 函数和 lambda 表达式
from functools import reduce
x = input('请输入一个数字:')
reduce(lambda x, y: int(x) + int(y), [x*i for i in range(1,5)])

使用 reduce() 函数和 lambda 表达式将列表 [x*i for i in range(1,5)] 中的所有元素相加。lambda 表达式 lambda x, y: int(x) + int(y) 的作用是将两个参数转换为整数类型并相加,这个 lambda 表达式将作为 reduce() 函数的第一个参数,用于指定如何将列表中的元素合并。第二个参数 [x*i for i in range(1,5)] 是一个包含 字符串x重复 1、2、3、4 次的结果的列表。


2.4 定义函数
def question_15(string_digit):
    return sum(int(string_digit * n) for n in range(1, 5))

inp = input()
print(question_15(inp))

2.5 生成器表达式
a = input()
print(sum(int(i*a) for i in range(1,5)))

2.6 Python 2 字符串格式化操作符 %
a = raw_input()
n1 = int( "%s" % a )
n2 = int( "%s%s" % (a,a) )
n3 = int( "%s%s%s" % (a,a,a) )
n4 = int( "%s%s%s%s" % (a,a,a,a) )
print n1+n2+n3+n4

3、相关知识点

3.1 sum()函数

sum() 函数是 Python 内置函数之一,用于计算可迭代对象中所有元素的总和。它的语法如下:

sum(iterable, start=0)

其中,iterable 是一个可迭代对象,例如列表、元组、集合等等,它包含要求和的元素;start 是可选参数,表示求和的起始值,默认为 0。

sum() 函数对于数字类型的可迭代对象非常有用,例如整数列表、浮点数列表等等。如果可迭代对象中的元素不是数字类型,sum() 函数将尝试将它们转换为数字类型,如果转换失败则会抛出异常。

以下是 sum() 函数的一些示例用法:

# 对列表中的所有元素求和
my_list = [1, 2, 3, 4, 5]
total = sum(my_list)
print(total)  # 输出 15

# 对集合中的所有元素求和,并从 10 开始计算
my_set = {1, 2, 3, 4, 5}
total = sum(my_set, 10)
print(total)  # 输出 25

# 对包含浮点数的元组中的所有元素求和
my_tuple = (1.5, 2.7, 3.2, 4.1, 5.8)
total = sum(my_tuple)
print(total)  # 输出 17.3

注意,sum() 函数只能对可迭代对象中的元素进行求和,如果要对一个数字字符串求和,需要先将其转换为数字类型。例如,要对字符串 "1234" 的每个数字字符求和,可以使用以下代码:

my_str = "1234"
total = sum(int(x) for x in my_str)
print(total)  # 输出 10

这里使用了生成器表达式将字符串中的每个字符转换为整数类型,并将它们传递给 sum() 函数进行求和。


3.2 字符串格式化操作符 %

字符串格式化操作符 % 是 Python 中用于格式化字符串的一种方式,它可以将字符串中的占位符替换为变量的值,并生成新的字符串。字符串格式化操作符的基本语法如下:

formatted_string = format_string % values

其中,format_string 是一个包含占位符的字符串,例如 "Hello, %s!"% 后面的 values 是一个包含要替换占位符的值的元组或字典。

常用的占位符包括:

  • %s:表示字符串类型。

  • %d:表示整数类型。

  • %f:表示浮点数类型。

  • %x%X:表示十六进制整数类型,其中 %x 生成小写字母的十六进制数,%X 生成大写字母的十六进制数。

  • %o:表示八进制整数类型。

  • %e%E:表示指数型浮点数类型,其中 %e 生成小写字母的指数型浮点数,%E 生成大写字母的指数型浮点数。

例如,以下代码演示了如何使用字符串格式化操作符:

name = "Alice"
age = 30
height = 1.65
print("My name is %s, and I'm %d years old. My height is %.2f meters." % (name, age, height))

这段代码输出的结果是:

My name is Alice, and I'm 30 years old. My height is 1.65 meters.

在这个例子中,字符串 "My name is %s, and I'm %d years old. My height is %.2f meters." 中包含了三个占位符,分别是 %s%d%.2f。其中 %s 用于字符串类型的变量,%d 用于整数类型的变量,%.2f 用于保留两位小数的浮点数类型的变量。在 % 后面的元组 (name, age, height) 中,分别填入了要替换的变量的值。

注意,字符串格式化操作符 % 在 Python 3.x 中已经被弃用,建议使用 str.format() 方法或 f-strings 来格式化字符串。


Question 16

1、Question:

使用列表理解,将列表中的每个奇数平方。该列表由一系列逗号分隔的数字输入.
input:

1,2,3,4,5,6,7,8,9

output:

1,9,25,49,81

📌 如果你对网络安全或编程感兴趣,可以搜索公众号“Y1X1n安全”,每天都会分享相关知识点,让我们一同加油!路漫漫其修远兮,吾将上下而求索。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值