Faits :
A.
Par jugement du 20 juillet 2016, rectifié le 22 juillet 2016, le Tribunal correctionnel de l'arrondissement de Lausanne a notamment libéré X._ du chef de prévention de tentative de meurtre, l'a condamné, pour lésions corporelles graves, mise en danger de la vie d'autrui et contravention à la LStup, à une peine privative de liberté de trois ans et demi ainsi qu'à une amende de 1'500 fr., peine partiellement complémentaire à celles prononcées les 15 novembre 2013 et 14 avril 2014 par le Ministère public de l'arrondissement de Lausanne.
Par le même jugement, ce tribunal a également condamné Y._, pour agression, contravention à la loi fédérale sur le transport des voyageurs (LTV; RS 745.1) et infraction à la LEtr.
B.
Par jugement du 11 novembre 2016, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a partiellement admis l'appel formé par X._ contre ce jugement et l'a réformé en ce sens que le prénommé est libéré du chef de prévention de tentative de meurtre, qu'il est condamné, pour lésions corporelles simples qualifiées, mise en danger de la vie d'autrui et contravention à la LStup, à une peine privative de liberté de trois ans ainsi qu'à une amende de 300 fr., peine partiellement complémentaire à celles prononcées les 15 novembre 2013 et 14 avril 2014 par le Ministère public de l'arrondissement de Lausanne.
En substance, la cour cantonale a retenu les faits suivants.
B.a. Né en 1970 à l'Ile Maurice, X._ y a été scolarisé jusqu'à 14 ans, avant de commencer à travailler comme aide magasinier. En 1996, il est venu en Suisse et y a rencontré sa future épouse. Il s'est marié la même année et a eu un fils. Au bénéfice d'un permis C, il s'est séparé de sa femme en 2006. Professionnellement, X._ a principalement travaillé comme paysagiste pour diverses entreprises, jusqu'en 2011, date à laquelle il a perdu son emploi et n'a plus trouvé de travail fixe. Il a alors commencé à consommer des stupéfiants. Son casier judiciaire suisse fait état d'une condamnation en 2006 pour vol, dommages à la propriété, violation de domicile et contravention à la LStup, d'une condamnation en 2013 pour vol, vol d'importance mineure et violation de domicile, d'une autre la même année pour menaces, violation de domicile et violence ou menace contre les autorités et les fonctionnaires, ainsi que d'une condamnation en 2014 pour vol d'importance mineure et violation de domicile.
B.b. A Lausanne, place A._, le 14 juin 2014 vers 22 h 40, B._, qui venait d'avoir un différend avec un dealer au sujet de la qualité de l'héroïne, a été abordé par X._. La discussion s'est rapidement envenimée. X._ a sorti un couteau de sa poche et a porté un coup à B._ au moyen de cet objet. Le prénommé a subi une plaie perforante de 3 cm au flanc gauche, sans lésions organiques, qui a nécessité onze points de suture. Durant les minutes suivantes, Y._, qui connaissait B._, lui a prêté main forte pour poursuivre X._ en direction de la rue C._. L'ayant rattrapé à proximité de l'établissement public "D._", Y._ et B._ ont saisi et agressé l'intéressé. Y._ a tenu et maîtrisé X._ pendant que B._ le rouait de coups. X._ a cherché à se protéger et à se défendre avec son couteau, mais a été désarmé par Y._, lequel a cependant été blessé au front.
B.c. A Lausanne, le 17 juin 2014, à la rue E._, X._ a attaqué Y._ au moyen d'un cutter, en s'approchant subrepticement de lui par derrière et en passant son bras armé par-dessus l'épaule de sa victime, dans un geste circulaire au niveau du cou. Y._ a pu placer un bras entre celui de son assaillant et lui et a été blessé au poignet en protégeant son cou ou son visage. Il a subi une profonde entaille de 3 cm. Par la suite, alors qu'il cherchait à s'extraire de la prise de X._ et s'était retourné pour lui faire face, Y._ a encore reçu au coup de cutter dans le flanc gauche, ce qui lui a causé une entaille de 14,5 cm.
B.d. Entre le 20 juillet 2013 - les faits antérieurs étant prescrits - et le 14 juin 2014 - date de son interpellation -, X._ a régulièrement consommé du cannabis, à raison d'une à deux fois par semaine. Il a également consommé de la cocaïne, à raison de trois boulettes par mois.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 11 novembre 2016, en concluant, avec suite de frais et dépens, à sa réforme en ce sens qu'il est libéré des chefs de prévention de lésions corporelles simples qualifiées et de tentative de meurtre, qu'il est condamné, pour mise en danger de la vie d'autrui et contravention à la LStup, à une peine privative de liberté n'excédant pas trois ans, assortie du sursis partiel, ainsi qu'à une amende de 300 fr., peine partiellement complémentaire à celles prononcées les 15 novembre 2013 et 14 avril 2014 par le Ministère public de l'arrondissement de Lausanne. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
Considérant en droit :
1.
Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). Le recourant ne peut critiquer ceux-ci que s'ils ont été établis de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. - ou en violation du droit au sens de l'art. 95 LTF (art. 97 al. 1 LTF), ce qu'il lui appartient d'exposer et de démontrer de manière claire et circonstanciée (cf. art. 106 al. 2 LTF). Les critiques de nature appellatoire sont irrecevables (ATF 142 III 364 consid. 2.4 p. 368 et les références citées).
En l'espèce, l'argumentation du recourant est irrecevable dans la mesure où elle s'écarte de l'état de fait de la cour cantonale, dont l'intéressé ne prétend ni ne démontre qu'il serait entaché d'arbitraire. Il en va ainsi lorsqu'il conteste avoir blessé l'intimé et B._ le 14 juin 2014, ou lorsqu'il prétend qu'il n'aurait pas été armé du couteau ayant causé les lésions concernées.
Le recourant estime par ailleurs qu'il devrait être acquitté du chef de prévention de lésions corporelles simples qualifiées dès lors qu'"aucun élément probant" ne soutiendrait la version des faits retenue par la cour cantonale. Il se contente à cet égard d'invoquer le principe "in dubio pro reo", sans développer une argumentation topique concernant l'arbitraire dans l'établissement des faits et l'appréciation des preuves. Son argumentation est ainsi irrecevable, faute de répondre aux exigences de motivation des art. 42 al. 2 et 106 al. 2 LTF.
2.
Le recourant reproche à la cour cantonale d'avoir violé la maxime d'accusation et en particulier le principe d'immutabilité de l'acte d'accusation concernant les événements du 14 juin 2014. Il se plaint également, à cet égard, d'une violation de son droit d'être entendu (art. 29 al. 2 Cst.) et de son droit à un procès équitable (art. 6 CEDH).
2.1. L'art. 9 CPP consacre la maxime d'accusation. Selon cette disposition, une infraction ne peut faire l'objet d'un jugement que si le ministère public a déposé, auprès du tribunal compétent, un acte d'accusation dirigé contre une personne déterminée sur la base de faits précisément décrits. Le prévenu doit connaître exactement les faits qui lui sont imputés et les peines et mesures auxquelles il est exposé, afin qu'il puisse s'expliquer et préparer efficacement sa défense (ATF 143 IV 63 consid. 2.2 p. 65; 141 IV 132 consid. 3.4.1 p. 142 s.). Le tribunal est lié par l'état de fait décrit dans l'acte d'accusation (principe de l'immutabilité de l'acte d'accusation), mais peut s'écarter de l'appréciation juridique qu'en fait le ministère public (art. 350 al. 1 CPP), à condition d'en informer les parties présentes et de les inviter à se prononcer (art. 344 CPP). Le principe de l'accusation découle également des art. 29 al. 2 Cst. (droit d'être entendu), 32 al. 2 Cst. (droit d'être informé, dans les plus brefs délais et de manière détaillée, des accusations portées contre soi) et 6 par. 3 let. a et b CEDH (droit d'être informé de la nature et de la cause de l'accusation).
Les art. 324 ss CPP règlent la mise en accusation, en particulier le contenu strict de l'acte d'accusation. Selon l'art. 325 al. 1 CPP, l'acte d'accusation désigne notamment les actes reprochés au prévenu, le lieu, la date et l'heure de leur commission ainsi que leurs conséquences et le mode de procéder de l'auteur (let. f) de même que les infractions réalisées et les dispositions légales applicables de l'avis du ministère public (let. g). En d'autres termes, l'acte d'accusation doit contenir les faits qui, de l'avis du ministère public, correspondent à tous les éléments constitutifs de l'infraction reprochée au prévenu (ATF 143 IV 63 consid. 2.2 p. 65; arrêt 6B_1335/2016 du 5 septembre 2017 consid. 2.1). L'acte d'accusation définit l'objet du procès et sert également à informer le prévenu (fonction de délimitation et d'information) (ATF 143 IV 63 consid. 2.2 p. 65; 141 IV 132 consid. 3.4.1 p. 142 s. et les références citées). Des imprécisions relatives au lieu ou à la date sont sans portée, dans la mesure où le prévenu ne peut avoir de doute sur le comportement qui lui est reproché (arrêts 6B_275/2016 du 9 décembre 2016 consid. 2.1; 6B_1141/2015 du 3 juin 2016 consid. 1.1).
La description des faits reprochés dans l'acte d'accusation doit être la plus brève possible (art. 325 al. 1 let. f CPP). Celui-ci ne poursuit pas le but de justifier ni de prouver le bien-fondé des allégations du ministère public, qui sont discutées lors des débats. Aussi le ministère public ne doit-il pas y faire mention des preuves ou des considérations tendant à corroborer les faits. Par ailleurs, il va de soi que le principe de l'accusation ne saurait empêcher l'autorité de jugement, au besoin, de constater des faits permettant de réfuter les contestations et allégations du prévenu, qu'il n'incombe pas au ministère public de décrire par le menu dans l'acte d'accusation (arrêts 6B_28/2016 du 10 octobre 2016 consid. 2.1; 6B_666/2015 du 27 juin 2016 consid. 1.4.1).
2.2. Selon l'art. 123 ch. 1 CP, celui qui, intentionnellement, aura fait subir à une personne une atteinte à l'intégrité corporelle ou à la santé sera, sur plainte, puni d'une peine privative de liberté de trois ans au plus ou d'une peine pécuniaire. La peine sera une peine privative de liberté de trois ans au plus ou une peine pécuniaire et la poursuite aura lieu d'office, notamment si le délinquant a fait usage du poison, d'une arme ou d'un objet dangereux (art. 123 ch. 1 al. 1 et 2 CP). L'art. 123 CP concerne les lésions du corps humain ou de la santé qui ne peuvent être qualifiées de graves au sens de l'art. 122 CP. Il protège l'intégrité corporelle et la santé tant physique que psychique (ATF 134 IV 189 consid. 1.1 p. 191; 119 IV 25 consid. 2a p. 26). La réalisation de cette infraction suppose que l'auteur adopte un comportement dangereux, qu'il inflige à sa victime une lésion au corps humain ou à la santé, qu'il existe un rapport de causalité entre le comportement de l'auteur et les lésions subies par la victime. L'auteur doit en outre agir volontairement, le dol éventuel étant suffisant (cf. BERNARD CORBOZ, Les infractions en droit suisse, vol. I, 3ème édition 2010, nos 1 ss ad art. 123 CP).
2.3. L'acte d'accusation a la teneur suivante, s'agissant des faits reprochés au recourant :
" Le 14 juin 2014 à Lausanne vers 22h40, rue C._, à proximité de l'établissement public « D._ » [le recourant] a attaqué B._ au moyen d'un couteau de cuisine de style hachoir mesurant près de 30 cm, qu'il est allé chercher chez son frère (et à l'insu de celui-ci) dans l'intention de s'en servir comme décrit ci-après, causant à B._ une plaie perforante de 3 centimètres au flanc gauche sans lésions organiques, lésion qui a nécessité la pose de 11 points de suture. Lors des faits, le prévenu a aussi blessé [l'intimé] au front lui causant une plaie de 1 centimètre. [...] Les articles 122 et 123 CP paraissent applicables au [recourant]."
L'acte d'accusation a par ailleurs la teneur suivante s'agissant des faits reprochés à l'intimé :
" Le 14 juin 2014 vers 22h40 à Lausanne rue C._, à proximité de l'établissement public « D._ », [l'intimé] a, agissant avec B._ (cas traité séparément), agressé [le recourant]. Lors de l'agression, ce dernier a reçu des coups de poings et de pieds au visage et à l'abdomen. Il a subi des lésions corporelles (ecchymoses multiples au visage et blessure au pouce gauche). Les coups ont été portés tant par [l'intimé] que son comparse B._, tandis que X._ était immobilisé par ses agresseurs. "
2.4. En l'espèce, l'acte d'accusation indique que le recourant a assailli B._ avec un couteau et lui a causé une lésion au flanc gauche. Il en ressort également que le recourant a infligé une blessure à l'intimé, au moyen de cette arme, occasionnant à celui-ci une plaie au front. L'acte d'accusation décrit ainsi les éléments constitutifs objectifs de l'infraction réprimée par l'art. 123 ch. 1 al. 1 et 2 CP. Par ailleurs, dans la mesure où l'état de fait exposé par le ministère public ne peut être réalisé qu'intentionnellement, l'élément subjectif est suffisamment concrétisé (cf. ATF 120 IV 348 consid. 3c p. 356 et la référence citée).
2.5. Le recourant fait grief à la cour cantonale d'avoir précisé que, peu avant l'altercation, B._ venait d'avoir un différend avec un dealer, qu'il avait été abordé par l'intéressé et que la discussion s'était envenimée. Le fait que ces éléments n'aient pas figuré sur l'acte d'accusation ne suffit pas pour admettre une violation de la maxime d'accusation, dès lors qu'il ne s'agit pas d'éléments constitutifs de l'infraction retenue, mais d'une simple description du contexte dans lequel a pris place l'altercation. La cour cantonale a constaté divers éléments qui n'étaient aucunement mentionnés dans l'acte d'accusation, mais qui permettaient cependant de réfuter les dénégations du recourant, lequel contestait avoir blessé B._ le jour des faits. Ces ajouts s'inscrivent clairement dans le même complexe de faits que celui décrit dans l'acte d'accusation et n'ont d'influence ni sur l'appréciation juridique des événements ni sur la réalisation de l'infraction. On ne voit pas, au demeurant, en quoi la description des causes de l'altercation entre le recourant et B._ par l'autorité précédente aurait pu mettre en péril les fonctions de délimitation et d'information de l'acte d'accusation. En effet, le recourant ne pouvait nourrir de doutes concernant les actes et le comportement qui lui étaient reprochés, soit le fait d'avoir porté des coups de couteau à l'intimé et à B._.
Par ailleurs, comme l'a relevé l'autorité précédente, la rue C._ n'est distante de la place A._ que de quelques centaines de mètres. On ne saurait ainsi reprocher à la cour cantonale d'avoir, dans son état de fait, précisé que l'altercation avait débuté à la place A._ - avec le coup porté à B._ par le recourant - et s'était achevée à proximité de l'établissement public "D._", endroit où le recourant avait été rejoint par l'intimé et B._ et avait à son tour été agressé. Le contexte géographique décrit par l'autorité précédente est compatible avec celui ressortant de l'acte d'accusation, de sorte que le recourant ne pouvait avoir de doutes relatifs à l'endroit où s'étaient déroulés les faits pour lesquels il était mis en accusation. Celui-ci ne tire d'ailleurs aucune conclusion de la divergence existant entre l'état de fait de la cour cantonale et l'acte d'accusation, mais se contente d'en pointer l'existence.
De même, la cour cantonale pouvait valablement retenir que le recourant avait causé des lésions à ses victimes au moyen d'un couteau qu'il portait sur lui et non en utilisant le "couteau de cuisine de style hachoir" qu'il était allé chercher chez son frère et dont fait état l'acte d'accusation. En effet, l'utilisation d'une arme, et plus particulièrement d'un couteau, ressortait clairement de l'acte d'accusation, de sorte que l'autorité précédente n'a introduit aucun fait nouveau concernant les éléments constitutifs de l'infraction, mais s'est écartée de celui-ci sur un point accessoire, soit l'objet avec lequel les coups ont effectivement été portés. On ne voit pas, au demeurant, en quoi cet élément aurait privé le recourant de son droit d'être entendu ou l'aurait empêché de préparer et de déployer efficacement sa défense.
Enfin, contrairement à ce que soutient le recourant, l'acte d'accusation ne laisse nullement penser qu'il aurait blessé B._ en adoptant un comportement "essentiellement défensif". Celui-ci indique au contraire que le recourant a "attaqué" le prénommé au moyen d'un couteau, ce qui suggère une posture offensive.
Il découle de ce qui précède que la cour cantonale n'a pas violé la maxime d'accusation, ni les droits constitutionnels et conventionnels dont découle celle-ci, en retenant l'état de fait sur la base duquel elle a condamné le recourant pour lésions corporelles simples qualifiées. Le grief doit être rejeté.
3.
Le recourant ne critique la quotité de la peine privative de liberté à laquelle il a été condamné qu'en relation avec l'acquittement du chef de prévention de lésions corporelles simples qualifiées, qu'il n'obtient pas (cf. consid. 2.5 supra). Il ne développe, pour le surplus, aucun grief recevable à cet égard (cf. art. 42 al. 2 LTF).
4.
Le recourant reproche à la cour cantonale de ne pas avoir assorti sa peine privative de liberté d'un sursis partiel à l'exécution.
4.1. L'art. 43 al. 1 CP prévoit que le juge peut suspendre partiellement l'exécution d'une peine pécuniaire, d'un travail d'intérêt général ou d'une peine privative de liberté d'un an au moins et de trois ans au plus afin de tenir compte de façon appropriée de la faute de l'auteur.
Même si cette disposition ne le prévoit pas expressément, l'octroi d'un sursis partiel suppose, comme pour l'octroi du sursis complet dans le cadre de l'art. 42 CP, l'absence de pronostic défavorable (ATF 134 IV 60 consid. 7.4 p. 77 s.). Si le pronostic sur le comportement futur de l'auteur n'est pas défavorable, la loi impose un sursis au moins partiel à l'exécution de la peine. En revanche, un pronostic négatif exclut le sursis partiel. S'il n'existe aucun espoir que le sursis puisse avoir une quelconque influence sur l'auteur, la peine doit être exécutée intégralement (ATF 134 IV 1 consid. 5.3.1 p. 10). Pour émettre ce pronostic sur le comportement futur de l'auteur, le juge doit se livrer à une appréciation d'ensemble, tenant compte des circonstances de l'infraction, des antécédents de l'auteur, de sa réputation et de sa situation personnelle au moment du jugement, notamment de l'état d'esprit qu'il manifeste. Il doit tenir compte de tous les éléments propres à éclairer l'ensemble du caractère de l'accusé et ses chances d'amendement. Il ne peut accorder un poids particulier à certains critères et en négliger d'autres qui sont pertinents (ATF 135 IV 180 consid. 2.1 p. 185 s.; 134 IV 1 consid. 4.2.1 p. 5). Le juge dispose d'un large pouvoir d'appréciation dans l'émission du pronostic. Le Tribunal fédéral n'intervient que s'il en a abusé (ATF 134 IV 140 consid. 4.2 p. 143).
4.2. La cour cantonale a considéré que le sursis partiel était exclu dès lors qu'il s'agissait de la cinquième condamnation du recourant, que ce dernier avait déjà été sanctionné par des peines privatives de liberté fermes (de moins de 6 mois, cf. arrêt 6B_352/2014 du 22 mai 2015 consid. 7.1 in fine, non publié aux ATF 141 IV 273) et avait néanmoins gravement récidivé. Même si les renseignements obtenus sur l'intéressé auprès de la Fondation F._ étaient favorables, celui-ci persistait à nier les faits, ce qui empêchait toute réelle prise de conscience au sujet de sa dangerosité et qui relativisait le constat positif de l'institution. Au demeurant, ce constat faisait état de consommation d'alcool et de stupéfiants à plusieurs reprises durant le séjour du recourant dans l'institution. Au vu du casier judiciaire de l'intéressé et de la nature des infractions commises dans le cadre de la procédure, la cour cantonale a exclu l'octroi du sursis partiel.
4.3. Le recourant indique qu'il a exécuté "pas moins de 596 jours de détention avant jugement", ainsi que quelques mois pour l'exécution de précédentes condamnations, de sorte qu'il aurait été privé de liberté pendant plus de deux ans. Cependant, on ne voit pas en quoi la durée de la détention avant jugement pourrait influer sur le pronostic relatif à l'art. 43 CP.
Il affirme par ailleurs que les infractions pour lesquelles il a été condamné par la cour cantonale auraient été commises alors qu'il vivait "en marge de la société" et qu'il présentait une "dépendance aux produits stupéfiants et à l'alcool", qu'il aurait depuis réussi à "éradiquer" ou à "maîtriser". De tels éléments ne ressortent toutefois pas du jugement attaqué et le recourant ne soulève aucun grief recevable pour se plaindre de l'arbitraire de leur omission. Il n'y a dès lors pas lieu d'en tenir compte.
Le recourant ne saurait enfin tirer argument d'un prétendu risque de le voir retomber dans la délinquance si le sursis à l'exécution devait lui être refusé et que le solde de sa peine devait être purgé.
En définitive, pour les motifs indiqués, la cour cantonale n'a pas violé le droit fédéral en refusant d'octroyer au recourant un sursis partiel à l'exécution. Mal fondé, le grief doit être rejeté.
5.
Le recours doit être rejeté dans la mesure où il est recevable. Comme il était dénué de chances de succès, la requête d'assistance judiciaire doit également être rejetée (art. 64 al. 1 LTF). Le recourant devra donc supporter les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable (art. 65 al. 2 LTF). L'intimé, qui n'a pas été invité à se déterminer sur le recours, ne saurait prétendre à des dépens.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 16 novembre 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa