numpy
pandas
is / not is 比较的是内存地址
== / != 比较的是值
end = '' 不换行输出
*表达式受值传参,多余或者差值,都以列表形式显示
字典函数dict(键=“值”,……)
enumerate() 遍历列表,返回两个参数 索引,对应值
list_1 = [1,2,3,4,5,6,7,['a','b','c']] print(list_1) print(type(list_1)) print(list_1[7][2]) #元组可以作为字典的键,列表不行
#华氏温度转为摄氏温度
# F = int(input("用户输入的数字\n"))
#
# c = (F-32)/1.8
#
# print(c)
#输入圆的半径计算周长与面积
# r = int(input("给入半径大小\n"))
#
# c = 3.14 * 2 * r
# s = 3.14 * r **2
# print("周长等于" , c)
# print("面积等于" , s)
#判断年份是不是闰年
n = int(input("请输入年份\n"))
if n % 4 == 0:
if n % 100 == 0:
if n % 400 ==0:
print("ture")
print("是闰年")
else:
print("false")
print("不是闰年")
else:
print("true")
print("是闰年")
else:
print("false")
print("不是闰年")
.Format
1.不需要在意数据类型问题
2.一个参数可以多次输出,且不需要在意参数的顺序
3.填充方式灵活且对方式便捷等
name1 = ["python" , "lol"] name2 = ["aaa" , "bbb"] print("I am {0[0]} ! I am{0[1]}! you are {1[0]} ! you are {1[1]}" .format(name1 , name2))
类Class
:^居中对齐
:<左对齐
:>右对齐
:$<左对齐,剩余空位用$符号填充
:>右对齐,剩余空位用符号填充
print('{:*^10}' .format("lol"))
切片
info2 = [1,2,3,4,5,6,7,8,9]
#输出单数
print(info2[0::2])
#输出双数
print(info2[1::2])
#输出3的倍数
print(info2[2::3])
转义字符
\n换行 \t制表符 r或者R:使所有的转义失效
find
(查找的字符串,开始位置,结束位置)
查找到的是下标索引
找不到给值-1
index
(查找的字符串,开始位置,结束位置)
查找到的是下标索引
找不到报错
九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%d * %d = %2d " % (j,i,j*i), end='')
print("")
列表的插入与删除
1.append() 向列表添加单一元素
2.extend() 可以将一个列表添加到另一个列表中,会插入在所在列表末尾 格式:Listname.extend(列表名)
3.insert() 向列表添加单一元素,自定义位置 格式:Sname.insert(索引位置,插入的元素)
1.remove()函数进行删除 格式:Sname.remove(元素名)
2.del()函数 执行完删除操作不会返回删除的元素
3.pop()函数 会将删除的元素返回
清空字典
clear()
maketrans()加密解密
table1 = "abcdefghijklmnopqrstuvwxyz"
table2 = table1[1:] + table1[0:1]
data = "you are my only one lmj"
table = str.maketrans(table2,table1) 形成字典,键值对
print("加密后的明文是: %s" %(data.translate(table)))
data2 = "xnt zqd lx nmkx nmd kli"
table3 = str.maketrans(table1,table2)
print("解密后的明文是: %s" %(data2.translate(table3)))
print(table3) # 打印映射表里对应的ASCII
items()函数遍历字典键值对
fruitprice = {'西瓜':3 ,'香蕉':2 ,'苹果':4 ,'橙子':3 ,'哈密瓜':6 ,'芒果':8}
for i,x in fruitprice.items():
print('key:' ,i ,'value:' ,x)
字典函数
len(字典名) 计算字典的元素个数
str(字典名) 使用可打印的字符串方式输出字典
type(字典名) 返回变量类型
字典名.copy() 复制一个字典
字典名.get(key,default) 返回指定键的值,如果值不在字典中,返回default
第六章 函数
def关键字定义函数
在定义函数时,指定的默认参数必须放在最后,且默认参数必须是不可变型的
计算矩形面积函数
def rectangle(width,height):
area = width * height
print("矩形的面积为:" + str(area))
rectangle(3,4) #自己设定用键盘录入
parament
接收任意多个实际参数并将其放到一个元组中
#*parament形式的可变参数
def printinfo(arg1, *parament):
print("输出:")
print(arg1)
print(parament)
printinfo(50,60,70)
#**parament形式的可变参数
可以任意多个显示赋值的实际参数,并将所有赋值的参数一起放到一个字典里
return
函数返回值,可以是任意类型,只要执行到return直接结束该函数
global关键字
global关键字修饰局部变量后变成全局变量
nonlocal关键字
nonlocal关键字必须使用在嵌套函数中,将变量声明为外层变量
匿名函数
result = Lambda[arg1[,arg2,…argn]]:expression
numbers = [1,2,3,4,5] #使用map()函数将列表中的每个元素平方
squared_numbers = list(map(lambda x:x**2,numbers))
print(squared_numbers)
试一下全局变量、局部变量
def one():
num = "00"
def two():
num ="11"
def three():
nonlocal num
num = "22"
def four():
global num
num = "33"
two()
print(num)
three()
print(num)
four()
print(num)
one()
print(num)
res = lambda x,y:x+y def test(a,b,func): result = func(a,b) print(result) test(11,22,res)
stus =[ {"name":"zhangsan","age":18}, {"name":"lisi","age":19}, {"name":"wangwu","age":17} ] stus.sort(key=lambda x:x["age"]) #内置函数为sort() for stu in stus: print(stu)
两种方式求0-100的总和
for循环
def sum_hundred(n):
sum = 0
for i in range(0,n+1):
sum +=i
print(sum)
sum_hundred(100)
递归方式
def sum_recu(n):
if n>0:
return n + sum_recu(n-1)
else:
return 0
sum = sum_recu(100)
print(sum)
str = "i'm yuan shen" print(str.capitalize())
strip
删除字符串左右两端指定的字符
lstrip 删除字符串左侧指定字符
rstrip 删除字符串右侧指定字符
replace 替换指定字符串 格式:.replace("需要被替换的字符",“替换的字符”)
startswith
表示以什么开始
# n = int(input("请输入一个数字\n")) # if n <-1: # print(5 * n+3) # elif n>=-1 and n<=1: # print(n +2) # else: # print(3 * n -5) #评级
n = int(input("输入一个成绩"))
if n <=60:
print("E")
elif n <=70:
print("D")
elif n <= 80:
print("C")
elif n <=90:
print("B")
else:
print("A")
# def f(x,y,z): # if x + y > z or x + z > y or y + z > x: # print("能构成三角形") # # print("三角形周长为" , (x+y+z)) # s = int((x + y + z) / 2) # print(s) # area = (s*(s - x)*(s - y)*(s - z)) ** 0.5 # print("三角形面积为", area) # # else: # print("不能构成三角形,请注意边长赋值") # # # a =int(input("请输入第一条边长\n")) # b =int(input("请输入第二条边长\n")) # c =int(input("请输入第三条边长\n")) # f(a,b,c)
#判断一个数是不是素数 n = int(input("请输入一个正整数\n")) def is_prime_number(n): a = "不是素数" b = "是素数" #0和1不是素数 if n < 2: return a #返回值,不执行后面的代码 else: # 判断是否能被2到根号num之间的数整除 for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return a #如果都不能被整除,那这个数就是素数 return b print(is_prime_number(n))
def gcd(a,b): while b !=0: a,b = b,a%b return a def lcm(a,b): return a*b // gcd(a,b) num1 = int(input("请输入第一个数")) num2 = int(input("请输入第二个数")) gcd_result = gcd(num1,num2) lcm_result = lcm(num1,num2) print("最大公因数是:" , gcd_result) print("最小公倍数是:" , lcm_result)
#寻找水仙花数 #一个三位数,该数字每个位上数字的立方之和正好等于它本身。
s = input("请输入百位数所在位\n")
x = input("请输入十位数所在位\n")
h = input("请输入个位数所在位\n")
n = int(s + x + h)
sum = int(s) **3 + int(x) **3 + int(h) **3
if n == sum:
print("是水仙花数")
else:
print("不是水仙花数")
arr = []
for i in range(100,1000):
g = (i % 10)**3 //"//"整除
s = (i //10 %10)**3
b = (i // 100)**3
if g+s+b == i:
arr.append(i)
print(arr)
#百钱百鸡 #公鸡5元一只,母鸡3元一只,小鸡1元三只
for gj in range(0,101):
for mj in range(0,101):
for xj in range(0,301,3):
if gj + mj + xj == 100 and 5*gj + 3*mj + xj//3 == 100:
print(f"公鸡个数:{gj},母鸡个数:{mj},小鸡个数:{xj}")
#CRAPS赌博游戏 #两枚骰子 第一次 7 11:玩家胜; 2 3 12:庄家胜 # 第n次 第一次的点数 :玩家胜 7 : 庄家胜
from random import randint
capital =1000
print("启动资金:" , capital)
while capital>0:
n = 1
num = int(input("请下注:"))
point = randint(1,6) + randint(1,6)
print("骰子点数为:" , point)
if point == 7 or point == 11:
print("玩家胜")
capital +=num
print(f"用户资金:{capital}")
elif point == 2 or point == 3 or point == 12:
print("庄家胜")
capital -=num
print(f"用户资金:{capital}")
if capital == 0:
print("耶,你把钱输光了~~~")
break
else:
while True:
n += 1
first_point = point
point2 = randint(1,6) + randint(1,6)
print(f"第{n}回合骰子点数为:{point2}")
if point2 == first_point:
print("玩家胜")
capital += num
print(f"用户资金:{capital}")
break
elif point2 == 7:
print("庄家胜")
capital -=num
print(f"用户资金:{capital}")
n = 1
break
else:
print("耶,你把钱输光了~~~")
#斐波那契数列 #数列前两个数都是1,从第三个数开始,每个数都是前两个之和
def fibonacci(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = 100
for i in range(n):
fib = fibonacci(i)
if fib > n:
break
print(fib,end=" ")
#斐波那契数列 #数列前两个数都是1,从第三个数开始,每个数都是前两个之和
array = [1,1]
for i in range(0,100):
for array_i in array:
if i == array[-1] + array[-2]:
array.append(i)
print(array)
#或者
array = [1,1]
for i in range(2,100):
new_number = array[i-1] + array[i-2]
array.append(new_number)
print(array)
#打印一百以内的素数
for i in range(2,101):
for n in range(2,i):
if i%n == 0:
break
elif n == i-1:
print(i,end=" ")
#扔骰子,统计点数
from random import randint
randint(1,6)
array = []
for i in range(6001):
if i > 0:
n = randint(1,6)
array.append(n)
print(array.count(1))
print(array.count(2))
print(array.count(3))
print(array.count(4))
print(array.count(5))
print(array.count(6))
#改进
import random
counters = [0] * 6
for n in range(6001):
face = random.randint(1,6)
counters[face - 1] +=1
for face in range(1,7):
print(f"{face}点出现了{counters[face - 1]} 次")
class Solution: def isPalindrome(self, x: int) -> bool: • return str(x) == str(x)[::-1] //回文数
递归计算
先写递归公式,再在上方写上必要值条件return返回值
#打印日历
import calendar
cal = calendar.month(2023,12)
print("Here is the calendar of 12:")
print(cal)
随机函数
random() 0——1之间的随机浮点数
uniform() 两者间的随机浮点数,两者位置可以颠倒
randint() 生成两者间随机整数,两者必须为整数,且左<右
choice(sequence) 从sequence内返回一个随机数,可以是列表,元素或字符串
shuffle(x[,random]) 将列表元素打乱顺序,也称“洗牌”,改变原有序列
sample() 从指定序列中随机获取K个元素作为一个片段返回
# 创建一个列表 import random my_list = [1, 2, 3, 4, 5] # 使用sample()函数从列表中随机选择3个元素 selected_elements = random.sample(my_list, 3) # 输出随机选择的元素 print(selected_elements)
class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"{self.name} is {self.age} years old." #
创建一个 Person 对象 person = Person("Alice", 30) # 使用 str() 函数将对象转换为字符串 print(str(person)) # 输出: Alice is 30 years old.
判断是否主线程运行
if name == "main":
people = "我是一个中国人" def fun_dream(): print("QWQ") if __name__ == "__main__": #是否直接运行的本模块,如果是,TRUE,运行以下代码,否为FALSE fun_dream() people = people+"我正在全力以赴" print(people)
魔法函数
*repr
try: a = input() if(not a.isdigit()): raise (ValueError("走人")) except ValueError as e: print("抛出异常",repr(e))
encode() 将字符串转化为字节 括号内写编码格式,如"utf-8"
decode() 将字节转化为字符串 括号内写编码格式,如"utf-8"