python笔记

168 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

# Tempstr = input()
# if Tempstr[-1] in ['F', 'f']:
#     C = (eval(Tempstr[0:-1]) - 32) / 1.8
#     print('{:.2f}C'.format(C))
# elif Tempstr[-1] in ['C', 'c']:
#     F = eval(Tempstr[0:-1]) * 1.8 + 32
#     print('{:.sf}F'.format(F))
# else:
#     print('输入格式错误')
#PythonDraw.py
# import turtle
# turtle.setup(650, 350, 200, 200)
# turtle.penup()
# turtle.fd(-250)
# turtle.pendown()
# turtle.pensize(25)
# turtle.pencolor(1, 0.39, 0.28)
# turtle.seth(-40)
# for i in range(4):
#     turtle.circle(40, 80)
#     turtle.circle(-40, 80)
# turtle.circle(40, 80/2)
# turtle.fd(40)
# turtle.circle(16, 180)
# turtle.fd(40 * 2/3)
#DaydayUp1.py
# dayup = pow(1.001, 365)
# daydown = pow(0.999, 365)
# print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
#DaydayUp2.py
# dayfactor = 0.01
# dayup = pow(1 + dayfactor, 365)
# daydown = pow(1 - dayfactor, 365)
# print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
#DaydayUp3.py
# dayup = 1.0
# dayfactor = 0.01
# for i in range(365):
#     if i % 7 in [6, 0]:
#         dayup = dayup*(1-dayfactor)
#     else:
#         dayup = dayup*(1+dayfactor)
#     print("工作日的力量:{:.2f}".format(dayup))
#DaydayUP4.py
# def dayUP(df):
#     dayup = 1
#     for i in range(365):
#         if i % 7 in [6,0]:
#             dayup = dayup*(1-0.01)
#         else:
#             dayup = dayup*(1 + df)
#     return dayup
# dayfactor = 0.01
# while dayUP(dayfactor) < 37.78:
#     dayfactor += 0.001
# print("工作日的努力参数是:{:.3f}".format(dayfactor))
"""
pow(1.01,365)=37.78 pow(1.019,365)=962
GRIT ,坚毅,对长期目标的持续激情及耐久力
GRIT 是获得成功的最重要因素之一,牢记天天向上的力量
"""
"""
O一二三四五六七八九十[::-1]结果是 十九八七六五四三二一O
"""
"""
#WeekNamePrintV1.py
weeStr = "星期一星期二星期三星期四星期五星期六星期日"
weekID = eval(input("请输入星期数字(1-7):"))
pos = (weekID - 1) * 3
print(weekStr[pos: pos+3])
#WeekNamePrintV2.py
weekStr = '一二三四五六日'
weekID = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekID-1])
"""
"""
len(x) 长度,返回字符串x的长度
str(x) 任意类型x所对应的字符串形式 str(1.23)的结果为“1.23” str([1,2])的结果为“[1,2]”
hex(x)或oct(x) 整数x的十六进制或八进制小写形式字符串 hex(425)结果为“0x1a9” oct(425)结果为“0o651”

chr(u) u为Unicode编码,返回其对应的字符
ord(x) x为字符,返回其对应的Unicode编码

for i in range(12):
    print(chr(9800 + i), end=" ")

str.lower() 或 str.upper 返回字符串的副本,全部字符小写或大写
str.split() 返回一个列表,由str根据sep被分隔的部分组成 “A,B,C".split(",")结果为['A', 'B', 'C']
str.count(sub) 返回字符串sub在str中出现的次数 “an apple a day”.count("a")结果为4
str.replace(old, new) 返回字符串str副本,所有old子串被替换为new “python”.replace("n", "n123.io")结果为 “python123.io”
str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选 “python”.center(20, "=")结果为 ‘=========python==========’
str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符串 “= python=”.strip(" =np")结果为“ytho”
str.join(iter) 在iter变量除最后元素外每个元素后增加一个str“,”.join("12345")结果为 “12345” #主要用于字符串分隔符
字符串的格式化 format()方法格式化控制
填充对齐宽度
>>>"{0:=^20".format("PYTHON")
'=======PYTHON======='
>>>"{0:*>20}".format("BIT)
'*****************BIT'
>>>"{:10}".format("BIT")
'BIT         '

>>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'

>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
"""
"""
time库包括三类函数
时间获取:time() ctime() gmtime()
时间格式化: strftime() strptime()
>>>t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t)
>>>'2021-07-24 03:35:43'
程序计时:sleep(),perf_counter()

"""
"""
#TextProBarV1.py
import time
scale = 10
print("-----执行开始-----")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale) * 100
    print("{:^3.0f}%[{}->{}]".format(c, a, b))
    time.sleep(0.1)
print("-----执行结束-----")
#TextProBarV2.py
import time
for i in range(101):
    print("\r{:3}%".format(i), end="")
    time.sleep(0.1)
#TextProBarV3.py
import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))

"""

\

def login():
    username = input('用户名:')
    password = input('密码:')
    if username == 'admin' and password == '1234':
        print('登录成功')
    else:
        print('登录失败')
login()
def get_sum(a,b):
    if type(a) == type(b):
        s = a + b
        print(s)
    else:
        print("类型不一致")
get_sum(2,5)


def get_sum(a, b):
    if isinstance(a, int) and isinstance(b, int):
        s = a + b
        print(s)
    else:
        print('类型错误')
get_sum('hello', 'world')
get_sum(2,3)
 判断用户是否成功登录
def islogin(username, password, isremember=False):
    print('是否记住密码?', isremember)
    if username == 'admin' and password == '1234':
        print('登录成功')
    else:
        print('登录失败')


islogin('admin', '1234')
def borrow_book(bookname, number=1):
    print('进入借书系统---')
    print('要借阅的数名是:{},借阅的本数:{}'.format(bookname, number))


borrow_book('狂人日记')
borrow_book('草房子', 4)
library = ['python精通', 'MySQL', '数据分析', '人工智能']


def add_book(bookname):
    library.append(bookname)
    print("图书添加成功")


add_book('计算机网络')
print(library)


list1 = [32, 44, 24, 45, 32, 56, 67, 48]


def get_list(list_1):
    new_list = []
    for e in list_1:
        if e >= 50:
            new_list.append(e)
#   new_list = [e for e in list_1 if e >= 50]
    print(new_list)


get_list(list1)


def remove_from_list(list_1):
    n = 0
    while n<len(list_1):
        if list_1[n] < 50:
            list_1.remove(list_1[n])
        else:
            n += 1
    print(list_1)


remove_from_list(list1)
print(list1)

可变参数:
*args
**kwargs


def get_sum(*args):
    r = a + b
    print(r)


get_sum(2, 6, 9)
get_sum(2, 6, 9, 10)


第四周
guess = input()
if guess == 99:
    print("猜对了")
else:
    print("猜错了")
guess = eval(input())
print("猜{}了".format("对" if guess == 99 else "错" ))
score = eval(input())
if score >= 60 and score <70:
    grade = "D"
elif score >= 70 and score < 80:
    grade = "C"
elif score >= 80 and score < 90:
    grade = "B"
elif grade >= 90:
    grade = "A"
print("输入成绩属于级别{}".fo
try:
    <语句块1>
except NameError:
    <语句块2>
else :
    <语句块3>

finally:
    <语句块4>

CalBMIv1.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
    who = "偏廋"
elif 18.5 <= bmi < 25:
    who = "正常"
elif 25 <= bmi < 30:
    who = "偏胖"
else:
    who = "肥胖"
print("BMI 指标为:国际'{0}'".format(who))

CalBMIv2.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
    nat = "偏廋"
elif 18.5 <= bmi < 25:
    nat = "正常"
elif 25 <= bmi < 30:
    nat = "偏胖"
else:
    nat = "肥胖"
print("BMI 指标为:国际'{0}'".format(who))

#CalBMIv3.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who, nat = "", ""
if bmi < 18.5:
    who, nat = "偏廋", "偏廋"
elif 18.5 <= bmi < 24:
    who, nat = "正常", "正常"
elif 24 <= bmi < 25:
    who, nat = "正常", "偏胖"
elif 25 <= bmi < 28:
    who, nat = "偏胖", "偏胖"
elif 28 <= bmi < 30:
    who, nat = "偏胖", "肥胖"
print("BMI指标为:国际'{0}', 国内'{1}'".format(who, nat))
Calpiv1.py 圆周率值是:3.141592653589793

pi = 0
N = 100
for k in range(N):
    pi += 1/pow(16,k) * (4 /(8 * k + 1) - 2 / (8 * k + 4) - 1/(8*k + 5)-1/(8*k + 6))
print("圆周率值是:{}".format(pi))



CalpiV2.py
from random import random
from time import perf_counter
DARTS = 1000 * 1000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS+1):
    x, y = random(), random()
    dist = pow(x ** 2 + y ** 2, 0.5)
    if dist <= 1.0:
        hits = hits + 1
pi = 4 * (hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))


def add(a, b):
    print(a + b)

x = 1
y = 2
add(x, y)
add(a=x, b=y)


def foo(a=None):
    if a is None:
        a = []
    return a


def add(a, b, *args):
    result = a + b
    print(args)
    for arg in args:
        result += arg
    print(result)
    return result


add(1, 2)
add(1, 2, 3, 4)

numbers = [1, 2, 3, 4]
add(*numbers)

def f1(a, b, *args):
    print(a, b, args)


def f2(a, *args, b):
    #不推荐
    print(a, args, b)

def f3(a, *args, b=1):
    print(a, args, b)

def f4(a=1, *args, b=1):
    #不推荐
    print(a, args, b)
"""
参数:外界向里面传值
返回值:里面的内容向外界传送
def 函数名(参数)
    .....
    .....
    return xxxx
当函数调用时通过return向外返回值
注意:只要函数由返回值,则需要接收


"""


#def get_sum(*args):
#     total = 0
#     for i in args:
#         total += i
#     return total
#
#
# t = get_sum(1, 2, 3)
# print('外侧', t)
# x = 100
# x = x + t
# print(x)
#
#
#
# def get_maxandmin(numbers):
#     for i in range(0, len(numbers) - 1):
#         for j in range(0, len(numbers)-1-i):
#             if numbers[j] > numbers[j + 1]:
#                 numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
#     min = numbers[0]
#     max = numbers[-1]
#     return min,max
# list1 = [34, 11, 78, 90, 100, 23, 56, 88,91]
# result = get_maxandmin(list1)
# print(result)
#
# a, b = get_maxandmin(list1)
# print(a, b)
"""
全局和局部变量:
global关键字的添加
只有不可变的类型猜需要添加global
可变的类型不需要添加global
"""

# library = ['红楼梦', '西游记', '水浒传']
#
#
# def add_book(bookname):
#     if bookname not in library:
#         library.append(bookname)
#         print("添加成功")
#     else:
#         print("此书已经存在")
#
#
# def show_book():
#     print("图书馆的书记如下")
#     for book in library:
#         print(book)
#
#
# show_book()
#
# add_book('三国演义')

"""
可变与不可变
不可变:当改变变量的值时,地址发生了改变
    类型:int str float bool tuple
可变类型:里面的内容发生了改变,但是地址没有发生改变
    类型: list dict set
"""
# islogin = False
#
#
# def login(username, password):
#     if username == 'admin' and password == '1234':
#         print('登陆成功')
#         islogin = True
#     else:
#         print('登陆失败')
#
# def borrow_books(book_name):
#     if islogin:
#         print('成功借阅{}'.format(book_name))
#     else:
#         print('用户还没登录,不能借书')
#         username = input('用户名:')
#         password = input('密码:')
#         login(username, password)
#
# borrow_books('草房子')
# a = 100
#
#
# def test1():
#     a = 0
#     b = 8
#     print('a =', a)
#     print('b =', b)
#
#
# def test2():
#     print('a =', a)
#     print('b =', b)
#     b = 9
#
#
# def test3():
#     global a
#     a = 99
#     print('a =', a)
#
#
# test1()
# test2()
# test3()


# def division(m, n):
#     """接收两个整数 m 和 n为参数,
#     第一行输出 m 对 n 做整除的结果。
#     第二行输出m 除以 n 的结果。
#     函数没有返回值。
#     """
#     print(m // n)  # m 对n 整除
#     print(m / n)  # m 除以n
#
#
# if __name__ == '__main__':
#     a = int(input())
#     b = int(input())
#     division(a, b)  # 调用函数计算除法

"""
装饰器

"""
# def decorater(func):
#     def wrapper(*args, **kwargs):
#         func(*args, **kwargs)
#         print('刷漆')
#         print('铺地板')
#         print('买家具')
#         print('精装修房子')
#     return wrapper
#
# @decorater
# def house(address):
#     print('房子的地址在:{},是一个毛坯房'.format(address))
#
#
# @decorater
# def changfang(address, area):
#     print('房子的地址在:{},是一个毛坯房。建筑面积是:{}平米'.format(address, area))
#
#
# @decorater
# def hotel(name, address, area=40):
#     print('酒店的名字是:{},酒店的地址是:{},是一个毛坯房,单间的建筑面积是:{}平米'.format(name, address, area))
#
#
# house('北京四合院')
#
# print('--------')
#
# changfang('北京沙河北大桥', 1000)
# print('------->')
#
# hotel(name='全集大酒店', address='北京国贸')
# import requests
# import json
# osurl = "http://192.168.100.10"
# body={
#     "auth":{
#         "identity":{
#             "methods":["password"],
#             "password":{
#                 "user":{
#                     "id":"d618c8ee2d234997889b62ee18562ee0",
#                     "password":"000000"
#                 }
#             }
#         },
#         "scope":{
#             "project":{
#                 "id":"5e7709cbbd7c4c0e8733c3f7360d1d38"
#             }
#         }
#     }
# }
# headers = {}
# def get_token():
#     url = osurl+":5000/v3/auth/tokens"
#     re = requests.post(url,headers=headers,data=json.dumps(body)).headers["X-Subject-Token"]
#     return re
# def flavor_create():
#     url = osurl+":8774/v2.1/flavors"
#     headers["X-Auth-Token"] = get_token()
#     body = {
#         "flavor":{
#             "name": "centos7.8",
#             "id": 302,
#             "vcpus": 1,
#             "ram": 2048,
#             "disk": 40,
#         }
#     }
#     re = requests.post(url,data=json.dumps(body),headers=headers).json()
#     print(re)
#     return re
# flavor_create()

# """
# 装饰器修饰由返回值函数
#
# """
#
# def decorater(func):
#     def wrapper(*args, **kwargs):
#         r = func(*args, **kwargs)
#         print('预计装修费用')
#         print('刷漆')
#         print('铺地板')
#         print('买家具')
#         print('精装修房子')
#         return 60000
#
#
#     return wrapper
#
#
# @decorater
# def house():
#     print('我是一个毛坯房')
#     return 50000

# r = house()
# print(r)
#
#
#
#
# def outer_check(time):
#     def check_time(action):
#         def do_action():
#             if time < 22:
#                 return action()
#             else:
#                 return '对不起,你不具有该权限'
#         return do_action()
#
#
#     return check_time()
#
#
# @outer_check(23)
# def play_game():
#     return '玩游戏'
#