文档章节

Python核心编程 第六章课后习题

toddler
 toddler
发布于 2014/12/14 11:39
字数 3643
阅读 2552
收藏 8

6–1.

字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串

是否是另一个大字符串的一部分?

Answer:

# 1
str_1 = 'perfect is shit'
if 'shit' in str_1:
    print 'INININ!!!'
else:
    print 'Not ININININ!!!'

# 2
str_1.find('shit')
str_1.count('shit')
str_1.index('shit')


6-2.

#! /usr/bin/env python
# coding: utf-8

'''
6–2.
字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且
可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你.
'''

import string
import keyword

alphas = string.letters + '_'
nums = string.digits
key_list = keyword.kwlist

print 'Welcome to the Identifier Checker v1.0'
print 'Testees must be ai least 2 chars long.'

myInput = raw_input('Identifier to test?')

if len(myInput) >= 1:
    if myInput[0] not in alphas:
        print '''invalid : first symbol must be alphabetic'''
    elif myInput in key_list:
        print '''invalid: the input id is a Python's keyword''' 
    else:
        alphnums = alphas + nums
        for otherChar in myInput[1:]:
            if otherChar not in alphnums:
                print '''invalid: remaining symbols must be alphanumeric'''
                break
        else:
            print "okay as an identifier"

6-3.

#! /usr/bin/env python
# coding: utf-8

'''
6–3.
排序
(a) 输入一串数字,从大到小排列之.
(b) 跟 a 一样,不过要用字典序从大到小排列之.
'''
#(a)
def get_num():
    global num_list
    num_list = []
    num = ''
    while num != '!':
        num = raw_input('输入一些数字,以"!"结束').strip()
        if num != '!':
            try:
                num = float(num)
            except:
                print '输入有误,请重新输入'
                get_num()
            else:
                num_list.append(num) 
        else:
            break
    return num_list

def sort_descending():
    get_num()
    print sorted(num_list, reverse = True)

print '----------------(a)----------------'
sort_descending()

#(b)
print '-----------------(b)---------------'
key_sort = []
while True:
    k = raw_input('输入一些数字吧,以字典序排列大小,以"#"结束输入:')
    if k != '#':
        key_sort.append(k)
    else:
        break
print sorted(key_sort, reverse = True)

6-6.

#!/usr/bin/env python
# coding: utf-8

'''
6–6.
字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的
空格(如果使用 string.*strip()函数那本练习就没有意义了)
'''

def blank():
    get_str = raw_input('please in put your string: ')
    r = len(get_str) - 1    
    l = 0
    while get_str[l] == ' ':
        l = l + 1
    while get_str[r] == ' ':
        r = r - 1
    result = get_str[l:r+1]
    return result

if __name__ == '__main__':
    print blank()

6-8.

#! /usr/bin/env python
# coding: utf-8

'''
6–8.
列表.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题:
能够返回符合英文语法规则的形式,比如输入“89”返回“eighty-nine”。本练习中的值限定在家 0
到 1,000.
'''

# 这道题用字典肯定好做!!!!

def get():
    global get_num
    get_num = raw_input('please input your number:')
    try:
        get_num = int(get_num)
    except:
        print 'Error Input,please input a number!'
        get() 
    else:
        print 'Input success!'
#(1)
eng_list = []
eng = "zero,one,two,three,four,five,six,seven,eight,nine,ten"
eng_list = eng.split(',')
result = []
get()
get_list = list(str(get_num))
for i in get_list:
    result.append(eng_list[int(i)])

print '-'.join(result)

#(2)
print '------------------附加题-------------------'
'分三组,(1)0-9的数字做一个列表,(2)10-19的数字做一个列表,(3)20、30、40……做一个列表'
str_1 = "zero,one,two,three,four,five,six,seven,eight,nine"
str_2 = "ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen,twenty"
str_3 = "thirty,forty,fifty,sixty,seventy,eighty,ninety"
eng_1 = [] 
eng_2 = []
eng_3 = []
eng_1 = str_1.split(',')
eng_2 = str_2.split(',')
eng_3 = str_3.split(',')

#调用get() 
get()

#把输入的数字按“千,百,十,个”位,分割  
kilo = get_num / 1000
hund = get_num % 1000 / 100
deca = get_num % 1000 % 100 / 10
unit = get_num % 1000 % 100 %10 

'--------------------------------------------------------------------' 
#写完才发现,其实用格式化输出更好,连接字符串的方式不太好。
#print '%d thousand- %d hundred' % (eng_1[int(kilo)], eng_1[int(hund)]
'--------------------------------------------------------------------' 
  
if kilo != 0:
    if hund != 0 :
        if int(deca) >= 2 and unit !=0:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(hund)],'hundred','-',eng_3[int(deca)-3],'-',eng_1[int(unit)]
        elif int(deca) >= 2 and unit == 0:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(hund)],'hundred','-',eng_3[int(deca)-3]
        elif 1<=int(deca)<2:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(hund)],'hundred','-',eng_2[int(unit)]
        elif int(deca)==0 and unit != 0:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(hund)],'hundred','-',eng_1[int(unit)]
        elif int(deca)==0 and unit == 0:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(hund)],'hundred'
    elif hund == 0 :
        if int(deca) >= 2 and unit !=0:
            print eng_1[int(kilo)],'thousand','-',eng_3[int(deca)-3],'-',eng_1[int(unit)]
        elif int(deca) >= 2 and unit == 0:
            print eng_1[int(kilo)],'thousand','-',eng_3[int(deca)-3]
        elif 1<=int(deca)<2:
            print eng_1[int(kilo)],'thousand','-',eng_2[int(unit)]
        elif int(deca)==0 and unit != 0:
            print eng_1[int(kilo)],'thousand','-',eng_1[int(unit)]
        elif int(deca)==0 and unit == 0:
            print eng_1[int(kilo)],'thousand',
elif kilo == 0:
    if hund != 0 :
        if int(deca) >= 2 and unit !=0:
            print eng_1[int(hund)],'hundred','-',eng_3[int(deca)-3],'-',eng_1[int(unit)]
        elif int(deca) >= 2 and unit == 0:
            print eng_1[int(hund)],'hundred','-',eng_3[int(deca)-3]
        elif 1<=int(deca)<2:
            print eng_1[int(hund)],'hundred','-',eng_2[int(unit)]
        elif int(deca)==0 and unit != 0:
            print eng_1[int(hund)],'hundred','-',eng_1[int(unit)]
        elif int(deca)==0 and unit == 0:
            print eng_1[int(hund)],'hundred'
    elif hund == 0 :
        if int(deca) >= 2 and unit !=0:
            print eng_3[int(deca)-3],'-',eng_1[int(unit)]
        elif int(deca) >= 2 and unit == 0:
            print eng_3[int(deca)-3]
        elif 1<=int(deca)<2:
            print eng_2[int(unit)]
        elif int(deca)==0:
            print eng_1[int(unit)]

6-9.

#! /usr/bin/env python
# coding: utf-8

'''
6–9.
转换.为练习 5-13 写一个姊妹函数, 接受分钟数, 返回小时数和分钟数. 总时间不
变,并且要求小时数尽可能大.
'''
#5-13.py
'''
def transfomate():
    global hour,minute
    row_time = raw_input('输入你要转换的时间(格式H:M-->  xx:yy):')
    time_list = row_time.split(':')
    hour = time_list[0]
    minute = time_list[1]
    total = int(hour) * 60 + int(minute)
    return '转换为分钟---->' + str(total)

print transfomate()
'''    
    
def m_trans_h():
    get_time = int(raw_input('输入你要转换的时间(分钟数-->一个正整数):'))
    hour = get_time / 60
    minute = get_time % 60 
    print hour,'H',':',minute,'M'
    
m_trans_h()

6-10.

#!/usr/bin/env python
# coding:utf-8

'''
6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转.
比如,输入"Mr.Ed",应该返回"mR.eD"作为输出.
'''

str_1 = raw_input('Enter your string:')
str_list = list(str_1)
result_list = []
for i in str_list:
    if i.isupper():
        result_list.append(i.lower())
    elif i.islower():
        result_list.append(i.upper())
    else:
        result_list.append(i)

result = ''.join(result_list)
print 'Before: %s' % str_1
print 'After: %s' % result

6-11.

#!/usr/bin/env python
# coding: utf-8

'''
6–11.转换
(a)创建一个从整数到 IP 地址的转换程序,如下格式: WWW.XXX.YYY.ZZZ.
(b)更新你的程序,使之可以逆转换.
'''

#(a)
print '--------------(a)--------------'
def format_ip():
    num = raw_input('Enter ip number(12 integer)')
    w = num[0:3]
    x = num[3:6]
    y = num[6:9]
    z = num[9:12]
    tmp = [w,x,y,z]
    ip = '.'.join(tmp)
    return ip

if __name__ == '__main__':
    print format_ip()
    

#(b)
print '--------------(b)--------------'
def re_format_ip():
    ip = raw_input('Enter ip:')
    tmp = ip.split('.')
    num = ''.join(tmp) 
    return num
if __name__ == '__main__':
    print re_format_ip()

6-12.

#!/usr/bin/env python
# coding:utf-8


'''
6–12.字符串
(a)创建一个名字为 findchr()的函数,函数声明如下:
def findchr(string, char)
findchr()要在字符串 string 中查找字符 char,找到就返回该值的索引,否则返回-1.不能用
string.*find()或者 string.*index()函数和方法
(b)创建另一个叫 rfindchr()的函数,查找字符 char 最后一次出现的位置.它跟 findchr()工作
类似,不过它是从字符串的最后开始向前查找的.
(c)创建第三个函数,名字叫 subchr(),声明如下:
def subchr(string, origchar, newchar)
subchr()跟 findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回
修改后的字符串.
'''

import types

#(a)
def findchr(string, char):
    print 'The string is "%s" and the char is "%s"' % (string, char)
    result = []
    for i, j in enumerate(string):
        if char == j:
            result.append(i)         
    if len(result) != 0:
        print 'the index of char:'
        return result
    else:
        return -1
    
#(b)
def rfindchr(string, char):
    print 'The string is "%s" and the char is "%s"' % (string, char)
    l = len(string)
    for i, j in enumerate(string[::-1]):
        if char == j:
            result = l-i
            break
    if type(result) is types.IntType :
        print 'the last index of char:'
        return result
    else:
        return -1

#(c)
def subchr(string, origchar, newchar):
    print 'The string is "%s" ,the origchar is "%s" and the char is "%s"' % (string, origchar,newchar)
    result = []
    str_list = list(string)
    for i, j in enumerate(str_list):
        if origchar == j:
            str_list[i] = newchar
    result = ''.join(str_list)
    return result

print '----(a)-----'
print findchr('dota is the best','i')
print '----(b)-----'
print rfindchr('dota is the best!','t')
print '----(c)-----'
print subchr('I love dota','I','We')

6-13.

#! /usr/bin/env python
# coding: utf-8

'''
6–13.字符串.string 模块包含三个函数,atoi(),atol(),和 atof(),它们分别负责把字符串转
换成整数,长整型,和浮点型数字.从 Python1.5 起,Python 的内建函数 int(),long(),float()也可以
做相同的事了, complex()函数可以把字符串转换成复数.(然而 1,5 之前,这些转换函数只能工作于
数字之上)
string 模块中并没有实现一个 atoc()函数,那么你来实现一个,atoc(),接受单个字符串做参
数输入,一个表示复数的字符串,例如,'-1.23e+4-5.67j',返回相应的复数对象.你不能用 eval()函
数,但可以使用 complex()函数,而且你只能在如下的限制之下使用 complex():complex(real,imag)
的 real 和 imag 都必须是浮点值.
'''

def atoc(string):
    flag_index = string.rfind('-')
    if flag_index <= 0:
        flag_index = string.rfind('+')
    if flag_index > 0:
        real = float(string[0:flag_index])
        imag = float(string[flag_index:-1])
    return complex(real,imag)

print atoc('-1.23e+4-5.67j')

6.-14.

写来写去想了好久,决定还是用字典最简单啦

#!/usr/bin/python
#coding:utf-8

#author:toddler
#date:Jan 14 2015

'''
6–14.随机数.设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面
是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从
下面的规则中产生,这个规则本身是个悖论.
(a) the paper covers the rock,
布包石头.
(b)石头砸剪子,
(c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你
的程序来决定一个胜利者或者平手.注意:最好的算法是尽量少的使用 if 语句.
'''

from random import choice

def Rochambeau(idea):
    dict_choice = {'stone':'1','shear':'2','paper':'3'}
    dict_result = {'11':'draw','22':'draw','33':'draw','12':'win','13':'lose','21':'lose','23':'win','31':'win','32':'lose'}
    cpu_choice = choice(['stome','shear','paper'])
    print "cpu choice : %s" % cpu_choice
    return "the result is : %s" % dict_result[dict_choice[idea] + dict_choice[cpu_choice]]
    
if __name__ == "__main__":
    while True:
        idea = raw_input("Please input your idea: stone or shear or paper (e to exit)\n") 
        print "-----------------------------------------"
        print "your choice : %s" % idea
        if idea.lower().strip() == 'e':
            break
        elif (idea != 'stone') and (idea != 'shear') and (idea != 'paper'):
            print "Please check your input"
            continue
        print Rochambeau(idea)

6-15.

#!/usr/bin/env python
# coding:utf-8

# date: Jan 15 2015
# author: toddlerya

"""
6–15.转换
(a)给出两个可识别格式的日期,比如 MM/DD/YY 或者 DD/MM/YY 格式,计算出两个日期间的天
数.
(b)给出一个人的生日,计算从此人出生到现在的天数,包括所有的闰月.
(c)还是上面的例子,计算出到此人下次过生日还有多少天
"""

from datetime import date


def calcdate(string1, string2):
    temp_list1 = string1.split("/")
    temp_list2 = string2.split("/")
    days_count = ""
    first_date = date(int(temp_list1[2]), int(temp_list1[1]), int(temp_list1[0]))
    second_date = date(int(temp_list2[2]), int(temp_list2[1]), int(temp_list2[0]))
    if first_date < second_date:
        days_count = abs(second_date - first_date)
    return days_count.days


# 以一个人的生日为参数,计算从此人出生到现在的天数,包括所有的闰月
def calcbirth(string):
    today = date.today()
    time_to_birth = ""
    temp_list = string.split("/")
    birth = date(int(temp_list[2]), int(temp_list[1]), int(temp_list[0]))
    if birth < today:
        time_to_birth = abs(today - birth)
    else:
        print("Please input the right birth")
    return time_to_birth.days   # 返回计算后的天数,用".days"取得天数,舍去小数点


def nextbirth(string):
    today = date.today()
    time_to_birth = ""
    temp_list = string.split("/")
    month_day = date(today.year, int(temp_list[1]), int(temp_list[0]))
    birth = date(int(today.year+1), int(temp_list[1]), int(temp_list[0]))
    if today < month_day:
        next_time_to_birth = abs(month_day - today)
    elif today < birth:
        next_time_to_birth = abs(birth - today)
    else:
        print("Please input the right birth")
    return next_time_to_birth.days   # 返回计算后的天数,用".days"取得天数,舍去小数点


if __name__ == "__main__":
    while True:
        choice = raw_input("I can do something:\na: Count the number of days between two date\n"
                           "b: Count the number of days since you born\n"
                           "c: Count the number of days before your next birth\n"
                           "q to quit\n")
        if choice == 'q':
            break
        elif choice == 'a':
            str_1 = raw_input("Please enter your first date: like  DD/MM/YY \n")
            str_2 = raw_input("Please enter your second date\n")
            try:
                print("The number of days between two date is", calcdate(str_1, str_2))
            except:
                print("Please check your enter format DD/MM/YY")
        elif choice == 'b':
            str_date = raw_input("Please enter your date: like  DD/MM/YY \n")
            try:
                print "You had born", calcbirth(str_date), "days"
            except:
                print("Please check your enter format DD/MM/YY")
        elif choice == 'c':
            str_date = raw_input("Please enter your birth date: like  DD/MM/YY \n")
            try:
                print "There are", nextbirth(str_date), "days of your next birthdays"
            except:
                print("Please check your enter format DD/MM/YY")

6-16.

真是笨,想了那么久,勤能补拙,多写多练(づ ̄3 ̄)づ

#!/usr/bin/env python
# coding:utf-8

# author: toddlerya
# date: Jan 15 2015

"""
6–16.矩阵.处理矩阵 M 和 N 的加和乘操作.
"""


def matrix_add(mat_1, mat_2):
    # 矩阵加法应满足两个矩阵的行数列数相同
    if len_m1 != len_m2:
        print "Error, two matrix must have the same dimension!"
        return
    elif len_n1 != len_n2:
        print "Error, two matrix must have the same dimension!"
        return
    else:
        res_matrix = []
        for m in range(len_m1):
            res_matrix.append([])
            for n in range(len_n1):
                res_matrix[m].append(mat_1[m][n] + mat_2[m][n])
        return res_matrix


def matrix_multiply(mat_1, mat_2):
    # 矩阵乘法不满足交换律;矩阵乘法满足结合律
    if len_n1 != len_m2:
        print "Error, the dimension of matrix is wrong!"
    else:
        res_matrix = []
        for m in range(len_m1):
            res_matrix.append([])
            for r in range(len_n1):
                res_matrix[m].append(0)
                for n in range(len_n2):
                    res_matrix[m][r] += mat_1[m][n] * mat_2[n][r]
        return res_matrix


def enter():
    global matrix_1, matrix_2, len_m1, len_n1, len_m2, len_n2
    matrix_1 = input("Please input the matrix M\n")
    matrix_2 = input("Please input another matrix N\n")
    len_m1 = len(matrix_1)
    len_n1 = len(matrix_1[0])
    len_m2 = len(matrix_2)
    len_n2 = len(matrix_2[0])

if __name__ == "__main__":
    while True:
        choice = raw_input("Matrix addition(A) or Matrix multiplication(B) (q to quit)\n").lower()
        if choice == "a":
            enter()
            print matrix_add(matrix_1, matrix_2)
        elif choice == "b":
            enter()
            print matrix_multiply(matrix_1, matrix_2)
        elif choice == 'q':
            break
        elif choice != "a" or "b" or "q":
            print "Please check your enter!"

6-17.

#!/usr/bin/env python
# coding:utf-8

"""
6–17.方法.实现一个叫 myPop()的函数,功能类似于列表的 pop()方法,用一个列表作为输入,
移除列表的最新一个元素,并返回它.
"""


def myPop(alist):
    new_list = alist[:-1]
    return new_list


if __name__ == "__main__":
    get_list = input("Please input your list: \n")
    print "The initializing list is %s" % get_list
    print "The new list is", myPop(get_list)

6-18.

zip() 内建函数

在 6.13.2 节里面关于 zip()函数的例子中,zip(fn,ln)返回的是什么?

返回的是元组。

6-19.

#!/usr/bin/env python
# coding:utf-8
# author:toddlerya
# date:Jan 17 2015
"""
6–19.多列输出.有任意项的序列或者其他容器,把它们等距离分列显示.由调用者提供数据和
输出格式.例如,如果你传入 100 个项并定义 3 列输出,按照需要的模式显示这些数据.这种情况下,应
该是两列显示 33 个项,最后一列显示 34 个.你可以让用户来选择水平排序或者垂直排序.
"""


def reverse_matrix(a_list):
    """反转矩阵"""
    row = len(a_list)
    col = len(a_list[0])
    col_temp = []
    res_rev_matrix = []
    for c in range(col):
        for r in range(row):
            col_temp.append(a_list[r][c])
        res_rev_matrix.append(col_temp)
        col_temp = []  # 必须清空该列表,否则影响后面的数据

    " 不足的空格补'*' "
    sub = len(res_rev_matrix[0]) - (len(a_list[row - 1]) - len(a_list[row - 2]))
    if sub != len(res_rev_matrix[0]):
        res_rev_matrix.append(["*"] * sub + a_list[row - 1][col:len(a_list[row - 1])])
    return res_rev_matrix


def multi_print(b_list, line, style=True):
    length = len(b_list)
    res_matrix = []
    interval = length / line
    remainder = length % line
    if 0 == remainder:
        x = 0
        y = 0
        while y < line:
            res_matrix.append(b_list[x:x + interval])
            x += interval
            y += 1
    else:
        x = 0
        y = 0
        while y < line-1:
            res_matrix.append(b_list[x:x + interval])
            x += interval
            y += 1
        res_matrix.append(b_list[x:x + interval+remainder])
    if not style:
        return reverse_matrix(res_matrix)
    return res_matrix


if __name__ == "__main__":
    result = []
    container = []
    for i in range(1, 101):
        container.append(i)

    print "水平排序:\n"
    result = multi_print(container, 5)
    for i in result:
        print i

    print "\n\n"

    print "垂直排序:\n"
    result = multi_print(container, 8, False)
    for i in result:
        print i


© 著作权归作者所有

toddler
粉丝 13
博文 33
码字总数 21659
作品 1
济南
QA/测试工程师
私信 提问
新手入门,学习《python核心编程》需要注意哪些,怎么提高效率

@fzyz_sb 你好,想跟你请教个问题: 你好,我这几天一直在学习《python核心编程》,在网上搜习题答案时找到的你的博客,所以这些天也一直是看着你的博客学习的。我计算机编程只是在学校开的c...

_keyboard_dancer_
2015/04/05
3K
3
《机器学习》(周志华)课后习题参考答案

目录: 周志华《机器学习》课后习题解答系列(二):Ch1 - 绪论 周志华《机器学习》课后习题解答系列(三):Ch2 - 模型评估与选择 周志华《机器学习》课后习题解答系列(四):Ch3 - 线性模...

kchai31
2018/01/04
0
0
那些年,我们学过的编程语言——Python篇

Hello World!不少人都与这句话邂逅在大家最初学习编程的时候。 2014年12月的编程语言排行榜中,Python位列在众多语言中的第8位,一直保持在前列。初学者看着简单清晰的语言极其容易上手。即...

生气的散人
2014/12/26
1K
4
开源 Python基础入门课程

  2016年11月至2017年2月,出于个人兴趣,我录制了《全栈数据工程师养成攻略》视频课程,收到了不错的反馈,目前在网易云课堂上已有1.8W人加入学习。      2017年9月至12月,我担任了一...

深度学习
2018/05/17
0
0
《趣学Python编程》习题总结

上周买了本书叫《趣学Python编程》(英文名:Python for kids),昨天看完后把书后面的题都做了下。由于第1、2章没有习题,第13章及之后都是描写实例的章节,因此这个总结性的文章中只包含了...

北风其凉
2014/12/01
10.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

数据安全管理:RSA算法,签名验签流程详解

本文源码:GitHub·点这里 || GitEE·点这里 一、RSA算法简介 1、加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用。可以在不直接传递密钥的情况下,完成加解密操...

知了一笑
31分钟前
3
0
Podman 使用指南

> 原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod。Podman 的使用体验和 Docker 类似,不同的是 Podman 没有 daemon。以前使用 Docker...

米开朗基杨
今天
6
0
拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
今天
7
0
LNMP环境介绍,Mariadb安装,服务管理,mariadb安装3

LNMP环境介绍 Nginx 处理的请求有两种,分为 静态与动态 图片,js,css,视频,音频,flash 等都是静态请求,这些数据都不是保存在数据库里面的 动态请求一般来说,需要的数据是在数据库里面...

doomcat
今天
3
0
前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部