From f11c1666a542a4f0c6cb63c17126c80b20e3111a Mon Sep 17 00:00:00 2001 From: Samuel Ampofo <134513506+samikampofojnr@users.noreply.github.com> Date: Thu, 15 Jun 2023 19:49:05 +0300 Subject: [PATCH] Add files via upload --- README (1).md | 61 +++++++++ README.md | 9 ++ ...b92f8232333498cc45df4668e9f1409cf35cf5.rev | Bin 0 -> 14508 bytes update.sample | 128 ++++++++++++++++++ 4 files changed, 198 insertions(+) create mode 100644 README (1).md create mode 100644 README.md create mode 100644 pack-e0b92f8232333498cc45df4668e9f1409cf35cf5.rev create mode 100644 update.sample diff --git a/README (1).md b/README (1).md new file mode 100644 index 0000000..3e27da9 --- /dev/null +++ b/README (1).md @@ -0,0 +1,61 @@ +# Free Book "Programming Basics with Python" + +The free book "**Programming Basics with Python**" introduces the readers to writing **programming code** at a beginner level (variables and data, conditional statements, loops, and functions) using the **Python** programming language. + +Book Programming Basics with Python - Cover + +* [Preface](chapter-00-preface.md) +* [1. First Steps in Programming](chapter-01-first-steps-in-programming.md) +* [2.1. Simple Calculations](chapter-02-simple-calculations.md) +* [2.2. Simple Calculations – Exam Problems](chapter-02-simple-calculations-exam-problems.md) +* [3.1. Simple Conditions](chapter-03-simple-conditions.md) +* [3.2. Simple Conditions – Exam Problems](chapter-03-simple-conditions-exam-problems.md) +* [4.1. More Complex Conditions](chapter-04-complex-conditions.md) +* [4.2. More Complex Conditions – Exam Problems](chapter-04-complex-conditions-exam-problems.md) +* [5.1. Loops](chapter-05-loops.md) +* [5.2. Loops – Exam Problems](chapter-05-loops-exam-problems.md) +* [6.1. Nested Loops](chapter-06-nested-loops.md) +* [6.2. Nested Loops – Exam Problems](chapter-06-nested-loops-exam-problems.md) +* [7.1. More Complex Loops](chapter-07-complex-loops.md) +* [7.2. More Complex Loops – Exam Problems](chapter-07-complex-loops-exam-problems.md) +* [8.1. Practical Exam Preparation – Part I](chapter-08-exam-preparation.md) +* [8.2. Practical Exam Preparation – Part II](chapter-08-exam-preparation-part-2.md) +* [9.1. Problems for Champions – Part I](chapter-09-problems-for-champions.md) +* [9.2. Problems for Champions – Part II](chapter-09-problems-for-champions-part-2.md) +* [10. Methods](chapter-10-functions.md) +* [11. Tricks and Hacks](chapter-11-tricks-and-hacks.md) +* [Conclusion](chapter-12-conclusion.md) + +## Download The Book + +Download the book "**Programming Basics with Python**" in **PDF** format: +* TODO + +## Book Editions + +This book is available in several versions in different programming languages: +* [Programming Basics with C# (English)](https://csharp-book.softuni.org) +* [Programming Basics with Java (English)](https://java-book.softuni.org) +* [Programming Basics with JavaScript (English)](https://js-book.softuni.org) +* [Programming Basics with Python (English)](https://python-book.softuni.org) +* [Programming Basics with C# (Bulgarian)](https://csharp-book.softuni.bg) +* [Programming Basics with Java (Bulgarian)](https://java-book.softuni.bg) +* [Programming Basics with JavaScript (Bulgarian)](https://js-book.softuni.bg) +* [Programming Basics with Python (Bulgarian)](https://python-book.softuni.bg) +* [Programming Basics with C++ (Bulgarian)](https://cpp-book.softuni.bg) + +## Book Details + +Brief information about this edition: +* Title: **Programming Basics with Python** +* Authors: **Svetlin Nakov & Team** + * Main authors: Boncho Vulkov, Hristo Minkov, Iliya Iliev, Martin Tsarev, Miglen Evlogiev, Milena Angelova, Mirela Damyanova, Nikolay Kostov, Petar Ivanov, Petya Gospodinova, Svetlin Nakov, Tanya Evtimova, Tanya Staneva, Teodor Kurtev, Ventsislav Petrov, Vladimir Damyanovski, Yordan Darakchiev + * Other contributors: Aleksander Krastev, Aleksander Lazarov, Aleksander Peev, Aleksandra Stoycheva, Angel Dimitriev, Ariet Motzeva, Daniel Tsvetkov, Denis Milanov, Dimitar Dzhapunov, Dimitar Tatarski, Dimo Dimov, Diyan Tonchev, Dzhaner Hasan, Elena Rogleva, Hristiyan Hristov, Hristo Hristov, Iskra Nikolova, Ivelin Kirilov, Jordan Liubenov, Julieta Atanasova, Kalin Primov, Kaloyan Nenchev, Kristiyan Pamidov, Luboslav Lubenov, Martin Zhelev, Mihail Georgiev, Natali Dimitrova, Nikola Slavchev, Nikolay Bankin, Nikolay Dimov, Pavlin Petkov, Petar Ivanov, Preslav Mihaylov, Rositsa Nenova, Ruslan Filipov, Simeon Stavrev, Stefka Vasileva, Svetlin Nakov, Teodor Kurtev, Tonyo Zhelev, Tsvetan Iliev, Vasko Viktorov, Venelin Bekyarov, Ventsislav Petrov, Yanitsa Vuleva, Yulian Linev, Zahariya Pehlivanova, Zhivko Nedyalkov +* ISBN: **978-619-00-1403-4** (9786190014034) +* Edition: **Faber Publishing, Sofia, Dec 2021** (expected) +* License: **CC-BY-SA** +* Source code: https://github.com/SoftUni/Programming-Basics-Book-Python-EN + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..8bed460 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Demo Repository + +## Subtitle + +This is the demo repository for Software Technologies May 2023 Course @ SoftUni + +1. first +1. second +1. third diff --git a/pack-e0b92f8232333498cc45df4668e9f1409cf35cf5.rev b/pack-e0b92f8232333498cc45df4668e9f1409cf35cf5.rev new file mode 100644 index 0000000000000000000000000000000000000000..00a2bd16dbafe2c4e0ce08ff76d17bed043366c5 GIT binary patch literal 14508 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 literal 0 HcmV?d00001 diff --git a/update.sample b/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0