声明:该系列文章首发于公众号: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安全”,每天都会分享相关知识点,让我们一同加油!路漫漫其修远兮,吾将上下而求索。