学习Python3

1.python的运算:+ - * / 以及 x**y 的幂运算 和 %取余运算

number=int(input())
count=0
while number!=0:
    number/=10
    count += 1
else:
    print(count)#不对!不会计算number的位数,因为number/=10,是浮点数除法,会自动变为float
          #应该使用number//=10整数除法,并且向下取整

 

2.python条件控制语句

if exp:
  statement
elif exp:
  statement
else:
  statement
match case 对应 switch case match exp:   case
1:     return statement   case 2 :     return statement   case t if t > 1.5 # 对于浮点数等,可以用范围判断     return statement   case _:     return default #相当于default
#其中case后可以跟int,float,list,dict,type(int())。

3.循环知识

while 条件:
  statement
else:
  statement # 条件迭代到false后,转过来执行else
for <variable> in <sequence>:
  <statements>
else:
  <statements> #for执行完之后,再执行else

# 以上如果循环中break之后都不会执行else

# ps:python中循环for i=1 in range(1,6)不可以在循环条件中初始化变量,其会根据range(1,6)的范围自动从1开始,并且自动迭代+1,或者自己设置步长

 4.输入和输出

# input()读取内容后返回一个字符串,
# input(“提示信息”)括号内可填写提示信息,填写提示信息时,推荐使用 f"" 格式化字符串。
# 若要读入一行字符串中以空格隔开的多个信息,可以通过spilt()函数:
a = input()
list=a.split(" ") #split将a按照空格分割后返回一个列表
print(f"{month.zfill(2)}/{day.zfill(2)}/{year}") # f格式化字符串法 zfill表示左侧补零保证输出为2位,这样就会避免print(,,)出现元素之间的空格

5.字典dict

创建字典

my_dict = {}  # 创建空字典
for _ in range(3):  # 循环3次
    key = input()    # 获取键
    value = input()  # 获取值
    my_dict[key] = value  # 将键值对添加到字典
print(my_dict)

a={,,}

a.get(needed,default=None)在字典中查找,default表示报错信息

A = {12: 'Kathmandu', 11: 'London', 3: 'Sydney'}
B = {10: 'New York', 2: 'Delhi'}

A.update(B)  # 将 B 的键值对更新到 A 中
print(A)    # 输出合并后的字典

c = update(A, B)  # ❌ 错误!update() 是字典的方法,不能直接调用

 

6.字符串不可变&替换

language="Python"

ch=input()

language=language.replace("yt",ch)#必须要再次赋值!!!,因为不可变,所以会返回一个字符串

print(language)

 

题目:对字符进行映射:

法一:通过str.maketrans(str1,str2)返回一个从str1映射到str2的字典,

之后通过string_neededToBeTranslated.translate(映射的字典)生成一个新的字符串

print(new)即可

s1="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
trans1=str.maketrans("abcdefghijklmnopqrstuvwxyz","cdefghijklmnopqrstuvwxyzab")
new=s1.translate(trans1)
print(new)

法二:利用ord(character)和chr(character)

ord(character)返回字符的Unicode,chr将Unicode转换为对应的字符

s1="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
new_char=""
for char in s1:
    if char != " " and char != "." and char != "(" and char != ")":
        new_char=chr(ord(char)-2)#计算偏移
    else:
        continue
print(new_char)
 

 

7.列表乘积

mylist = [2, 5, 3, 4, 1]
product = 1
for num in mylist:
    product *= num
print(product)  # 输出 120

反转列表:

my_list = [1, 2, 3, 4]
reversed_list = my_list[::-1]  # 切片反转
print(reversed_list)  # 输出 [4, 3, 2, 1]

 

8.类

父类继承,和super()的使用

class Animal:
    def eat(self):
        print("我在吃东西")
    
class Dog(Animal):
    def bark(self):
        print("我在叫")
    def eat(self):
        super().eat()#super()

doggy=Dog()
doggy.eat()

# def eat(self):
#     super.eat(self)  # ❌ 错误用法,应为:super().父类方法名(参数)
# super 是函数不是属性:应该用 super() 调用,而不是 super
# 调用方式错误:super() 返回父类代理对象,调用时不需要传递 self
# 括号缺失:super 需要括号调用

通常类的实例属性都会放在 __init__ 方法中初始化,记住左右各有两个下划线

在类中定义实例方法时,第一个参数必须是 self,通过 self 访问和修改实例属性。调用方法时不需要传递 self 参数。

 

posted @ 2025-07-05 21:52  TOCMGG  阅读(8)  评论(0)    收藏  举报