Skip to content

Commit cb6d2dc

Browse files
authored
Added Some Simple Python Scripts
1 parent d03478b commit cb6d2dc

18 files changed

+1167
-0
lines changed

Example_1.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/python3
2+
3+
# Check If A Number Is Pallindrom/Amstrong Or Not
4+
5+
def ams(n):
6+
c=0
7+
for i in str(n):
8+
c=c+pow(int(i),3)
9+
if(n==c):
10+
return True
11+
False
12+
13+
def pal(n):
14+
s=str(n)
15+
if len(s)%2!=0:
16+
return False
17+
if(s==s[::1]):
18+
return True
19+
else:
20+
return False
21+
22+
23+
n=int(input('Enter a value:'))
24+
25+
if(ams(n)):
26+
print("Amstrong Number")
27+
else:
28+
print("Non-Amstrong Number")
29+
30+
if(pal(n)):
31+
print("Pallindrom Number")
32+
else:
33+
print("Non-Pallindrom Number")
34+

Example_10.py

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
#!/usr/bin/python3
2+
3+
# Implement Elimination of Left Recursion
4+
gram = {}
5+
6+
def add(str): #to rules together
7+
x = str.split("->")
8+
y = x[1]
9+
x.pop()
10+
z = y.split("|")
11+
x.append(z)
12+
gram[x[0]]=x[1]
13+
14+
def removeDirectLR(gramA, A):
15+
"""gramA is dictonary"""
16+
temp = gramA[A]
17+
tempCr = []
18+
tempInCr = []
19+
for i in temp:
20+
if i[0] == A:
21+
#tempInCr.append(i[1:])
22+
tempInCr.append(i[1:]+[A+"'"])
23+
else:
24+
#tempCr.append(i)
25+
tempCr.append(i+[A+"'"])
26+
tempInCr.append(["e"])
27+
gramA[A] = tempCr
28+
gramA[A+"'"] = tempInCr
29+
return gramA
30+
31+
32+
def checkForIndirect(gramA, a, ai):
33+
if ai not in gramA:
34+
return False
35+
if a == ai:
36+
return True
37+
for i in gramA[ai]:
38+
if i[0] == ai:
39+
return False
40+
if i[0] in gramA:
41+
return checkForIndirect(gramA, a, i[0])
42+
return False
43+
44+
def rep(gramA, A):
45+
temp = gramA[A]
46+
newTemp = []
47+
for i in temp:
48+
if checkForIndirect(gramA, A, i[0]):
49+
t = []
50+
for k in gramA[i[0]]:
51+
t=[]
52+
t+=k
53+
t+=i[1:]
54+
newTemp.append(t)
55+
56+
else:
57+
newTemp.append(i)
58+
gramA[A] = newTemp
59+
return gramA
60+
61+
def rem(gram):
62+
c = 1
63+
conv = {}
64+
gramA = {}
65+
revconv = {}
66+
for j in gram:
67+
conv[j] = "A"+str(c)
68+
gramA["A"+str(c)] = []
69+
c+=1
70+
71+
for i in gram:
72+
for j in gram[i]:
73+
temp = []
74+
for k in j:
75+
if k in conv:
76+
temp.append(conv[k])
77+
else:
78+
temp.append(k)
79+
gramA[conv[i]].append(temp)
80+
81+
82+
#print(gramA)
83+
for i in range(c-1,0,-1):
84+
ai = "A"+str(i)
85+
for j in range(0,i):
86+
aj = gramA[ai][0][0]
87+
if ai!=aj :
88+
if aj in gramA and checkForIndirect(gramA,ai,aj):
89+
gramA = rep(gramA, ai)
90+
91+
for i in range(1,c):
92+
ai = "A"+str(i)
93+
for j in gramA[ai]:
94+
if ai==j[0]:
95+
gramA = removeDirectLR(gramA, ai)
96+
break
97+
98+
op = {}
99+
for i in gramA:
100+
a = str(i)
101+
for j in conv:
102+
a = a.replace(conv[j],j)
103+
revconv[i] = a
104+
105+
for i in gramA:
106+
l = []
107+
for j in gramA[i]:
108+
k = []
109+
for m in j:
110+
if m in revconv:
111+
k.append(m.replace(m,revconv[m]))
112+
else:
113+
k.append(m)
114+
l.append(k)
115+
op[revconv[i]] = l
116+
117+
return op
118+
119+
n = int(input("Enter No of Production: "))
120+
for i in range(n):
121+
txt=input()
122+
add(txt)
123+
124+
result = rem(gram)
125+
126+
for x,y in result.items():
127+
print(f'{x} -> {y}')

Example_11.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/python3
2+
3+
# Implement Merge Sort
4+
5+
def merge_sort(inp_arr):
6+
size = len(inp_arr)
7+
if size > 1:
8+
middle = size // 2
9+
left_arr = inp_arr[:middle]
10+
right_arr = inp_arr[middle:]
11+
12+
merge_sort(left_arr)
13+
merge_sort(right_arr)
14+
15+
p = 0
16+
q = 0
17+
r = 0
18+
19+
left_size = len(left_arr)
20+
right_size = len(right_arr)
21+
while p < left_size and q < right_size:
22+
if left_arr[p] < right_arr[q]:
23+
inp_arr[r] = left_arr[p]
24+
p += 1
25+
else:
26+
inp_arr[r] = right_arr[q]
27+
q += 1
28+
29+
r += 1
30+
31+
32+
while p < left_size:
33+
inp_arr[r] = left_arr[p]
34+
p += 1
35+
r += 1
36+
37+
while q < right_size:
38+
inp_arr[r]=right_arr[q]
39+
q += 1
40+
r += 1
41+
42+
inp_arr = list(map(float,input("Input The Numbers : ").strip().split()))
43+
print("Input Array:\n")
44+
print(inp_arr)
45+
merge_sort(inp_arr)
46+
print("Sorted Array:\n")
47+
print(inp_arr)

Example_12.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/python3
2+
3+
# check If A Number Is Odd or Even
4+
5+
def odd_even(n):
6+
if n%2==0:
7+
print("Even")
8+
else:
9+
print("Odd")
10+
11+
n=int(input('Enter a value:'))
12+
odd_even(n)

0 commit comments

Comments
 (0)