#三引号字符串定义
message = """
Hello World
Hello Python 
      How are you ?
      This is my job.
 In the rule.

"""
print(message)


#match ...case 学习
# day = int(input("请输入星期几(1-7)"))

match day:
    case 1: print("周一:工作会议")
    case 2: print("周二:学习培训日")
    case 3: print("周三:项目开发日")
    case 4: print("周四:代码审查日")
    case 5: print("周五:总结规划日")
    case 6 | 7: print("周末轻松日")
    case _: print("输入错误")  #如果所有的都没有匹配到,就会执行默认的case _



#while 学习
i =1
total = 0
while i<=100:
    if i%2==0:
        total += i
    i=i+1

print(f"1到100所有偶数之和为:{total}")

message = "Hello-Python"

#for 学习,字符串直接可以循环打印
for m in message:
    print(m)

#for...range学习 1加到100
total = 0
for i in range(1,101):
    total+=i
print(total)

#for...range学习 1到100奇数打印
for i in range(1,101,2):
    print(i,end = " ")
print()

#for...range学习 1,4,7,10....间隔3个数打印
for i in range(1,101,3):
    print(i,end = " ")
print()


#嵌套循环,打印9*9乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={i*j} ",end=' ')
    print()


#嵌套循环,打印国际象棋棋盘
for i in range(1,20):
    for j in range(1,20):
        if (i+j)%2==1:
            print("□",end="  ")
        else:
            print("■",end="  ")
    print()


#太神奇了,字符还能用乘法,达到多次输出的效果。
print('*'*5)


#嵌套循环  """打印等腰三角形"""
#太神奇了,字符还能用乘法,达到多次输出的效果。
n= 10
char = "*"
for i in range(1, n+1):
    spaces = ' ' * (n - i)
    print(spaces + char * (2*i - 1))


# 学习while...break
# while True:
#     username = input("请输入用户名")
#     password = input("请输入密码")
#     if username == "zg" and password == "123456":
#         print("登录成功")
#         break
#     else:
#         print("登录失败,重新输入")

#list列表,正向索引,反向索引
# 0,1,2,3,4,5,6,7,8,9
# -9,-8,-7,-6,-5,-4,-3,-2,-1

#列表切片学习
hello = [1,2,3,"Hello",True];
print(hello[2])
print(hello[-2])
print(hello[0:3:2])
print(hello[:-1:])

#列表、字符串切片学习
s= "Hello World"
print(s[0:3])
print(s[0:4:2])
print(s[:-1])

#数字列表常用方法
num = [3,7,8,2,5,6,9,2,1]
print(num)
print(num.index(5))
num.reverse()
print("列表反转",num)

num.append(12)
print(num)

#.sort()是列表的方法,用于就地排序(即直接修改原列表),而不会返回任何值
# num_new = num.sort()
num.sort()
print("排序后的数字列表:",num)


#print除了用f""带变量,也能用逗号隔开直接加一个变量
print("你好","我是你的朋友")

print("总合:",sum(num))
print("平均值:",sum(num)/len(num))
print("最小值",min(num))
print(f"最大值:{max(num)}")
print()

#合并列表
num_list1=[19,23,25,29,32,11,203,502]
num_list2=[9,8,12,93,22,99,10,23,25,80,77,11]

#合并列表方法1
for num in num_list2:
    num_list1.append(num)
print("合并后的列表",num_list1)

#列表去重 判断某个元素存在、或不存 in, not in 用法
num_all = []
for item in num_list1:
    if item not in num_all:
        num_all.append(item)
    else :
        print(f"{item} 已存在了")
print("去重后的列表",num_all)

#列表结包
#合并列表方法2 ,解包符号学习 *
num_list = [*num_list1,*num_list2]
print("通过解包的方式合并后的列表",num_list)

#合并列表方法3
num_list = num_list1 + num_list2
print("通过加号合并后的列表",num_list)


#重新认识 range : range 是一个用来生成整数序列的内置函数‌,最常用于 for 循环中控制循环次数,它不会直接生成列表,而是按需计算数字以节省内存
#下面的操作并不会打印出列表
num1 = range(20)
num2 = range(1,21,2)
print(num1)
print(num2)


#案例1 生成所有数字的平方,存到数组中。

#方法一  传统方法
num_list = []
num_list2 = []
for num in range(1,21):
    num_list.append(num**2)  #幂指数运算符 **
    num_list2.append(num**3) # 3次方
print(num_list)
print(num_list2)

#方法二  列表推导式 语法格式 --->  [要插入的值 for in 序列/列表]
num_list3 = [i for i in range(1,21)]
num_list4 = [i**2 for i in range(1,21)]
num_list5 = [i**3 for i in range(1,21)]

print(num_list3)
print(num_list4)
print(num_list5)

#案例2 从一个数字列表中提取所有偶数,并计算其平方,存到另一个列表中 列表推导式-->判断偶数

#列表推导式,语法2: [要输入的值 for i in 列表  if 条件]
num_list = [13,1,2,3,4,5,6,7,8,9,10,11,12]
num_list2 = [ i for i in num_list]
print(num_list2)
num_list3 = [i**2 for i in num_list if i%2==0]  #  [要输入的值 for i in 列表  if 条件]
print(num_list3)

#字符串切片
str = "Hello Python Well Come to China"
print(str[0:7])

#字符串反转
print(str[-1:-7:-1]) #从后往前截取,步长也要是负数
print(str[-1:(len(str)+1)*-1:-1]) #字符串反转

#字符串分割
ss = str.split(" ")
print(ss)

#字符串替换
ss2 = str.replace(" ",'#')
print(ss2)
ss3 = ss2.split("#")
print(ss3)

#字符串查找
print("find 查找位置",str.find("o"))
# str.index("index 查找位置","o")  //slice indices must be integers or None or have an __index__ method 这个方法只能在数字中
print("count查找子字符串出现的次数",str.count("o"))
print(str.upper())

str = "hello worlD"
print(str.strip())   #去除字符串两端的空格,不是trim,而是strip
print(str.capitalize())  #仅首字母大写,其余全小写(不管原来大小写)
print(str.title())  #将字符串中每个单词的首字母转为大写,其余字母转为小写,并返回新字符串

str2 = "   Hello   "
print(str2.strip())


#案例 输入一个字符串,判断是否是回文
#黄山落叶松叶落山黄
# ss = "黄山落叶松叶落山黄"
ss = "你好啊小朋友"
dd = ss;

ss2 = [*dd]
print("字符串解包成列表",ss2)

ss2.reverse()
print("列表反转",ss2)

#将字符数组合并成字符串
ss3 = "".join(ss2)
print(ss3)

#列表 list 可重复,有序,可以修改的
#元组 tuple 元组是不可变的序列,类似列表,但创建后不可修改  元素有序,可重复

#元组的定义
t1 = (5,7,9,2,3,8,2,7,11,13,6)
t2 = ()
t3 = tuple()
t4 = (100,) #单元素元组,加一个,

print(t1)
print(t1.count(7))
print(t1.index(3)) #打印第一次出现的位置索引,0开始
print(type(t1))
print(t1[0])
print(t1[-1])
print(t1[0:5:2])

#组包 将多个值合并到一个集合中
#解包 将集合解开成独立的元素

t1=(1,3,5,7)
t2 = 1,2,3,4,5  #不加括号也会当成是定义元组

print(type(t2))

#基础解包
a,b,c,d = t1
print(a,b,c,d)  #可以打印多个变量值
a,*b = t1 #解包后b里面存放的是一个列表,便于操作
print(a,b)

#拓展解包
list1 = [1,2,3,4]
first,*middle,last = [1,2,3,4,5,6]
pre,*suf = list1

print(first)
print(middle)
print(last)
print((suf))
print(type(suf))
print(*suf)

#案例1 两个变量交换
a = 10
b = 20

t = a,b
b,a = t
print(a,b)

#合并步骤
a,b = (b,a)
a,b = b,a
print(a,b)

#案例3 三个变量交换
a = 100
b = 200
c = 300

#组包->解包 分解步骤
t = a,b,c
c,b,a = t
print(a,b,c)

#合并步骤
c,b,a = a,b,c
print(a,b,c)










更多推荐