声明:该系列文章首发于公众号:Y1X1n安全,转载请注明出处!本公众号所分享内容仅用于每一个爱好者之间的技术讨论,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果。
文章目录
Question 4
1、Question:
编写一个从控制台接受逗号分隔数字序列的程序,并生成一个包含每个数字的列表和一个元组。假设向程序提供以下输入:
34,67,55,33,12,98
然后,输出应该是:
['34', '67', '55', '33', '12', '98']
('34', '67', '55', '33', '12', '98')
Hints:
如果输入数据被提供给问题,则应假定为控制台input.tuple()方法可以将列表转换为元组
2、Solution
2.1 Python 2
values = raw_input()
l = values.split(",")
t = tuple(l)
print l
print t
🍭
1、使用 raw_input() 函数获取用户的输入,并将其赋值给变量 values。
2、使用字符串方法 split(“,”) 将 values 字符串按照逗号分隔,生成一个包含多个字符串的列表 l。
3、使用内置函数 tuple() 将 l 列表转换为一个元组 t。
4、使用 print 语句分别打印输出变量 l 和变量 t。
2.2 Python 3
2.2.1 tuple方法
lst = input().split(',')
tpl = tuple(lst) # tuple 方法将列表转换为元组
print(lst)
print(tpl)
2.2.2 tuple方法(简洁)
print(tuple(input("输入以逗号分隔的一系列数字:").split(',')))
2.2.3 过程展示 by Y1X1n
str0 = input()
print("输入内容的类型:")
print(type(str0))
list1 = str0.split(',')
print("split处理后的内容和类型:")
print(list1)
print(type(list1))
tpl = tuple(list1) # tuple 方法将列表转换为元组
print("tuple处理后的内容和类型:")
print(tpl)
print(type(tpl))
🍭3、相关知识点
🍭1、元组(Tuple)是 Python 中的一种数据类型,用于存储多个值,类似于列表(List)。
与列表不同的是,元组是不可变的,也就是说一旦创建后就不能修改其中的元素。因此,元组通常用于存储一些不可更改的数据,如一些常量、配置信息等。元组的语法用小括号 () 表示,元素之间用逗号 , 分隔。
下面是一个创建元组的示例:
t = (1, 2, 3, 4, 5)
元组中的元素可以通过索引访问,与列表类似。例如,要访问元组 t 中的第一个元素,可以使用以下代码:
t[0]
元组还支持切片操作,可以使用t[start:end]
的语法获取一个子元组。
元组也支持一些内置函数,如 len()、max()、min() 等。此外,元组还可以通过 + 运算符进行连接,通过 * 运算符进行重复。
需要注意的是,如果元组中只有一个元素,需要在元素后面加上逗号,否则会被解释器认为是一个普通的值而不是元组,例如:
t = (1,) # 包含一个元素的元组需要加上逗号
最后,需要注意的是元组是不可变的,这意味着一旦创建后就不能修改其中的元素。如果需要修改一个元组中的元素,可以先将其转换为列表,修改后再转换回元组,例如:
t = (1, 2, 3)
l = list(t) # 将元组转换为列表
l[0] = 4 # 修改列表中的元素
t = tuple(l) # 将列表转换回元组
🍭2、split
split() 是 Python 中的一个字符串方法,它用于将字符串分割成一个列表,基于指定的分隔符进行分割。
具体来说,它将一个字符串按照指定的分隔符切割成子字符串,并将这些子字符串存储在一个列表中返回。
split() 方法可以使用一个分隔符作为参数,也可以不带参数使用默认分隔符。默认情况下,它使用空格作为分隔符。
Question 5
1、Question:
定义一个至少有两个方法的类:
- getString:从控制台输入获取字符串
- printString:以大写打印字符串
还请包括简单的测试函数来测试类方法
Hints:
使用init方法构造一些参数
2、Solution
2.1 Python 2
# 定义一个名为 InputOutString 的类,包含了三个方法:__init__()、get_string() 和 print_string()
class InputOutString(object):
# 在 __init__() 方法中,我们初始化了一个实例变量 s,它的初始值为空字符串。
def __init__(self):
self.s = ""
# get_string() 方法用于获取用户输入,并将输入存储到实例变量 s 中
def get_string(self):
self.s = raw_input()
# print_string() 方法用于将存储在实例变量 s 中的字符串打印出来,并将字符串全部转换为大写字母。
def print_string(self):
print self.s.upper() # upper()用于将字符串中的所有字母转换为大写字母,并返回一个新的字符串。
str_obj = InputOutString()
str_obj.get_string()
str_obj.print_string()
2.2 Python 3
class IOstring():
def get_string(self):
self.s = input()
def print_string(self):
print(self.s.upper())
# 主程序
xx = IOstring()
xx.get_string()
xx.print_string()
# 在主程序中,我们创建了一个名为 xx 的 IOstring 类的实例,并依次调用了 get_string() 和 print_string() 方法。
# 在调用 get_string() 方法时,程序会等待用户输入,并将输入存储到实例变量 s 中。
# 在调用 print_string() 方法时,程序会将存储在实例变量 s 中的字符串打印出来,并将字符串全部转换为大写字母。
🍭3、相关知识点
🍭3.1 python中的类
在 Python 中,类是一种封装数据和方法的机制,它可以用于创建自定义对象类型。类定义了对象的属性和方法,并可以用于创建对象的实例。
要定义一个类,可以使用 class 关键字,后跟类的名称和一个冒号。在类的主体中,你可以定义类的属性和方法,如下所示:
class MyClass: # 定义了一个名为 MyClass 的类
# 类属性
class_variable = 0
# 定义三种类型的方法:实例方法、类方法和静态方法
# 实例方法
def instance_method(self):
print("This is an instance method.")
# 类方法
@classmethod
def class_method(cls):
print("This is a class method.")
# 静态方法
@staticmethod
def static_method():
print("This is a static method.")
# 要创建一个类的实例,需要调用类的构造函数,并提供必要的参数。
# 在 Python 中,类的构造函数是 __init__() 方法,它在创建对象时被自动调用。
# 例如,我们可以创建一个 MyClass 类的实例:
my_object = MyClass()
# 上面的代码将创建一个名为 my_object 的 MyClass 类的实例。我们可以使用点号 . 运算符来访问实例的属性和方法:
print(my_object.class_variable) # 输出:0
my_object.instance_method() # 输出:This is an instance method.
MyClass.class_method() # 输出:This is a class method.
MyClass.static_method() # 输出:This is a static method.
# 在上面的代码中,我们访问了实例的类属性 class_variable,调用了实例方法 instance_method(),以及调用了类方法 class_method() 和静态方法 static_method()。
🍭3.2 类中的self参数
在 Python 中,类中的 self 参数是一个特殊的参数,它表示类实例本身。在类的方法中,self 参数必须作为第一个参数出现,但在调用方法时不需要显式地传递它。
self 的作用是让类的实例能够访问类的属性和方法。当我们创建一个类的实例时,它会自动传递给每个实例方法作为第一个参数。 这样,实例方法就可以通过 self 参数来访问实例的属性和方法。
例如,下面是一个简单的类,其中包含一个实例变量 name 和一个实例方法 greet() ,它使用 self 参数来访问实例变量:
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Hello, my name is", self.name)
在这个例子中,__init__()
方法是一个特殊的方法,它在创建类的实例时被调用,用于初始化实例变量。greet() 方法使用 self.name 来访问实例变量 name。
当我们创建 Person 类的实例时,必须提供一个名称参数:
p = Person("Alice")
然后我们可以调用 greet() 方法来让 Person 对象打招呼:
p.greet() # 输出:Hello, my name is Alice
在调用 greet() 方法时,self 参数会自动传递给方法,因此我们不需要显式地传递它。在方法内部,我们可以使用 self.name 来访问实例变量 name。
- self 参数只是一个约定的名称,你可以使用其他名称来代替它,但这可能会让代码难以理解,并且不符合 Python 社区的惯例。因此,建议仍然使用 self 来表示类实例本身。
🍭3.3 __init__()
方法
在 Python 中,__init__()
是一个特殊的方法,也称为构造函数或初始化方法。它在创建一个类的实例时被调用,用于初始化实例的属性。
__init__()
方法有一个必需的参数 self,它表示类的实例本身。在方法内部,我们可以使用 self 参数来访问实例的属性和方法。
下面是一个简单的示例,演示了如何使用 __init__()
方法来初始化实例变量:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
在这个例子中,Person 类有两个实例变量 name 和 age,它们的值在创建类的实例时被初始化。在 __init__()
方法中,我们使用 self.name 和 self.age 来访问实例的属性。
要创建 Person 类的实例,需要调用类的构造函数,并提供必要的参数。例如:
p = Person("Alice", 18)
上面的代码将创建一个名为 p 的 Person 类的实例,它的名称是 “Alice”,年龄是 18。
需要注意的是,__init__()
方法不会返回任何值,它的作用仅仅是初始化实例的属性。如果你需要返回一个值,可以定义一个普通方法来实现。
📌 如果你对网络安全或编程感兴趣,可以搜索公众号“Y1X1n安全”,每天都会分享相关知识点,让我们一同加油!路漫漫其修远兮,吾将上下而求索。