Month: November 2025

  • Al Riyadh Daily – May 22, 2025: Economic Impact of Vision 2030, Saudi-Chinese Security Cooperation Meeting, Gaza, West Bank

    Al Riyadh Daily – May 22, 2025: Economic Impact of Vision 2030, Saudi-Chinese Security Cooperation Meeting, Gaza, West Bank

    This source appears to be excerpts from a Saudi Arabian newspaper published on May 22, 2025. The articles cover a diverse range of topics, including the economic impact of Saudi Vision 2030, particularly concerning the Hajj and Umrah sectors, international relations highlighted by a Saudi-Chinese security cooperation meeting, various local news from different Saudi regions detailing events like graduations, cultural initiatives, and development projects, and discussions on the global economy, including oil prices and the gold market. The excerpts also feature reporting on the ongoing Israeli actions in Gaza and the West Bank, alongside cultural pieces like poetry and articles on social themes and the significance of Saudi identity.

    Podcast

    Descriptive Alt Text
    Al Riyadh Daily – May 22, 2025

    Saudi Investments and Services for Hajj and Umrah

    Based on the sources, the Hajj and Umrah sector is highlighted as a vital and attractive area for investment and development in the Kingdom.

    The Saudi government has invested significant amounts, specifically billions of riyals, in expanding the Two Holy Mosques in Makkah Al-Mukarramah and Madinah Al-Munawarah, as well as constructing airports, ports, and roads. These efforts aim to upgrade accommodation and lodging services and enhance the experiences of the Guests of Rahman (pilgrims). The sources indicate that reforms and features in the Hajj and Umrah sector have contributed to an increase in its competitiveness. This has supported a rise in both local and foreign direct investments (DDI and FDI), leading to an increase in job opportunities within this promising sector and its related fields. A report from the Ministry of Investment, in cooperation with the Ministry of Hajj and Umrah and the Guests of Rahman Program, discusses the investment environment in the Hajj and Umrah services sector.

    Several initiatives and services are implemented to support Hajj and Umrah pilgrims:

    • The “Makkah Route” initiative involves Saudi female cadres from the Ministry of Interior working at airports, such as Kuala Lumpur International Airport, to serve Guests of Rahman and facilitate and ease the performance of the Hajj.
    • The Passports Directorate has declared its readiness to complete the procedures for Guests of Rahman for the Hajj season across international air, land, and sea ports.
    • The Saudi Red Crescent Authority provides emergency medical and humanitarian services to Hajj pilgrims arriving from Yemen via the Al-Wadiah border crossing. These services include first aid, medical care, and providing informational and cultural materials. A seasonal first aid center is operated on the Sultanah-Sharourah road, and the readiness of centers along the routes leading to Makkah Al-Mukarramah is increased, covering all 17 first aid centers in the region.
    • The General Directorate of Civil Defense has strengthened its seasonal centers and land routes at the ports leading to the Holy Sites. They are exerting considerable effort during the Hajj season (1446 AH) by preparing 25 seasonal centers and 64 first aid teams to maintain the security and safety of the Guests of Rahman. These centers follow the general plan for Civil Defense and support the main centers in dealing with emergencies.
    • In Makkah Al-Mukarramah, the Makkah Health Cluster, represented by King Abdullah Medical City, is utilizing artificial intelligence technologies to improve patient services, such as analyzing facial images to read vital signs. While not explicitly limited to pilgrims, this technology is employed in the location of the Holy Capital and is likely relevant to the comprehensive healthcare services provided during peak seasons.

    The sources also mention strengthening cooperation between friendly countries through promoting concepts of tolerance and moderation, which aligns with the vision led by the Kingdom’s leadership.

    Saudi Arabia’s Vision 2030 Transformation

    Based on the sources, the Saudi development Vision, particularly Vision 2030, is presented as a significant and transformative national effort.

    Vision 2030 is described as an “icon” and a “document for crossing into the future”, which is planned and executed “with reality”. The sources indicate that Vision 2030 has been successful in achieving “most of its goals”, bringing about an “unprecedented economic transformation”.

    Key aspects and achievements of the Vision highlighted in the sources include:

    • Economic Diversification: A primary objective is to diversify the economy away from natural resource dependence and build an economy based on knowledge and innovation.
    • Private Sector Empowerment: The Vision aims to empower the private sector to become the main engine for growth.
    • Job Creation and Reduced Unemployment: The transformation driven by Vision 2030 has led to a rise in non-oil exports, the creation of over 2.4 million jobs, and a decrease in the unemployment rate to its lowest historical levels.
    • Development of the Hajj and Umrah Sector: This sector is recognized as a vital and attractive area for investment and development. Billions of riyals have been invested in expanding the Two Holy Mosques in Makkah and Madinah and constructing essential infrastructure such as airports, ports, and roads. These efforts aim to upgrade accommodation and lodging services and enhance the experiences of the Guests of Rahman (pilgrims). Reforms in this sector have increased its competitiveness, attracting both local (DDI) and foreign direct investments (FDI) and creating more job opportunities. The “Guests of Rahman Program” is associated with these initiatives.
    • Promoting Tolerance and Moderation: The Vision, led by the Kingdom’s leadership, aligns with strengthening cooperation with other countries by promoting concepts of tolerance and moderation.
    • Enhancing National Identity: Efforts are underway to strengthen the Saudi national identity and promote its balanced cultural and religious heritage. This includes utilizing sectors like tourism and entertainment and supporting cultural initiatives, such as a film festival dedicated to identity cinema.
    • Sports Development: The sports sector is also a focus, with initiatives like “Saudi Golf” and “Go Golf” aimed at developing golf skills within the Saudi community. Strong support from the King and Crown Prince is mentioned for the development and spread of sports, alongside the hosting of major sports events and the development of infrastructure like King Abdullah Sports City.
    • Wildlife Development: Efforts related to wildlife development and preserving the natural balance, supported by national centers and licensed reserves, also feature in the sources, suggesting a focus on environmental aspects.

    Overall, the sources portray the Saudi development Vision as a multi-faceted initiative driving significant economic, social, and cultural changes, with a strong focus on diversification, investment attraction, infrastructure development, and enhancing key national sectors like Hajj, Umrah, and sports.

    Saudi Foreign Relations and Partnerships

    Based on the provided sources and our conversation, Saudi Arabia is actively engaged in various aspects of foreign relations, driven in part by its national development vision.

    Key points regarding Saudi foreign relations from the sources include:

    • Strategic Partnerships and Cooperation:The sources highlight the importance of strengthening strategic partnerships and cooperation with other countries.
    • Specific bilateral relationships are mentioned:
    • China: There is a focus on enhancing Saudi-Chinese cooperation and partnership. A joint Saudi-Chinese committee for security affairs exists, and its fifth meeting at a high level was held, resulting in the signing of the meeting’s minutes. A Saudi ambassador participated in this meeting.
    • United States: The Saudi Crown Prince emphasized the deepening of the strategic partnership between Saudi Arabia and the United States during the Saudi-American Investment Forum in Riyadh.
    • Japan: A memorandum of understanding (MOU) was signed between the Saudi Minister of Justice and his Japanese counterpart, focusing on cooperation in the judicial field. This includes the exchange of expertise and information in legal and judicial domains, as well as in education and research.
    • Jordan: An MOU was signed between the Saudi Food and Drug Authority and the General Institution for Food and Drug in Jordan. This is seen as an extension of the “distinguished historical relations” between the two “brotherly countries”. It aims to boost cooperation in food and drug sectors, including exchanging legislation, standard specifications, technical expertise, and registration/evaluation systems. Both sides stressed the importance of aligning regulatory efforts with international standards through sustainable institutional partnerships, describing the Saudi-Jordanian partnership as a “pivotal pillar” and a “qualitative step” towards integration. Additionally, an MOU between the Saudi Ministry of Culture (Museums Authority) and a museum in Jordan involves cooperation in research, publishing, archaeological loans, and temporary exhibitions to enrich cultural content.
    • Promotion of Values: The Kingdom’s leadership, through its vision, aligns with strengthening cooperation with friendly countries by promoting concepts of tolerance and moderation. This suggests a foreign policy dimension focused on projecting certain values.
    • Regional Security Context:The sources touch upon regional security challenges, such as the situation in the Red Sea, where commercial shipping is deemed “high risk” due to actions by Houthi fighters reportedly supported by Iran. This indicates complex regional dynamics impacting international trade routes and likely influencing Saudi foreign policy in the region.
    • The situation in southern Lebanon and comments about the need to disarm “Hezbollah” by a US envoy are mentioned, highlighting ongoing regional tensions.
    • The Palestinian President’s calls to world leaders regarding the humanitarian situation in Gaza and the need for urgent action, including the implementation of the two-state solution according to international legitimacy, point to the enduring significance of the Israeli-Palestinian conflict in regional foreign relations.

    Overall, the sources indicate that Saudi foreign relations involve robust bilateral cooperation in various sectors (security, judicial, regulatory, cultural, economic/investment) with key partners, are guided by a vision that promotes tolerance and moderation, and operate within a complex regional security environment marked by various tensions and conflicts.

    Global Economic Indicators and Saudi Vision 2030

    Based on the sources and our conversation, several economic indicators are discussed, primarily within the context of Saudi Arabia’s Vision 2030 and broader global economic dynamics.

    The sources highlight that Saudi Arabia’s Vision 2030 has successfully achieved “most of its goals” and has brought about an “unprecedented economic transformation”. This transformation aims to diversify the economy away from natural resource dependence towards one based on knowledge and innovation, empowering the private sector.

    Specific economic indicators mentioned include:

    • Job Creation and Unemployment: The Vision 2030 transformation has led to the creation of over 2.4 million jobs and a decrease in the unemployment rate to its lowest historical levels.
    • Non-Oil Exports: Non-oil exports have seen a rise, indicating progress in economic diversification efforts.
    • Overall Investment: Total investments in the Saudi economy amounted to 82 billion USD in 2024.
    • Sector-Specific Investments:The Hajj and Umrah sector is identified as a vital and attractive area for investment. Billions of riyals have been invested in expanding the Two Holy Mosques and related infrastructure (airports, ports, roads). Regulatory reforms and features in this sector have increased its competitiveness, supporting an increase in both local (DDI) and foreign direct investments (FDI) and boosting job opportunities.
    • In the Artificial Intelligence (AI) sector, investments and projects in the Kingdom amounted to over 14.9 billion USD during the first quarter of the current year.
    • The real estate, tourism, entertainment, and hospitality sectors in areas like North Taif are experiencing significant growth and demand for investment.
    • Capital Markets:Gulf markets have shown a notable recovery, with the consumer discretionary sector leading in initial public offering (IPO) revenues in the first quarter of 2025.
    • The value of issued bonds and Sukuk in the region increased significantly, reaching 4.6 billion USD in the first quarter of 2025, compared to 1.6 billion USD in the same period last year. Sukuk, in particular, saw growth, valued at 4.1 billion USD.
    • Oil Prices: Oil prices increased, with Brent and WTI futures contracts rising. This rise is linked to growing supply concerns and geopolitical threats. US crude inventories unexpectedly increased in mid-May, potentially impacting prices. OPEC+ production by some countries, like Kazakhstan, is challenging output cut agreements. Production forecasts suggest US output could grow.
    • Refining Margins: European refining margins have decreased significantly, by 60% annually, ending a period of record profits. However, long delivery times for fuel shipments from the Middle East and refinery closures in Europe have helped prevent further declines and maintained margins above historical averages.
    • Shipping Costs/Insurance: Insurance prices for ships transiting the Red Sea have increased, likely due to the security situation. The volume and value of goods transported via the Red Sea have significantly decreased.
    • Precious Metals Prices:Gold prices increased, reaching a weekly high. This is attributed to investors seeking a safe haven amidst uncertainty in the US financial situation, a weaker dollar, and geopolitical fears, particularly following reports of potential actions against Iranian nuclear sites.
    • Silver, platinum, and palladium prices decreased.
    • Inflation: US Federal Reserve officials mentioned price increases driven by rising tariffs and reduced imports. Consumer price inflation in the UK is expected to rise in April.
    • Currency Values: The Dollar Index, measuring the US dollar against major currencies, decreased. The Japanese Yen strengthened against the dollar.

    Middle East Conflict Updates

    Based on the sources and our conversation, the regional landscape is marked by several significant conflicts and tensions:

    • Gaza and other Palestinian Territories:
    • The Israeli occupation forces have escalated their strikes on the city of Khan Yunis in the southern Gaza Strip.
    • Over 25 homes have been destroyed in various areas of Khan Yunis due to a series of air strikes.
    • A school for displaced people in Al-Fukhari was subjected to shelling.
    • Occupation vehicles have advanced near Salah al-Din street, close to the European Hospital in eastern Khan Yunis.
    • Occupation vehicles fired heavily north of the Nuseirat camp.
    • Israeli warplanes conducted a strike near Al-Awda Hospital – Tal al-Zaatar in the northern Gaza Strip.
    • The sources state that Israeli occupation forces have committed atrocities against Palestinians.
    • Palestinian President Mahmoud Abbas has issued an urgent appeal to world leaders concerning the catastrophic humanitarian situation in the Gaza Strip. He called for urgent action to break the siege, allow humanitarian and medical aid by land, sea, and air, and for an immediate and permanent ceasefire. He also called for the release of all detainees and the implementation of the two-state solution according to international legitimacy.
    • Beyond Gaza, Israeli bulldozers have demolished a tourist resort in the occupied town of Nahalin, south-west of Bethlehem, for the second time. They also demolished agricultural rooms and work facilities.
    • Israeli occupation forces have raided several areas in Ramallah, Tulkarm, Jenin, Nablus, and Jericho. Confrontations and firing of live ammunition, gas bombs, and stun grenades by soldiers against Palestinians have occurred.
    • Infrastructure, including water and electricity networks, has been bulldozed in Qabatiya, south of Jenin, with buildings raided and turned into a military barracks and mass arrests made. Bulldozers also destroyed civilian vehicles on the main street connecting Qabatiya to Jenin.
    • In Jenin camp, estimates suggest approximately 15 roads have been bulldozed. Around 600 homes were completely destroyed, with others damaged and uninhabitable. Significant damage to facilities, homes, and infrastructure was reported in Jenin city.
    • Southern Lebanon:
    • An Israeli strike in southern Lebanon resulted in one person killed in the town of Ein Baal.
    • Israel has carried out daily strikes this week, stating they target elements of “Hezbollah”, despite an existing ceasefire between the two sides.
    • Nine people were injured in the Mansouri area due to a strike.
    • The Israeli army announced it had “eliminated” an element in the Radwan Force, considered an elite unit of “Hezbollah”.
    • The US Deputy Special Envoy to Lebanon commented that Lebanon still has “a lot” to do to disarm “Hezbollah”.
    • Red Sea Security and Shipping:
    • Navigation in the Red Sea is considered “high risk”.
    • This is due to threats from Houthi fighters since the outbreak of the Gaza war in October 2023.
    • Many ship operators are avoiding the Bab al-Mandab strait and choosing longer routes around the southern tip of Africa.
    • The US Navy stated that vessels are currently moving, but at approximately 50% of the rate compared to before November 2023.
    • Insurance prices for ships transiting the Red Sea have increased.
    • The volume and value of goods transported via the Red Sea have significantly decreased. The potential resumption of full navigation could impact refined product markets in Europe.

    These regional conflicts, particularly the security situation and geopolitical threats, are also cited as factors influencing economic indicators, such as rising oil prices and gold prices.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • The Mountaintop: Martin Luther King, Jr.’s Life and Legacy

    The Mountaintop: Martin Luther King, Jr.’s Life and Legacy

    This collection of texts provides a detailed overview of the life and work of Martin Luther King, Jr., a central figure in the American civil rights movement. It covers his early life in the vibrant Sweet Auburn neighborhood of Atlanta, his education at Morehouse College and theological seminaries, and his influential role as a minister and activist. The sources highlight key campaigns and events he was involved in, such as the Montgomery bus boycott, the desegregation efforts in Albany, Georgia, the confrontations in Birmingham, and the historic March on Washington. The texts also touch upon the broader context of the era, including the challenges of segregation, the rise of Black Power philosophy, the impact of the Vietnam War, and his eventual focus on the Poor People’s Campaign before his assassination in Memphis.

    Podcast

    01
    The Mountaintop: Martin Luther King, Jr.’s Life and Legacy

    The American Civil Rights Movement

    Drawing on the information provided in the sources, the Civil Rights Movement was a pivotal period in American history dedicated to ending racial segregation and discrimination, primarily affecting black Americans.

    Here’s a discussion of key aspects of the movement as presented in the sources:

    • Context: Despite generations having passed since the Civil War, a significant portion of the population, based on their color, remained isolated, poor, and faced severely limited opportunities. Much of American society, including housing in better areas, integrated schools and churches, downtown restaurants, lunch counters, theaters, and public libraries, was off limits to the black community across the country, including in Atlanta. The Supreme Court’s 1898 Plessy v. Ferguson decision had legitimized “separate but equal” facilities, which reformers fought against for decades.
    • Early Activism and Influences: Martin Luther King, Jr.’s father was involved in the Atlanta Civic and Political League and the Atlanta Baptist Ministers Union, which worked to register black voters and support other civic causes. King Sr. was also a leading figure in the Atlanta branch of the NAACP, which won a legal battle for equalizing white and black teachers’ salaries. Young Martin Luther King, Jr. was taught about the history of slavery and segregation by his mother, who emphasized his inherent equality and importance. A train trip where blacks had to congregate in a segregated car reinforced in him the affront of segregation to black dignity. Benjamin Mays, a prominent black educator and President of Morehouse College, challenged students like King to fight for the rights of the poor and disenfranchised and to use their knowledge for the dignity of the black community. Mays, who had spoken with Mohandas Gandhi, influenced King with his personal bearing and philosophical beliefs. King was influenced by Mohandas Gandhi’s philosophy of nonviolent protest, or “Soul Force,” which Gandhi developed in South Africa to challenge the social and political order. Gandhi had successfully changed some laws in South Africa through this method before returning to India in 1915.
    • Key Figures and Organizations:
    • Martin Luther King, Jr.: He became a central figure in the movement. He was the son and grandson of preachers. He served as pastor of Dexter Baptist Church and later co-pastor with his father at Ebenezer Baptist Church. King was active in civic causes and the NAACP. His social and political influence grew as a pastor.
    • E. D. Nixon: A long-time social activist and Pullman porter, Nixon was deeply influenced by labor leader A. Philip Randolph’s message that Negroes had a right to freedom. Nixon was determined to fight for freedom. He was instrumental in the Montgomery Bus Boycott and chose King to lead it because he needed “somebody I could win with”.
    • Rosa Parks: A black seamstress and active NAACP member, her arrest in December 1955 for refusing to give up her seat on a bus sparked the Montgomery Bus Boycott.
    • A. Philip Randolph: Labor leader who organized black Pullman porters. He also discussed staging a large demonstration in Washington with Bayard Rustin in late 1962.
    • Southern Christian Leadership Conference (SCLC): Formed in January/February 1957 by King and other black leaders to fight segregation and achieve civil rights. King became its first president. Unlike the NAACP, SCLC focused on grass-roots protest and action-oriented nonviolent confrontation tactics. It fostered a mass movement based on Christian tenets of love and understanding. SCLC leaders rallied communities using nonviolent methods like marches, boycotts, and sit-ins.
    • Student Nonviolent Coordinating Committee (SNCC): Emerged from a meeting of student sit-in leaders and civil rights figures like Ella Baker in Raleigh, North Carolina. SNCC members were involved in voter registration efforts, particularly in Albany, Georgia, and Mississippi. Later, under Stokely Carmichael, SNCC’s leadership shifted and diverged from King’s nonviolent ideals, moving towards “Black Power”.
    • Congress of Racial Equality (CORE): A civil rights organization that organized the first “Freedom Ride” through the South to protest segregated bus facilities. James Farmer led CORE.
    • National Association for the Advancement of Colored People (NAACP): Focused efforts on legal challenges, voter registration drives, and other constitutional efforts. Roy Wilkins was a leader of the NAACP.
    • Urban League: Whitney Young Jr. was a leader of the Urban League.
    • Major Campaigns and Events:
    • Montgomery Bus Boycott (1955-1956): Triggered by Rosa Parks’ arrest. King was chosen to lead the boycott. He addressed the community with purpose, stating they were American citizens determined to apply their citizenship fully. He declared they would work until justice ran down like water. King appealed for nonviolent responses to aggression, urging participants not to curse back, push back, or strike back if attacked, but to pray for the oppressor and use moral and spiritual force. The boycott was a call to action and a catalyst, bringing national attention to King. The U.S. Supreme Court ruled bus segregation illegal on November 13, 1956, and Montgomery buses were desegregated on December 21, 1956. The victory was a strong affirmation of self-worth for Montgomery’s black population.
    • Integration of Little Rock Central High School (1957): A major battle following the Brown v. Board of Education decision which struck down “separate but equal” schools. King sent a wire to President Eisenhower warning that federal inaction would set back integration by 50 years. Federal intervention tested the limits of the Brown decision and paved the way for the national movement with police protection.
    • Sit-ins (beginning 1960): Began in Greensboro, North Carolina. Students challenged segregation ordinances in over a hundred cities, North and South. King encouraged students to be willing to “fill the jails,” seeing the movement as an opportunity for people to act and become involved locally.
    • Freedom Rides (1961): CORE began these rides through the South to test the Supreme Court’s Boynton v. Virginia ruling banning segregation in interstate travel facilities. Riders faced violence. King urged them to continue following nonviolence, calling it “our most creative way to break loose from the paralyzing shackles of segregation” and emphasizing suffering in a righteous cause. The rides forced the Kennedy administration to ban segregation in facilities under Interstate Commerce Commission jurisdiction.
    • Albany Movement (1961-1962): SNCC workers initiated organizing efforts. A coalition of black organizations formed the Albany Movement to end all forms of segregation and discrimination. They employed direct action, nonviolent tactics. Thousands were arrested, including King. King appealed to President Kennedy for intervention, but Kennedy did not arrange a meeting, wanting the protests to end. From this experience, King learned that his efforts were too diffuse and that it was more strategic to attack a single aspect of entrenched policies rather than attempt to desegregate the city entirely. He realized that winning against a political power structure is difficult without votes, but possible against an economic power structure by impacting profit and loss. Despite setbacks, thousands of black citizens were added to voting rolls, and some segregation ordinances were repealed. The movement in Albany also saw the rise of “Freedom Songs”.
    • Birmingham Campaign (“Project C”) (1963): King and SCLC aimed to gain national attention in Birmingham, which had a rigid segregation system. Birmingham was chosen because King knew action there would provoke intense trouble, creating a “crisis to bargain with”. It was a carefully planned nonviolent direct action strategy to confront segregation. George Wallace was inaugurated as Alabama governor in January 1963, declaring “Segregation now! Segregation tomorrow! Segregation forever!”. Protests began in early April 1963, including sit-ins, marches, and boycotts. Police Commissioner Eugene “Bull” Connor used force against demonstrators. While arrested in Birmingham, King wrote his “Letter from a Birmingham Jail,” defending direct action and explaining the pain of segregation. An agreement was reached in May 1963 to desegregate stores, restaurants, and schools. The vivid contrast of police dogs and fire hoses used against protesters gained worldwide publicity and moved President Kennedy to work on civil rights legislation.
    • March on Washington for Jobs and Freedom (1963): Planned by leaders from various civil rights organizations and unions. The goals included addressing economic inequities and pressing for a civil rights bill. On August 28, 1963, over 200,000 people gathered, the largest reform demonstration in American history. King delivered his “I Have a Dream” speech. The event was covered by national television. Following the march, King and other leaders met with President Kennedy to discuss the pending civil rights bill. Kennedy issued a statement acknowledging the public awareness of the need to move forward on civil rights objectives.
    • Civil Rights Act of 1964: The confrontation with Wallace and events in Birmingham forced the Kennedy administration to take action. After President Kennedy’s assassination in November 1963, President Lyndon Johnson took office. Johnson was determined to pass the civil rights bill without compromise and saw the cause as winnable. Vice President Hubert Humphrey played a key role in convincing Senate Minority Leader Everett Dirksen and other Republicans to support the bill, overcoming Southern Democratic opposition. Johnson signed the historic legislation on July 2, 1964, with King and other civil rights leaders present.
    • St. Augustine Protests (1964): Civil rights campaigns targeted segregated public facilities catering to tourists. The city had white militants and police aligned with them, including Sheriff L.O. Davis, who cavorted with Klan members. Protests involved clashes at the beach and opposing rallies. A federal judge ordered businesses to begin desegregation, and a biracial committee was formed, though white members later resigned.
    • Freedom Summer (1964): A campaign in the Deep South, focusing on Mississippi, to register black voters. Thousands of activists, including white college students from the North, participated. Mississippi had the lowest percentage of black registered voters. The campaign faced violence, including the murder of three civil rights workers, James Chaney, Andrew Goodman, and Michael Schwerner. King traveled to Mississippi amidst threats and spoke to encourage people. Despite violence, the project encouraged people to come out for change.
    • Selma Voting Rights Campaign (1965): Focused on the low number of black registered voters in Selma, Alabama. Local efforts were aided by SNCC, but faced resistance from Sheriff Jim Clark. King arrived in Selma in January 1965. President Johnson encouraged King to highlight instances of voting rights denial on television to gain national support for a voting rights bill. Protests led to arrests, including King’s. Violence occurred, including the forced march of children and the fatal shooting of Jimmie Lee Jackson by police. Jackson’s death spurred the decision to march from Selma to Montgomery. The first march on March 7, 1965, became known as “Bloody Sunday” when state troopers attacked marchers on the Edmund Pettus Bridge. Televised images of the violence led hundreds to travel to Alabama to join the protest.
    • Voting Rights Act of 1965: On March 15, 1965, President Johnson addressed Congress and the nation, calling for legislation to eliminate illegal barriers to voting and embracing the civil rights movement’s cause. Johnson became exasperated with Governor Wallace’s deception regarding the crisis. The legislation passed.
    • Shift to the North and Economic Issues (starting 1965-1966): Following the Voting Rights Act, rioting broke out in cities like Watts, Los Angeles (1965). Ghettos across the country experienced riots as demands for change met fierce resistance. King decided to broaden the movement to focus on poverty and economic independence, targeting Chicago.
    • Chicago Freedom Movement (1966): King and SCLC moved into a Chicago tenement to highlight ghetto living conditions. They planned marches and boycotts demanding an end to discrimination in housing, employment, and schools. King challenged Mayor Richard J. Daley and the entrenched political structure. King’s demands echoed Martin Luther’s act of posting his theses. King met with youth gangs to urge nonviolence. Marches in white neighborhoods faced violence. While an agreement on open housing was reached with Daley, it lacked guarantees and demonstrated resistance to racial equality when it threatened property rights. The experience highlighted the difficulties in the North.
    • Meredith March Against Fear (1966): After James Meredith was shot while marching, King, Stokely Carmichael, and Floyd McKissick resumed the march. It helped register thousands of voters. During this march, Stokely Carmichael popularized the phrase “Black Power”.
    • “Black Power” and Shifting Dynamics (late 1960s): The rise of Black Power advocates like Stokely Carmichael challenged King’s nonviolent approach. Carmichael argued that blacks were born free and were fighting against white supremacy, not just for integration, and that whites could not give blacks freedom. He urged blacks to stop trying to prove themselves to whites and demanded that white people overcome their racism or be moved over. This perspective marked a divergence from King’s ideals. Malcolm X had also criticized King’s nonviolent strategy earlier, arguing against nonviolence and the idea of integration.
    • Vietnam War Opposition: King began publicly asserting his opposition to the Vietnam War, viewing it as immoral and a diversion of funds from antipoverty programs. This stance strained his relationship with President Johnson and fractured his national support, with some civil rights leaders criticizing him for merging the movements.
    • Poor People’s Campaign (announced 1967): Facing nationwide riots and the rise of Black Power, King decided to focus on economic inequality and poverty. He announced a campaign bringing poor people of all races (African Americans, Indians, Puerto Ricans, poor whites) to Washington, D.C., to demand jobs or income. It was planned as a sustained act of civil disobedience, not a single event like the 1963 March on Washington. The campaign aimed to channel frustration into constructive action and compel the government to aid the economically deprived, seeking an “Economic Bill of Rights”.
    • Memphis (1968): Facing an injunction, King gave a speech on April 3, 1968, saying he had “been to the mountaintop” and seen the “promised land,” though he might not get there with them.
    • Tactics and Philosophy: The movement widely employed nonviolent direct action, including marches, boycotts, sit-ins, and demonstrations. This was inspired by Gandhi’s philosophy. Nonviolent methods were seen as a creative way to break segregation and a path to suffering virtuously for a righteous cause. Filling the jails was seen as a fulfillment of a dream. The movement also used legal challenges and voter registration drives. Music, specifically “Freedom Songs,” became an important dimension of the movement.
    • Challenges and Resistance: The movement faced fierce resistance, including violence, arrests, police brutality (dogs, fire hoses), and intimidation from groups like the Ku Klux Klan and white vigilantes. The Plessy v. Ferguson decision and Jim Crow laws institutionalized segregation. State and local officials actively worked to prevent black citizens from exercising their rights, especially voting, through formal methods like poll taxes and literacy tests, and through violence. The FBI under J. Edgar Hoover also shadowed King, viewing him with suspicion. Internal tensions arose regarding tactics, particularly between King and more radical factions.
    • Impact: The movement, through its actions and suffering, brought national and worldwide publicity to the injustices of segregation. It led to significant federal intervention and the passage of landmark legislation such as the Civil Rights Act of 1964 and the Voting Rights Act of 1965. These efforts demonstrated that urgent change was necessary, just, and possible. The movement also raised expectations, leading to increased demands for change and contributing to the urban unrest of the late 1960s.

    The Civil Rights Movement, as depicted in the sources, was a complex struggle involving strategic nonviolent confrontation, significant personal sacrifice, evolving goals, and challenges from external resistance and internal disagreements, ultimately leading to crucial legislative victories and increased awareness of systemic inequalities. As C.T. Vivian noted, “No one who is involved in a struggle for freedom and justice dies in vain”.

    King’s Philosophy of Nonviolent Resistance

    Based on the sources, nonviolent protest was a central tenet of Martin Luther King Jr.’s philosophy and a core strategy of the Civil Rights Movement. King believed that nonviolent resistance was one of the most potent weapons available to oppressed people in their quest for social justice. This approach was not seen as passive, but rather as an active strike against evil by the power of love. King was convinced that such nonviolent resistance was both courageous and morally consistent.

    Origins and Influences on King’s Nonviolent Philosophy:

    • King’s nonviolent philosophy was significantly influenced by Mohandas Gandhi’s concept of “Soul Force”—nonviolent resistance of conquering through love.
    • Gandhi’s philosophy involved challenging the social and political order through nonviolent protest, including boycotts, refusing to pay taxes, and large-scale noncooperation.
    • King was struck by the power unleashed by nonviolent protest as he read about Gandhi’s life and philosophy.
    • He received his first exposure to Gandhi’s ideas from American pacifist A. J. Muste at Crozer. While initially skeptical about adapting these techniques in the American South, hearing Mordecai Johnson speak admiringly of Gandhi’s tactics in 1950 solidified his understanding. Johnson described it as active, loud, disruptive noncooperation.
    • King began to see that tactics like boycotts, strikes, and protest marches, grounded in a spirit of justice and love for the oppressor, might actually be effective in challenging racial barriers.
    • He later wrote that Gandhi, by breaking the cycle of hatred, elevated the love ethic of Christ into an effective social force. King stated that the “Gandhian philosophy of nonviolence … is the only logical and moral approach to the solution of the race problem in the United States.”.
    • The sources also mention the central teachings of Jesus, specifically brotherly love and the Golden Rule, as principles articulated by King in his speech “The Negro and the Constitution”.
    • King’s wallet at the time of his death contained a handwritten note with a quote from Gandhi: “In the midst of death, life persists… . In the midst of darkness, light persists.”.

    Application and Strategy in the Civil Rights Movement:

    • The Southern Christian Leadership Conference (SCLC), co-founded and led by King, fostered a mass movement based on Christian tenets of love and understanding, using tactics of nonviolent confrontation. They challenged power through marches, boycotts, and sit-ins.
    • In the Montgomery Bus Boycott, King appealed to black citizens for nonviolent responses to aggressive assaults, distributing pamphlets that suggested, “If cursed, do not curse back. If pushed, do not push back. If struck, do not strike back, but evidence … goodwill at all times.”. If attacked, they were advised not to fight back but to “pray for the oppressor and use moral and spiritual force to carry on the struggle for justice.”. When his home was bombed during the boycott, King urged the crowd that had gathered to disperse, emphasizing, “We cannot solve this problem through retaliatory violence… We must meet violence with nonviolence.”.
    • The Sit-In Movement, which began in Greensboro, North Carolina, and spread throughout the country, involved students challenging segregated lunch counters and other facilities. King encouraged students involved in the sit-in movement to be willing to “fill the jails”, seeing the movement as an opportunity for people to act and become involved.
    • The Freedom Rides, initiated by CORE, tested the desegregation of interstate travel facilities. When initial riders were attacked, Nashville student protesters, led by Diane Nash, decided to continue the rides, convinced that if the nonviolent Freedom Riders were stopped by violence, it would cut short the future of the movement.
    • In Albany, Georgia, SNCC workers and the Albany Movement aimed to end all forms of segregation using nonviolent tactics like sit-ins, boycotts, legal actions, marches, and mass demonstrations. Police Chief Laurie Pritchett attempted to counter King’s nonviolence with nonviolence of his own, arresting demonstrators quietly and avoiding brutality to prevent public relations mistakes and deny the movement images of violent repression.
    • In Birmingham, King and the SCLC planned “Project C” (for confrontation), a strategy of nonviolent direct action including peaceful demonstrations, economic boycotts, and national appeals. They carefully planned the campaign, recruiting volunteers willing to go to jail and conducting workshops in nonviolent techniques. They defied a court injunction against protests, accepting inevitable arrest and jail time. King defended the tactic of direct action and the right to defy unjust laws. The use of dogs and fire hoses against protesters exposed the violence of segregation to the nation, proving the efficacy of King’s strategy of nonviolent confrontation and contributing to the passage of the Civil Rights Act of 1964.
    • The March on Washington for Jobs and Freedom was intentionally organized to be peaceful, with authorities and organizers working together to ensure nonviolence.
    • In Selma, Alabama, King and others engaged in nonviolent voter registration efforts. Sheriff Jim Clark, known for his tough tactics, became a predictable foil for King’s nonviolent approach. Demonstrators, including schoolchildren, were jailed. The brutal attack on marchers during the march to Montgomery, known as “Bloody Sunday,” highlighted the violence faced by nonviolent protesters.
    • In Chicago, King applied nonviolent methods to challenge discrimination in housing, employment, and schools. Despite facing violent mobs, the discipline of the marchers, including gang members acting as marshals, remained impressive. King marveled that gang members, despite injuries, did not retaliate with violence.

    Challenges and Criticisms:

    • King faced criticism and challenges to his nonviolent approach, notably from advocates of “Black Power” like Stokely Carmichael and Malcolm X.
    • Malcolm X was particularly critical, arguing that African Americans could not achieve freedom nonviolently and that black people should not turn their backs on physical assaults but resist forcefully.
    • Stokely Carmichael, who became chairman of SNCC, argued that the movement was fighting against white supremacy, not just for integration, and that white people cannot grant freedom; they can only stop denying it. Carmichael’s declaration of “Black Power” was seen by King as an “unfortunate choice of words” and inimical to his nonviolent approach.
    • King worried about the implications of black separatism and the willingness of some to resort to physical violence, although he saw “Black Power” as potentially a positive step in accumulating economic and political power.
    • Despite their philosophical differences, Carmichael personally admired King, noting that people loved King and saw him “like God”.
    • The Memphis sanitation strike march, which King joined to support the poorest workers, erupted in violence initiated by police, leading to injuries, arrests, and a death. This showed the difficulty of maintaining nonviolence in the face of aggressive opposition.
    • The assassination of King, a preacher of nonviolence, tragically provoked widespread rioting and violence in cities across the country.

    Effectiveness and Impact:

    • Nonviolent protest was instrumental in gaining national attention for the Civil Rights Movement.
    • The Birmingham campaign’s success, partly due to the violent reaction of authorities to nonviolent demonstrators, demonstrated that urgent change was necessary and possible, leading President Kennedy to work on civil rights legislation that became the Civil Rights Act of 1964.
    • The Selma campaign, culminating in “Bloody Sunday,” pressured President Johnson to propose and Congress to pass the Voting Rights Act.
    • The victory in the Montgomery Bus Boycott was described as a strong affirmation of self-worth for the black population.
    • King described the Birmingham events as marking the “nonviolent movement coming of age,” demonstrating the ability to fill jails as a fulfillment of a dream.
    • Nonviolent noncooperation aimed to hurt occupiers economically and overwhelm military might through the sheer numbers of resisters, eventually leading the opposition to consider violence useless.

    In essence, nonviolent protest, drawing inspiration from Gandhi and Christian teachings, was King’s strategic and moral compass for the Civil Rights Movement. It was a deliberate, active method of confrontation designed to expose injustice, challenge the status quo, and compel change, despite facing significant violence and internal disagreements.

    The Reality of Racial Segregation

    Based on the sources, racial segregation was a deeply ingrained system in American society, particularly in the South, that isolated, impoverished, and limited the opportunities of black Americans based solely on the color of their skin. It created a condition of enforced inferiority and stood defiantly in the way of progress for the black race.

    Legal Basis and Challenges:

    • The practice of segregation was legitimized in 1898 by the Supreme Court’s Plessy v. Ferguson decision, which upheld the doctrine of “separate but equal” accommodations, initially for railroads. This decision required blacks and whites to be separated on public conveyances like buses and trains.
    • Reformers battled against the Plessy v. Ferguson decision for a long time.
    • In 1954, the Supreme Court’s decision in Brown v. Board of Education finally struck down the doctrine of “separate but equal” in public education, stating that separate educational facilities are inherently unequal. Although this decision did not immediately abolish segregation in other public areas, it declared permissive or mandatory segregation in 21 states unconstitutional and was considered a giant step toward desegregation.

    Manifestations of Segregation:

    Segregation affected nearly every aspect of life for black Americans:

    • Housing: It was impossible for black individuals to live in the better-developed sections of town. In Chicago, 800,000 black citizens were tightly segregated in tenement housing, paying inflated rents for substandard buildings. Efforts to challenge housing discrimination in Chicago through an “open housing campaign” faced violent reactions and resistance from white residents and realtors.
    • Schools and Churches: Schools and churches had either white or black congregations.
    • Public Facilities: Downtown restaurants and lunch counters in department stores were off-limits to black individuals. Theaters, public libraries, public parks, restrooms, and department store fitting rooms were segregated.
    • Transportation: Blacks were separated from whites on buses and trains. In Montgomery, black passengers had to pay at the front, exit, and re-enter through the back door, and could not sit in the first four rows reserved for whites. If white sections were full, a white passenger could take any other seat, requiring a black person in that row to stand up. City regulations prohibited blacks and whites from sitting next to each other on buses.
    • Other Public Places: Signs reading “Whites Only” were common at water fountains, swimming pools, elevators, and other public places. For example, the YMCA built a segregated pool for black children. After integration ordinances were put in place in Albany, Georgia, the city sold its municipal swimming pool to a private individual so it would not be subject to integration.
    • Employment: Segregation affected job opportunities and fair hiring practices.
    • Voting Rights: Despite paying taxes, blacks in many cases did not have the right to vote. Methods of intimidation like poll taxes and literacy tests were used to prevent black adults from registering to vote.

    Experiences Under Segregation:

    • Living under segregation meant daily indignities, both large and small.
    • Martin Luther King, Jr. experienced segregation from a young age, being cursed by a bus driver for attempting to sit in seats reserved for whites. He recognized, even as a child, that the social system was overpowering and unfair. He remembered being denied access to public parks, lunch counters, movie theaters, and the best schools.
    • Segregation caused feelings of anger and humiliation.
    • In his “Letter from a Birmingham Jail,” King described the long suffering and humiliation that black people had endured, including codified hatred embedded in segregation laws. He spoke of having to explain to his daughter why she couldn’t go to an amusement park or to his son why white people treated colored people meanly. He mentioned the humiliation of constantly seeing “white” and “colored” signs, being called racial slurs, and feeling a “degenerating sense of ‘nobodiness’”.
    • Birmingham, Alabama, was described by King as the most segregated city in the nation, a stronghold of the KKK, with a police force fiercely opposed to protesters.

    Challenges to Segregation:

    The Civil Rights Movement employed various tactics to challenge segregation:

    • Legal Actions: The NAACP concentrated on legal challenges, such as the Brown v. Board of Education case. A federal court suit challenged bus segregation in Montgomery, leading to the Supreme Court declaring it unconstitutional.
    • Nonviolent Protest and Direct Action: Tactics included boycotts (like the Montgomery Bus Boycott), sit-ins (like the lunch counter sit-ins), marches, and mass demonstrations. These actions aimed to challenge power and expose the injustices of segregation.
    • Filling Jails: King encouraged protesters to be willing to “fill the jails” as a tactic to express themselves and become involved in the struggle.

    Despite these efforts, resistance to desegregation was strong, sometimes involving violence from white individuals and law enforcement. However, these confrontations often brought national attention to the cause and were instrumental in achieving significant legislative changes like the Civil Rights Act of 1964, which outlawed segregation in public accommodations, employment, and education.

    The Life and Legacy of Martin Luther King, Jr.

    Martin Luther King, Jr. was a pivotal figure in the American Civil Rights Movement, known for his powerful oratory and unwavering commitment to nonviolent protest against racial segregation and injustice.

    Born Michael King, Jr. in Atlanta, Georgia, on January 15, 1929, he was the second child and first son of Michael King, Sr. and Alberta Christine Williams King. The family later changed their name to “Martin Luther” after the sixteenth-century German religious leader. Preaching was deeply ingrained in his family, as his father, brother, grandfather, and great-grandfather on his mother’s side were all preachers. His father, Martin Luther King, Sr., known as “Daddy King,” was a dynamic speaker and influential pastor at Ebenezer Baptist Church, who publicly challenged unjust prejudices and social conventions holding back the black race. His mother, Alberta Williams King, discussed the history of slavery and segregation with him, teaching him that his life mattered as much as anyone else’s.

    King attended Booker T. Washington High School and was admitted to Morehouse College at the age of 15, leaving after the eleventh grade. At Morehouse, a prominent black institution, he was significantly influenced by President Benjamin Mays, who encouraged students to fight for the rights of the poor and disenfranchised and use their education for the dignity of the black community. King experienced the pain of segregation firsthand on a bus trip returning from a speaking contest in Dublin, Georgia, which made him the angriest he had ever been. In contrast, a summer working in Simsbury, Connecticut, showed him a lack of discrimination outside the South.

    During his junior year at Morehouse, at age 17, King decided to become a minister, describing it as an “inner urge to serve humanity”. He sought a “rational” approach to ministry, aiming to be a “respectable force for ideas, even social protest”. He was ordained as a minister in February 1948, his final year at Morehouse, and became an associate pastor at Ebenezer. He graduated from Morehouse in June 1948 with a degree in sociology.

    King continued his education at Crozer Theological Seminary in Pennsylvania and later Boston University, where he received his Ph.D. in Systematic Theology in June 1955. At both institutions, he was deeply influenced by the philosophy of nonviolent protest, particularly that of Mohandas Gandhi. He came to believe that nonviolent resistance was an active strike against evil, both courageous and morally consistent. King wrote that Gandhi elevated “the love ethic of Christ to an effective social force” and that Gandhian nonviolence was the “only logical and moral approach to the solution of the race problem in the United States”.

    In 1954, King became the pastor of the Dexter Avenue Baptist Church in Montgomery, Alabama. He observed that Montgomery’s 50,000 black citizens lived in a state of “enforced inferiority,” with segregation impacting housing, schooling, and daily life, evidenced by common “whites only” signs. King was quickly involved in challenging segregation, with Dexter Avenue Baptist Church becoming a significant contributor to the NAACP.

    King’s involvement in the Montgomery Bus Boycott, which began on December 5, 1955, following Rosa Parks’s arrest for refusing to give up her seat, marked a turning point in his life and the Civil Rights Movement. Black leaders, including E. D. Nixon and Jo Ann Robinson, saw Parks’s arrest as an opportunity to challenge bus segregation and convinced King to lead the boycott due to his oratorical skills. The boycott was highly successful, with black citizens refusing to ride the buses. Addressing a crowd, King spoke of their determination as American citizens to fight for justice, using language from the Book of Amos. The boycott brought King national attention. Facing white hatred and an arrest during the boycott, King emphasized nonviolence and meeting hate with love. The U.S. Supreme Court ruled bus segregation illegal in November 1956, and Montgomery buses were desegregated the following month. The victory instilled a strong affirmation of self-worth in the black community.

    Building on the momentum from Montgomery, King and other black leaders formed the Southern Christian Leadership Conference (SCLC) in 1957 to fight segregation and achieve civil rights. Unlike the NAACP’s focus on legal challenges, the SCLC was action-oriented, utilizing nonviolent tactics like marches, boycotts, and sit-ins. King became the SCLC’s first president.

    King was involved in numerous key events and campaigns throughout the Civil Rights Movement. He delivered his first major national address on voting rights at the Lincoln Memorial in May 1957. He sent a wire to President Eisenhower regarding the desegregation crisis in Little Rock, warning of setbacks if strong action wasn’t taken. In 1959, he resigned from his pastorate at Dexter to dedicate himself fully to the civil rights struggle. He supported the student sit-in movement that began in 1960, encouraging participants to be willing to “fill the jails” as a form of protest. He himself was arrested during an Atlanta sit-in, stating the goal was to bring desegregation to the city’s conscience.

    Following violence against the Freedom Riders in 1961, King returned to Montgomery, praising the riders’ courage and condemning the violence. He joined the Albany Movement in Georgia, where he was jailed. This campaign highlighted new challenges, including facing a police chief who avoided tactics that generated national sympathy for the movement and introduced the element of FBI surveillance driven by Cold War fears.

    In 1963, King and the SCLC planned the Birmingham campaign as a turning point in the movement. Facing Police Commissioner Eugene “Bull” Connor, known for his fierce opposition to protesters and ties to the KKK, King was arrested for demonstrating without a permit and wrote his influential “Letter from a Birmingham Jail”. The campaign, though met with resistance, gained national exposure and was the first time they could “literally fill the jails,” fulfilling a dream.

    King was a central figure in the March on Washington for Jobs and Freedom in August 1963, delivering his iconic “I Have a Dream” speech on the steps of the Lincoln Memorial. The speech passionately articulated a vision of a nation where people would be judged by their character, not their skin color. After the march, King and other leaders met with President Kennedy to discuss pending civil rights legislation. King called Kennedy’s subsequent address on civil rights the “most earnest, human and profound appeal for understanding and justice that any President has uttered since the first days of the Republic”. Shortly after the March on Washington, four young girls were killed in the bombing of the 16th Street Baptist Church in Birmingham, a church targeted by the KKK. King delivered a powerful eulogy for the children, calling them martyrs and urging people to work against the system that produced their murderers. King described the summer of 1963 as the “first offensive in history launched by the Negroes along a broad front,” a “simultaneous, massive assault against segregation”.

    Following President Kennedy’s assassination in November 1963, King felt that the tragedy might ironically speed up civil rights gains under the new president, Lyndon B. Johnson. He met with President Johnson, who, despite the challenges, was determined to pass civil rights legislation. King attended the signing ceremony for the Civil Rights Act of 1964, which outlawed segregation in public accommodations, employment, and education.

    In 1964, King was awarded the Nobel Peace Prize at the age of 35, the youngest recipient at the time. He accepted the award on behalf of the civil rights movement and those who risked their lives for the cause, expressing belief in dignity, equality, and freedom through nonviolent good will.

    King turned his attention to voting rights, targeting Selma, Alabama, for a campaign in 1965, where few black adults were registered voters due to intimidation tactics. President Johnson called King, emphasizing the need to expose the denial of voting rights to the nation through publicity to help pass a voting rights bill. King was arrested during demonstrations in Selma.

    Seeking to broaden the movement’s focus to economic inequality, King initiated the Chicago Freedom Movement in 1966. He moved into a tenement to highlight poor living conditions and led marches demanding an end to discrimination in housing, employment, and schools. He also launched “Operation Breadbasket,” a campaign to boycott companies that did not offer employment to black individuals. While in Chicago, he joined the Meredith March in Mississippi after James Meredith was shot, a march that helped register thousands of black voters. During this march, Stokely Carmichael popularized the term “Black Power,” a concept inimical to King’s nonviolent approach.

    King also became increasingly vocal in his opposition to the Vietnam War, a stance that strained his relationship with President Johnson and drew criticism from some fellow civil rights leaders. He delivered his notable “Beyond Vietnam” speech in 1967.

    In response to nationwide urban riots and the rise of the Black Power movement, King planned the “Poor People’s Campaign” in late 1967, aiming to bring poor individuals of all races to Washington, D.C., to demand jobs or income. His final campaign was in support of striking sanitation workers in Memphis, Tennessee, in 1968. On April 3, 1968, he delivered his last speech, “I’ve Been to the Mountaintop,” acknowledging the difficult days ahead but expressing a vision of reaching the “promised land”.

    Martin Luther King, Jr. was shot and killed on April 4, 1968, while on the balcony of the Lorraine Motel in Memphis, where he was supporting the sanitation workers’ strike. He died at age 39. James Earl Ray was apprehended and confessed, but conspiracy theories regarding his death persist.

    King is remembered as a visionary leader, an inspiring speaker, and a man of great courage who used nonviolent resistance to challenge segregation and injustice. His commitment to fighting for basic rights and opportunities for black Americans and his belief in the power of love and justice continue to inspire.

    Key Martin Luther King Jr. Civil Rights Events

    Based on the sources provided, several key Civil Rights events stand out in the life and work of Martin Luther King Jr.:

    • Montgomery Bus Boycott (1955-1956) The Montgomery Bus Boycott began on December 5, 1955, following the arrest of Rosa Parks, a seamstress, for refusing to give up her seat on a bus to a white passenger, violating local segregation laws. Black leaders, including E. D. Nixon and Jo Ann Robinson, saw Parks’s arrest as an opportunity to challenge the city’s segregated bus system. Nixon and others convinced King, a powerful orator and relative newcomer, to lead a meeting at Dexter Avenue Baptist Church, aiming to put him in a position where he would lead the boycott. King and Coretta watched on the first morning of the boycott as buses passed with almost no passengers, showing that Montgomery’s black citizens had responded beyond expectations. King addressed a large crowd, stating, “We are here this evening—for serious business”. He spoke of their determination as American citizens to apply their citizenship to its fullest meaning. Throughout the boycott, King and other leaders distributed pamphlets urging black citizens to respond nonviolently to aggression from whites. Facing white hatred and an arrest during the boycott, King became a focus of national attention. The U.S. Supreme Court ruled bus segregation illegal on November 13, 1956. Montgomery buses were desegregated on December 21, 1956. The victory instilled a strong affirmation of self-worth in much of Montgomery’s black population.
    • Formation of the Southern Christian Leadership Conference (SCLC) (1957) In January 1957, King met with black leaders in Atlanta to plan an organization that would maintain the momentum gained from the bus boycott. They formed and King became president of the Southern Christian Leadership Conference (SCLC) to fight segregation and achieve civil rights. Unlike the NAACP, which focused on legal challenges, the SCLC was action-oriented, using tactics like marches, boycotts, and sit-ins to challenge segregation in the South.
    • Prayer Pilgrimage for Freedom (1957) On May 17, 1957, King traveled to Washington, D.C., to participate with other civil rights leaders in a “Prayer Pilgrimage”. Here, he delivered his first major national address, calling for black voting rights, speaking to a crowd estimated by some at over 20,000 on the steps of the Lincoln Memorial.
    • Little Rock School Crisis (1957) In the fall of 1957, Little Rock, Arkansas, became the scene of a major battle over the Brown v. Board of Education decision to desegregate schools. On September 9, King sent a wire to President Eisenhower warning that failure of the federal government to take strong action would set back integration by 50 years.
    • Support for the Student Sit-in Movement (1960) When the student sit-in movement began in February 1960 in Greensboro, North Carolina, challenging segregation ordinances, King supported the students. At a meeting attended by students from several states, King told them they must be willing to “fill the jails” as a form of protest. He saw the movement as an opportunity for people to act and become involved locally. On October 20, 1960, King joined students in a sit-in at Rich’s Department Store in Atlanta and was arrested and jailed along with 13 others. He stated the demonstration’s object was to bring the issue of desegregation “into the conscience of Atlanta”.
    • Freedom Rides (1961) The Freedom Rides were organized by CORE to test the enforcement of the Supreme Court ruling in Boynton v. Virginia (1960) that segregation in interstate travel facilities was illegal. Facing violence against the Freedom Riders, Martin Luther King returned to Montgomery on Sunday, May 21. About 50 federal agents escorted him from the airport. In a speech that evening, King thanked CORE, praised the courage of the riders, and condemned the violence, comparing it to Hitler’s Germany. He warned that if the federal government did not act, the situation could degenerate into chaos. He pledged that he and his organization would not sit idly by while black citizens faced lawlessness and injustice. The Freedom Riders’ efforts forced the Kennedy administration to direct the Interstate Commerce Commission to ban segregation in facilities under its jurisdiction.
    • Albany Movement (1961-1962) King and Ralph Abernathy arrived in Albany, Georgia, on December 15, 1961, joining a movement challenging segregation. The next day, King joined a march and was jailed along with nearly 200 black citizens. Albany Police Chief Laurie Pritchett avoided overreacting in ways that had generated national sympathy for the movement in other cities. King sent a wire to President Kennedy about the jailing of religious leaders who were fasting, stating they hoped to “arouse the conscience of this nation to the gross violations of human dignity and civil rights, which are the rule in Albany and surrounding counties”. Kennedy did not arrange the meeting in Washington that King requested, despite seven U.S. Senators encouraging White House intervention. The Albany campaign highlighted the challenge of a police chief who prevented dramatic confrontations and also introduced FBI surveillance due to Cold War fears. King later reflected that their efforts in Albany were too diffuse, attempting to desegregate the city in all respects rather than focusing on a single issue.
    • Birmingham Campaign (1963) King and the SCLC planned a campaign in Birmingham, Alabama, knowing it would likely provoke intense trouble and could gain national attention. Their plan, “Project C” (for confrontation), involved nonviolent direct action, boycotts, and appeals for justice, hinging on the reaction of Police Commissioner Eugene “Bull” Connor. In early April 1963, King and the SCLC, along with local leaders like Fred Shuttlesworth, began sit-ins, marches, and a boycott of downtown merchants. On April 12, 1963, King was arrested for demonstrating without a permit. While jailed, he wrote his influential “Letter from a Birmingham Jail”. In the letter, he defended direct action, the right to defy unjust laws, and described the suffering and humiliation endured by black Americans. He articulated why the movement found it difficult to wait for change, using powerful examples of the impact of segregation on families. The campaign included “D-Day” on May 2, where over 1,000 children and teenagers were arrested. The next day, police used dogs and fire hoses against young protesters in Kelly Ingram Park, gaining worldwide publicity. King was upbeat about the national exposure and the success at Birmingham, stating it marked the nonviolent movement “coming of age” and that it was the first time they could “literally to fill the jails,” fulfilling a dream. The vivid contrast between the protesters and the police actions, especially with dogs and fire hoses, was seen globally. These events moved President Kennedy to work on broad civil rights legislation.
    • March on Washington for Jobs and Freedom (1963) Following the events in Birmingham and President Kennedy’s national address on civil rights, King prepared for the biggest demonstration yet. The “March on Washington for Jobs and Freedom” was planned to stress economic inequities and press for civil rights legislation. On August 28, 1963, over 200,000 people gathered around the Lincoln Memorial. King was the final speaker and delivered his famous “I Have a Dream” speech, articulating a vision of a nation where people would be judged by their character. After the march, King and other leaders met with President Kennedy at the White House to discuss the pending civil rights bill.
    • 16th Street Baptist Church Bombing (1963) Shortly after the March on Washington, the 16th Street Baptist Church in Birmingham was bombed, killing four young girls. This church had been a central location for planning civil rights activities.
    • Civil Rights Act of 1964 (1964) Following President Kennedy’s assassination, Lyndon B. Johnson became president and was determined to pass the civil rights bill. Johnson, who saw the civil rights cause as just and winnable, instructed his aides to work with Congress to ensure its passage. With concerted efforts and bipartisan support, the legislation passed. King attended the signing ceremony of the Civil Rights Act of 1964 at the White House on July 2, 1964. This act outlawed segregation in public accommodations, employment, and education.
    • Selma Voting Rights Campaign (1965) In 1965, King turned his attention to voting rights, focusing on Selma, Alabama, where few black adults were registered due to intimidation. After local efforts were met with resistance, including Sheriff Jim Clark openly turning away black applicants, the Voters League appealed to King. King arrived in Selma in January 1965 and was physically attacked upon signing into his hotel. President Johnson called King, emphasizing the need to expose the denial of voting rights to the nation through publicity to help pass a voting rights bill. King mobilized demonstrations, urging people to be willing to “go to jail by the thousands” and demanding the ballot. Protesters were beaten and arrested, but their continued efforts gained national attention. After a night march to Marion, Alabama, where Jimmie Lee Jackson was shot and killed trying to protect his mother, SCLC members discussed a march to Montgomery. At Jackson’s memorial service, King announced the march would begin on March 7. This march became known as “Bloody Sunday” after state troopers attacked the marchers on the Edmund Pettus Bridge. President Johnson responded by speaking to Congress, embracing the aims of the movement and calling for a voting rights bill. He declared that denying the right to vote was “wrong—deadly wrong” and that the struggle for human rights must be “our cause too”. He ended his speech saying, “And we shall overcome”. The Selma struggle’s impact helped propel the passage of the Voting Rights Act of 1965.
    • Chicago Freedom Movement (1966) Seeking to broaden the movement’s focus to economic inequality, King initiated the Chicago Freedom Movement in 1966. On January 26, 1966, King and aides moved into a tenement apartment in Chicago to highlight poor living conditions. The campaign aimed to end discrimination in housing, employment, and schools. Demands were posted on the door of Mayor Richard J. Daley’s office. King also launched “Operation Breadbasket” in Chicago, a campaign targeting companies for fair employment practices. The Chicago campaign demonstrated the difficulties of challenging deeply entrenched issues like housing discrimination in Northern cities. While an agreement was reached with city officials and real estate agents, it contained no guarantees or timetable, illustrating resistance to changes that threatened property rights.
    • Meredith March Against Fear (1966) After James Meredith was shot and wounded during his “March Against Fear” in Mississippi, King joined Floyd McKissick and Stokely Carmichael to continue the march. It was during this march that Stokely Carmichael popularized the term “Black Power,” a phrase inimical to King’s nonviolent approach, forcing King to confront and combat the concept.
    • Opposition to the Vietnam War (1967) In 1967, King became more vocal in his opposition to the Vietnam War, a stance that drew criticism from some. He delivered his notable “Beyond Vietnam” speech on April 4, 1967.
    • Poor People’s Campaign (1967-1968) In response to urban riots and the rise of Black Power, King and his advisors began planning the “Poor People’s Campaign” in late 1967, aiming to focus on economic inequalities and poverty. On December 4, 1967, King announced the campaign, stating it would bring poor individuals of all races to Washington, D.C., to demand jobs or income.
    • Memphis Sanitation Strike (1968) King’s final campaign supported striking sanitation workers in Memphis, Tennessee. On April 3, 1968, the evening before his death, King delivered his last speech, “I’ve Been to the Mountaintop,” at the Masonic Temple in Memphis. He spoke about the difficult days ahead but expressed his vision of reaching the “promised land”.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Mother Teresa: A Biography

    Mother Teresa: A Biography

    This collection of excerpts from a biography of Mother Teresa provides an overview of her life and work. It outlines her early life in Skopje, her decision to join the Loreto Sisters and move to India, and her subsequent call to work with the poorest in Calcutta. The text highlights the founding and growth of her order, the Missionaries of Charity, detailing their work establishing homes for the dying (Nirmal Hriday), children (Shishu Bhavan), and lepers (Shantinagar). It also touches on the order’s expansion globally, the challenges and criticisms Mother Teresa faced, and her impact on the world stage.

    The Life and Legacy of Mother Teresa

    Writing about Mother Teresa can be both frustrating and challenging, as her personality appears rife with contradictions upon closer inspection. While on the surface she lived a simple life devoted to her calling and faith, understanding her motives and purposes can be difficult. Her life is described as not inherently “interesting” in the modern sense, lacking great adventures or crises, and biographies often portray her reverentially, making it easy to forget she was a human being.

    However, the sources present a biography of Mother Teresa highlighting significant aspects of her life and work:

    • Early Life and Calling: Born Agnes Gonxha Bojaxhiu on August 26, 1910, she first felt the desire to become a nun at the age of twelve, despite never having seen a nun. Her decision to pursue a religious life did not surprise her mother, Drana, perhaps due to Gonxha’s chronic poor health. Her chosen religious name, Teresa, was in honor of St. Thérèse of the Child Jesus, the patron saint of missions.
    • Entry into Loreto and Departure: Gonxha left her family and country at age 18 or 19 to join the Loreto Sisters, first in Dublin, Ireland, and then in India. She believed she was carrying out God’s plan by serving as a Loreto nun and teacher, instructing children of the poor.
    • The “Call Within a Call”: On September 10, 1946, while traveling by train to Darjeeling for a retreat, Mother Teresa experienced what she described as “another call”. She later stated the message was clear: she was to leave the convent and help the poor while living among them, considering it an order from God. This day is now celebrated annually by the Missionaries of Charity as Inspiration Day.
    • Founding the Missionaries of Charity: After receiving permission to leave Loreto and train in Patna, Mother Teresa returned to Calcutta in December 1948 and began her work in the slums, dressing in a white sari like a poor Bengali woman. She started by teaching children with a stick in the mud. She was joined by her first associate, Subashni Das, in March 1949, who became her first postulant. The Missionaries of Charity congregation was formally approved on October 7, 1950. The order has four vows: chastity, poverty, obedience, and a fourth vow to give “whole-hearted and free service to the poorest of the poor”. They committed to working only for the poor and living rigorously poor lives themselves, believing they served Jesus in the poor. Mother Teresa emphasized “starting right on the ground,” a defining concept for the constitution of the order.
    • Expanding Work and Recognition: Early initiatives included opening a school, a hostel for the ill and dying, and a feeding program. Key locations established were Nirmal Hriday (Home for the Dying) in 1952 and Shishu Bhavan (Home for children) in 1953. She began working with lepers in 1957 and opened Shantinagar (Place of Peace for Lepers) in 1965. The Missionaries of Charity Brothers were established in 1963. The order expanded outside of Calcutta in 1959 and outside of India in 1965 after receiving permission from the Pope to become a Society of Pontifical Right. By the 1980s, the order was opening many new foundations globally. Mother Teresa also established hospices for people with AIDS in 1987.
    • Public Profile and Celebrity: Mother Teresa became increasingly well-known, first in Calcutta and then internationally. Her interview with Malcolm Muggeridge in 1968 exposed her work to a wider audience, leading to donations and increasing fame. Muggeridge’s documentary and book, Something Beautiful for God, significantly contributed to her global recognition. Despite her fame, she tried to use it to benefit the poor and insisted on relying on God’s providence rather than aggressive fundraising.
    • Criticisms and Controversies: As her public profile grew, so did criticism and scrutiny. Criticisms included nonchalance over death, being a nuisance to doctors, and accusations of trying to convert Hindus. Later criticisms intensified regarding the acceptance of funds from questionable donors, the standard of care in her facilities, financial transparency, and political stances. She faced particular criticism for her strong stance against abortion, her silence on religious persecution in Albania, accepting donations from dictators, and her involvement in a campaign for Christian Dalits, which Indian Church officials criticized. The 1994 documentary Hell’s Angel and Christopher Hitchens’ book The Missionary Position were particularly critical, questioning her motives, finances, and methods. Despite challenges, she typically accepted criticism with a smile and continued her work.
    • Later Life, Death, and Sainthood: Mother Teresa’s health deteriorated in her later years, suffering heart attacks in 1983 and 1989. She considered stepping down as head of the order due to ill health. She died on September 5, 1997, after a heart attack. Her death was followed by a state funeral held by the Indian government. In 2003, Pope John Paul II beatified Mother Teresa, a step toward sainthood. This process included investigating her life and work, hearing testimony from both supporters and critics like Christopher Hitchens, and requiring a posthumous miracle. The Church’s investigation concluded her mission was to help individuals and bear witness to God’s presence, not fight for social change. Her legacy continues through the Missionaries of Charity and thousands of volunteers. The order trademarked her name in 2003 to prevent commercial exploitation.

    Despite the controversies and criticisms, many viewed Mother Teresa as a living saint even before her beatification. Supporters emphasized her deep faith and belief that she was an instrument of God. She is remembered for her commitment to rigorous poverty, her ability to inspire volunteers, and her conviction that Christ was present in everyone she served, particularly the poorest of the poor.

    The Missionaries of Charity: Founding and Legacy

    Based on the sources provided, the Missionaries of Charity are the religious congregation founded by Mother Teresa, dedicated to serving the poorest of the poor.

    Here are some key aspects of the Missionaries of Charity discussed in the sources:

    • Founding and Inspiration: The idea for a new congregation came to Mother Teresa on September 10, 1946, as “another call” to leave her convent and help the poor while living among them, which she saw as an order from God [prev turn, 10]. This call was to “quench the infinite thirst of Jesus Christ on the Cross for love of souls”, a tenet so important that chapels built by the order would be inscribed with the words “I thirst”. The congregation was formally approved on October 7, 1950 [prev turn, 32], as a new congregation limited to the diocese of Calcutta. Eleven young women began their lives as postulants that same day.
    • Mission and Vows: The aim of the Missionaries of Charity is to quench Jesus Christ’s thirst for love through evangelical counsels and “whole-hearted free service to the poorest of the poor”. Their particular mission is to labor at the salvation and sanctification of the poorest of the poor. They are called THE MISSIONARIES OF CHARITY. Members take the traditional vows of chastity, poverty, and obedience, adding a fourth vow: “to give whole-hearted and free service to the poorest of the poor”.
    • Rigorous Poverty: A core principle is the rigorous application of the vow of poverty. Mother Teresa believed their food and dress must be like the poor, serving the poor because they are Jesus. They saw rigorous poverty as their safeguard to prevent becoming like other religious orders that started serving the poor but ended up servicing the rich and themselves. They aimed to live like those who have nothing in order to understand and help them, being “poor by choice” while the poor are “poor by birth”. This included eating simple food, wearing habits made from old sacks, and initially going without things like tea or sufficient shawls. The constitution stipulated they would not own buildings or property, though this was later modified. They often went without necessities like cooking fuel, eating raw wheat, or eating bitter curry. They also resisted owning anything, even medical equipment, that wasn’t widely available to the poor. Mother Teresa continually reminded her sisters that because the poor did without, so must they, leading to donations like washing machines or carpets being given away.
    • Early Work and Activities: Upon returning to Calcutta in December 1948, Mother Teresa began her work in the slums, dressing in a white sari [prev turn, 21]. She started by teaching children [prev turn, 22]. The Missionaries of Charity began a feeding program, starting with the Bengali custom of mushti bhikka (a handful of rice). Early initiatives included opening a school, a hostel for the ill and dying (Nirmal Hriday), and a feeding program [prev turn]. Other key locations established were Shishu Bhavan (Home for children) [prev turn, 66] and Shantinagar (Place of Peace for Lepers) [prev turn, 72]. By the early 1980s, their activities included slum schools, daily meal programs feeding nearly 50,000, Shishu Bhavans caring for thousands of children, homes for the dying, and mobile clinics treating millions. They also established hospices for people with AIDS. A chart in the Motherhouse listed their various activities: child welfare, educational programs, nutritional daycares, family planning centers, dispensaries, leprosy clinics, rehabilitation centers, shelters, homes for unwed mothers, and hospices for the sick and dying.
    • Growth and Global Expansion: Initially confined to the diocese of Calcutta by church law, they received permission to expand within India in 1959. Houses were established in Delhi and Jhansi, and in Bombay. News of their work reached high levels, with Prime Minister Jawaharlal Nehru attending a dedication. The order was granted permission to become a Society of Pontifical Right by Pope Paul VI in February 1965, allowing them to work outside India. The first international home opened in Venezuela in 1965, where they also engaged in religious education due to a lack of priests. By 1970 in Caracas, they received permission for nuns to administer Holy Communion to the sick and dying. In 1968, Pope Paul VI invited them to work in Rome. They quickly expanded, opening missions in Sri Lanka (1967), Tanzania (1968), and Australia (1969), with a new center opening approximately every six months well into the next decade. By 1979, there were 158 foundations globally. By the 1980s, they were opening many new foundations globally [prev turn], though the bulk of their work remained in India. In 1988, they opened a mission in a Moscow hospital, unprecedented since the Russian Revolution. The growth of the order, particularly attracting vocations, was seen as remarkable at a time when religious vocations were generally declining.
    • Missionary Brothers and Volunteers: The Missionary Brothers of Charity were established in 1963 for work better suited for men, such as working with young boys. Led by Brother Andrew (Ian Travers-Ball), they adopted a less regimented, more adaptable style. They worked with poor boys at the Howrah railway station and in homes providing refuge and vocational training, and were involved with mobile leprosy clinics. They also grew rapidly and opened houses globally, often where the Sisters were not present. Thousands of volunteers also assist the Missionaries of Charity and Brothers. Come and Sees are typically young people working for a few weeks or months. Co-Workers, a term borrowed from Gandhi, number in the thousands globally and come from various backgrounds and religions. They are forbidden from fundraising or publicity but publish a newsletter. There is also a branch called Sick and Suffering Co-Workers who offer prayers.
    • Internal Life and Philosophy: Life in the order involves a long, grueling daily routine starting before 5 A.M. with prayers, meditation, and mass, followed by a simple breakfast, and being out on the streets by 7:45 A.M.. Sisters travel in pairs for safety and mutual help. Requirements for joining include physical and mental health, ability/desire to learn, common sense, and a cheerful disposition. Those who remain sever ties with their families, rarely returning home. Mother Teresa emphasized the work was religious, serving Jesus in the poor, rather than social work. The order largely maintained practices based on pre-Vatican II theology, emphasizing the spirit and the glory of suffering. Mother Teresa exerted rigid control, resisting interference from priests or outsiders and limiting sisters’ access to outside information like newspapers or television, believing it a distraction. She also generally did not want her sisters to be more educated than those they served, with the exception of those pursuing medical degrees.
    • Challenges and Criticisms: The Missionaries of Charity faced various challenges and criticisms. Some of the poor resisted them, seeing them as trying to convert them to Catholicism. Families were sometimes ashamed of their daughters’ vocations. Early on, Hindu Brahmins complained about Nirmal Hriday, accusing the nuns of conversion attempts and petitioning the city for their removal. They faced setbacks like leaving Belfast due to feeling unwanted or deaths from a fire in London and a bridge collapse in India. As Mother Teresa gained international fame, criticisms intensified [prev turn]. Concerns were raised about the standard of care in their facilities, including a lack of simple testing procedures and insufficient pain relief at Nirmal Hriday, which was contrasted with Mother Teresa having access to modern medical care for herself. Some critics argued their approach was outmoded, focusing on individual charity rather than addressing the root causes of poverty or advocating for social change. Mother Teresa’s strong stance against abortion and contraception also drew criticism. There were controversies regarding financial transparency, as the order did not keep detailed records of donations and spending. Accusations were made regarding the acceptance of funds from questionable donors like Jean-Claude Duvalier. Allegations surfaced about potential misuse of funds by Co-Workers, leading Mother Teresa to initially consider disbanding the group. Mother Teresa’s involvement in a campaign for Christian Dalits in India also drew public criticism, even from Indian Church officials, who argued it created schism. Critics like Christopher Hitchens questioned her motives, accusing her work of being propaganda linked to fighting abortion and running institutions more as a “cult based on death and suffering” than for the “honest relief of suffering”.
    • Legacy: At the time of Mother Teresa’s death, the Missionaries of Charity included over 4,000 sisters, 400 brothers, and thousands of volunteers (Co-Workers, Lay Missionaries of Charity, and Missionary of Charity Fathers). Thousands of volunteers continue to come to Calcutta annually. The order trademarked Mother Teresa’s name, the order’s name, and its logo in 2003 to prevent commercial exploitation. Their direction is carried out as Mother Teresa originally envisioned. The core of their legacy is their sacred treatment of all people, finding the presence of Jesus in everyone, especially the poorest of the poor, and performing each task for the poor as if doing it for Christ himself. Mother Teresa’s spirit is said to live on through her volunteers.

    Missionaries of Charity: Work Among the Poorest

    Based on the sources provided, the Missionaries of Charity were founded by Mother Teresa with a specific mission focused entirely on working with the poorest of the poor.

    Here’s a discussion of their work with the poor:

    • Core Motivation and Philosophy: The underlying motivation for the Missionaries of Charity’s work was deeply religious. Mother Teresa felt a call from God to serve the poor while living among them [prev turn, 10]. Their central tenet was to “quench the infinite thirst of Jesus Christ on the Cross for love of souls” [prev turn, 12]. They took a unique fourth vow “to give whole-hearted and free service to the poorest of the poor” [prev turn, 12, 38, 40]. Mother Teresa emphasized that they should not serve the poor like they were Jesus, but because they are Jesus. Their labor was aimed at the “salvation and sanctification of the poorest of the poor” [prev turn, 40], seeing the work as a means to find God and bear witness to his presence. They treated all people with sacredness, finding the presence of Jesus in everyone, especially the poorest, and performed tasks for the poor as if doing them for Christ himself. Mother Teresa explicitly stated, “We are first of all religious; we are not social workers, not teachers, not nurses or doctors, we are religious sisters. We serve Jesus in the poor”.
    • Location and Scope of Work: The Missionaries of Charity began their work in the slums of Calcutta, specifically the Motijihl area. Their activities expanded within Calcutta to areas like Kalighat. Initially limited to the Calcutta diocese, they later expanded throughout India, opening houses in Delhi, Jhansi, Bombay, and Ranchi. After gaining permission to work outside India, they expanded globally, establishing homes and missions in Venezuela, Rome, Sri Lanka, Tanzania, Australia, Hong Kong, Japan, Taiwan, Korea, Guatemala, the Philippines, El Salvador, the Dominican Republic, Haiti, Brazil, London, New York City, Washington, D.C., and Moscow [85, 88, 97, 108, 121, prev turn]. They worked in various locations where the poor were found, including streets, alleyways, railway platforms, city streets, gutters, garbage heaps, and hospitals [27, 56, 65, 71, 87, prev turn].
    • Who They Served: Their focus was always the “poorest of the poor”, particularly those who were unwanted or had no family. They cared for the sick and dying, children, lepers [prev turn, 50, 75], and those suffering from diseases like cholera, smallpox, tuberculosis, and AIDS. They worked with street children, orphaned and wayward boys, unwed mothers, the homeless, crippled and mentally disabled, alcoholics, drug addicts, criminals, and the elderly and lonely.
    • Key Activities and Services:Education: Starting with teaching children in the slums using a stick in the mud [prev turn, 6, 25, 27, 50]. They also taught children catechism. Vocational training was provided for older children, such as typing, carpentry, needlework, radio repair, and farming.
    • Feeding Programs: Initiated by collecting mushti bhikka (a handful of rice) [prev turn, 36]. They ran daily meal programs feeding thousands [prev turn], providing food and sometimes clothing and soap.
    • Medical Care and Shelters: They provided basic medical assistance, learning simple procedures like giving injections and administering medicines. They established and ran:
    • Homes for the dying (Nirmal Hriday) [prev turn, 30, 50, 65].
    • Homes for children (Shishu Bhavan) [prev turn, 50, 71].
    • Homes and clinics for lepers (Shantinagar, mobile clinics) [prev turn, 50, 76, 87].
    • Dispensaries and rehabilitation centers.
    • Shelters for the homeless, crippled, and mentally disabled.
    • Homes for unwed mothers.
    • Hospices for the sick, dying, and AIDS patients [prev turn, 50, 108].
    • Mobile clinics treating millions [prev turn].
    • Personal Care and Support: They focused on providing comfort, solace, and dignity to the dying. They also visited families, attended community events, gave baths to dirty children, and taught hygiene. In the West, they engaged in family visits and prison ministry.
    • Approach to Work and Poverty: A defining characteristic was their commitment to “rigorous poverty” [prev turn, 44]. They believed their food and dress should be like the poor to understand and help them, seeing themselves as “poor by choice” while the poor were “poor by birth”. They often went without necessities like cooking fuel, adequate shawls, or even simple comforts like tea. They resisted owning material goods or expensive equipment, even medical, that wasn’t widely available to the poor, believing this was a safeguard against becoming like other orders that ended up servicing the rich. Mother Teresa herself was willing to perform the most menial tasks, such as sweeping floors or cleaning toilets. The daily routine was rigorous, starting early with prayers and mass, followed by being out working by 7:45 AM. They largely maintained practices based on pre-Vatican II theology, emphasizing the glory of suffering. Their approach focused on individual charity and helping whom they could, rather than advocating for social change or addressing the root causes of poverty.
    • Challenges and Criticisms: Despite their dedication, the Missionaries of Charity faced challenges. Some poor individuals resisted their help, sometimes fearing conversion attempts. Early on, Hindu Brahmins complained about perceived conversion efforts at Nirmal Hriday and petitioned for their removal. Families of young women joining the order were sometimes ashamed. As they gained fame, criticisms intensified regarding the standard of care in their facilities, including a lack of basic testing and insufficient pain relief [prev turn, 119, 124, 126]. Their approach was sometimes seen as outmoded, focused on charity rather than systemic change. Critics also pointed to Mother Teresa’s strong anti-abortion and anti-contraception stance as being at odds with addressing issues like overpopulation.

    Overall, the work of the Missionaries of Charity, as described in the sources, was characterized by a profound religious motivation to serve Jesus in the poorest, a commitment to extreme poverty, and a wide range of direct care activities for the most vulnerable, often carried out in difficult conditions.

    Life and Suffering in Calcutta

    Based on the provided sources and our conversation history, life in Calcutta was characterized by stark contrasts, profound suffering among the poor, and a complex social and political landscape.

    Here’s a discussion of life in Calcutta as depicted in the sources:

    • A City of Contrasts and Overcrowding: In the 1920s, Calcutta was the political capital of British India, a dynamic and cosmopolitan city. However, it was also described as overcrowded and spilling into the streets and alleys. It held cultural richness but was also a “cesspool of human misery and degradation”. The contrast with a place like Darjeeling, a fashionable hill resort with clear mountain air and refined culture, was startling. Even by the time Mother Teresa began her focused work with the poor, Calcutta had the third highest per-capita income in India, yet it was a “vast sea of suffering and despair”.
    • Widespread Poverty and Dire Living Conditions: Poverty was a pervasive issue in Calcutta, readily apparent to those who lived and worked there. The city teemed with humanity, and thousands of people were plunged into unrelenting poverty, especially after independence and partition led to overcrowding with job-seeking Hindus.
    • Street Life: The streets were a central feature of life, crowded with beggars and lepers. People were born and died hourly in the streets. Thousands were “pavement dwellers”. The sick and starving, weakened by disease and hunger, often simply dropped wherever they were to die.
    • Slums: Life in the slums, such as Motijihl and Tiljala, was particularly harsh. Motijihl, despite its name “Pearl Lake,” had no lake, but a large brackish sump for water, raw sewage flowing into open drains, and garbage piled on the streets. Residents lived in small hovels with dirt floors. Basic services like drainage, sewage, drinking water, and electricity were often absent. The shabby environment of the area even affected the Loreto school. By the later period, there were 3,000 official slums housing more than two million people.
    • Sanitation and Hygiene: Sanitation was a major problem; 44 percent of the city did not have sewers. Overflowing sewage contaminated available food and water.
    • Health Crises and Lack of Care: Calcutta faced significant health challenges. Diseases such as cholera, smallpox, tuberculosis, and AIDS were prevalent [prev turn]. Tuberculosis was a malady that claimed many nuns. During the Great Famine, thousands died in the streets daily. Malnutrition and overcrowded living conditions contributed to illness. Hospitals were overcrowded and sometimes turned people away. Leprosy was a growing problem, with thousands left with nowhere to go after a hospital closure. The social stigma attached to leprosy meant that even recovered individuals were shunned.
    • Social Vulnerabilities: The city’s poor faced numerous social challenges. Unwanted infants were regularly abandoned and left to die in clinics, on the streets, or in garbage bins. Orphaned, sick, and disabled children were cast into the streets to fend for themselves, often resorting to begging or petty crime. Young girls and infants were particularly at risk due to a cultural bias valuing boys. Unwed mothers were sometimes cast out of their homes. The city also had populations of alcoholics, drug addicts, criminals, and the elderly and lonely needing care [prev turn].
    • Historical and Political Context: Mother Teresa arrived in India at a time of growing unrest for self-government. The city experienced bloody riots between Hindus and Muslims in August 1946, leaving shops burned and sewers filled with bodies. Calcutta was also impacted by the Great Famine, which brought thousands fleeing rural areas to the city, adding to overcrowding and chaos, and claiming millions of lives in the wider region. The city faced challenges due to the partition following India’s independence. Calcutta officials were sometimes embarrassed by the extent of problems like the number of unwanted children.
    • Limited Formal Support: Despite the scale of the problems, the City of Calcutta and relief organizations struggled to provide sufficient help. The city’s governing body, the Calcutta Corporation, was described as powerless to help the growing numbers of poor.

    In summary, life in Calcutta, particularly for the “poorest of the poor,” was a harsh reality of severe overcrowding, lack of sanitation and basic services, rampant disease, and social abandonment, set against a backdrop of political change and social conflict, which Mother Teresa and the Missionaries of Charity sought to address through direct intervention and care.

    Mother Teresa and the Catholic Church

    Based on the sources and our conversation history, the Catholic Church played a foundational and central role in the life of Mother Teresa and the establishment and operation of the Missionaries of Charity.

    Here’s a discussion of the Catholic Church as depicted in the sources:

    • Early Life and Religious Formation: Mother Teresa’s upbringing was deeply rooted in the Roman Catholic community in Skopje, which, although small (less than 10 percent of the population in Albania), was close-knit. Her mother, Drana, was a devout Catholic who went to Mass almost every day and ensured her children practiced their religion and incorporated it into their everyday lives. Young Gonxha (Mother Teresa) was heavily influenced by the Sacred Heart church in Skopje, which served not only for religious teaching but also as a center of Albanian culture and identity. She showed an early tendency for religious devotion, participating in church activities, joining the choir, helping organize parish festivals, and teaching catechism to younger children. Father Franjo Jambrekovic, a Jesuit priest at Sacred Heart, significantly influenced her by sharing news of Jesuit missionary efforts in Bengal, India, and describing the horrible conditions of the poor there. He also established Catholic youth groups and the Sodality of Children of Mary, which Gonxha joined and became active in, offering prayers for Catholic missions. Father Jambrekovic provided guidance when she was discerning her life’s calling.
    • Joining a Religious Order (Loreto Sisters): Gonxha chose to join the Institute of the Blessed Virgin Mary (IBVM), known as the Loreto Sisters. This order was founded by Mary Ward with a vision of women living and acting in the world, carrying Christ’s love to the poor, downtrodden, and helpless, inspired by the Gospels and modeled on the Society of Jesus (Jesuits). The Loreto Sisters were invited to India by Irish church officials to provide Catholic education, initially for the daughters of Irish Catholic military families but also providing free education for children of the poor and operating an orphanage and widow’s asylum. Gonxha entered the Loreto Novitiate in Darjeeling, a period of study and prayer before final vows. Life in the convent was disciplined and rigorous, including teaching at the affiliated school, studying English and Bengali, attending confession weekly, and listening to readings about the lives of saints or the rules of Loreto. She took her first vows as Sister Teresa in 1931 and her final vows in 1937, committing herself to the Loreto Sisters and a lifetime of poverty, chastity, and obedience in service to the Lord [prev turn].
    • The “Call” and Seeking Church Approval: Mother Teresa felt a distinct call from God in 1946 to serve the poor while living among them [prev turn, 26, 27, 48]. This required leaving the Loreto convent, a significant step that needed approval from the Church hierarchy. She sought advice from Father Celeste Van Exem, a Belgian Jesuit priest who became her spiritual advisor. Archbishop Ferdinand Périer of Calcutta was initially against the idea of a lone nun living among the poor on the streets. He ordered her transferred and cautioned silence. However, he also discreetly made inquiries about the feasibility and potential public and political reaction to such an idea, consulting with other priests like Father Julien Henry and the father general of the Jesuit Order. A major difficulty was church law, which disfavored the unnecessary growth of religious vocations for women, requiring a demonstration that existing orders weren’t doing the proposed work. The Daughters of St. Anne in Calcutta already ministered among the poor, dressed in Indian style, and ate simple food, posing a challenge to Mother Teresa’s proposal. Mother Teresa insisted her vision was different, focusing on the “poorest of the poor,” being more mobile, and starting from scratch.
    • Gaining Permission: Exclaustration and Diocesan Congregation: Mother Teresa’s request to leave the convent required an indult of exclaustration or secularization. The mother general in Rathfarnham granted permission to write to Rome for exclaustration, allowing her to remain a Loreto Sister while working outside the cloister. The Vatican granted this request in July 1948, with a condition for review after a year. After her year of working in the slums with growing support and a group of young women joining her, Archbishop Périer decided she would remain outside the cloister and supported recognizing her group as a congregation for the diocese of Calcutta. This required Rome’s final approval.
    • Founding the Missionaries of Charity: Mother Teresa drafted a constitution for the new order, outlining traditional vows (poverty, chastity, obedience) and adding a fourth vow: “to give whole-hearted and free service to the poorest of the poor”. This constitution and the fourth vow were accepted by the Vatican. On October 7, 1950, the Missionaries of Charity was recognized as a new congregation in the fold of the church, headed by Mother Teresa. The goal of the order, as stated in the constitution, was deeply religious: “to quench the infinite thirst of Jesus Christ on the Cross for love of souls” and to “labor at the salvation and sanctification of the poorest of the poor,” revealing God’s salvation.
    • Expansion and Pontifical Right: Initially confined to Calcutta, the Missionaries of Charity sought to expand throughout India. Archbishop Périer relented, and new houses were established in other Indian cities. News of their work reached high levels of the Indian government and the Roman Catholic Church hierarchy in India, such as Cardinal Valerian Gracias in Bombay. Mother Teresa later sought permission from Pope John XXIII for the Missionaries of Charity to become a Society of Pontifical Right, which would allow them to work in other countries. Pope Paul VI granted this in February 1965. The first home outside India was opened in Venezuela in 1965, following an invitation relayed by Archbishop James Robert Knox. Pope Paul VI also invited her to work in Rome in 1968. Mother Teresa also established the Missionary Brothers of Charity with permission from the archbishop of Calcutta in 1963, though under Church law, she could not head a male congregation.
    • Doctrine, Theology, and Vows: The Missionaries of Charity were explicitly defined as “religious sisters” serving Jesus in the poor, not primarily social workers or medical professionals [prev turn, 131]. Their theology was rooted in pre-Vatican II Church teachings, emphasizing the spirit over the flesh and the “glory of suffering”. They believed their rigorous poverty made them understand and help the poor better, seeing themselves as “poor by choice”. They aimed to treat each person as they would treat Jesus Christ, performing tasks for the poor as if doing them for Christ. Their vow of poverty included not owning buildings or property, though this was later modified.
    • Social Stances and Church Teaching: Mother Teresa adhered strictly to Church teachings on matters like birth control and abortion, which generated controversy. She promoted “Holy Family Planning” based on the rhythm method, the only method sanctioned by the Catholic Church. Her strong stance against abortion was a significant part of her public message, including during her Nobel Prize speech. In the context of the caste system in India, Mother Teresa became involved in a campaign for scheduled caste recognition for Christian Dalits, asserting that Christianity did not recognize caste. However, her actions and statements on this issue caused friction with other Christians and non-Christians.
    • Internal Dynamics and Criticism: Mother Teresa’s traditional approach and rigorous discipline were sometimes seen as outmoded, particularly in contrast to changes in other religious orders following Vatican II reforms, which aimed to make religious life more modern and accessible. Some within the Church criticized her resistance to higher education for her nuns, believing it was necessary for effective service. There were also criticisms regarding the standard of care in her facilities, which some felt did not align with modern medical standards, contrasting with the work of other Catholic sisters in the hospice movement. Despite criticisms, the Roman Catholic Church rallied to Mother Teresa’s defense, especially following the controversial “Hell’s Angel” documentary.
    • Path to Sainthood: Mother Teresa’s connection to the Catholic Church culminated in her beatification by Pope John Paul II in 2003, a step towards official sainthood. The process involved rigorous investigation, including testimony from both supporters and critics (like Christopher Hitchens), and the church required a posthumous miracle for beatification. The Vatican explicitly supported her approach of helping individuals and bearing witness to the Divine presence, rather than fighting for social change.

    In essence, the Catholic Church provided the spiritual framework, hierarchical support (despite initial hesitations), and guiding doctrines that enabled Mother Teresa’s mission to the poorest of the poor to take root and expand globally. Her work, while sometimes challenging established norms or attracting criticism, remained deeply intertwined with her identity as a Catholic nun and the mission of the Church.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Napoleon: A Biography

    Napoleon: A Biography

    This collection of text excerpts offers a detailed biography of Napoleon Bonaparte, charting his life from his early military education and family dynamics in Corsica and France through his rapid rise to power. The narrative covers his military campaigns, highlighting significant battles and strategic approaches, alongside his political maneuvers and the complexities of his relationships, particularly with his family and with Josephine. The excerpts also explore his attempts to consolidate power through political reforms and expansionist policies across Europe, examining both his successes and failures, culminating in his eventual defeats and exile. Finally, the text touches upon the challenges he faced, both personal and political, and his life and death during his captivity on St. Helena.

    Napoleon Bonaparte’s Early Life and Career

    Based on the information in the sources, here is a discussion of Napoleon Bonaparte’s early life:

    Birth and Family Origins Napoleon Bonaparte was born at Ajaccio, Corsica, on 15 August 1769. This is presented as a necessary factual statement due to the tendency for every aspect of his life to be turned into legend. The Buonaparte family tradition held that they were descended from Francesco Buonaparte, who emigrated to Corsica from the seaport of Sarzana in the early sixteenth century. The family surname, Buonaparte, was said to indicate Imperialist affiliations dating back to Ugo Buonaparte, a tenth-century follower of Emperor Otto II. However, the earliest verifiable record shows a Buonaparte family lawyer as a member of the Council of Ancients in Ajaccio in 1616, with several more serving on this council in the eighteenth century. Like the Ramolinos, the Buonapartes were part of the Corsican nobility. Carlo Buonaparte, Napoleon’s father, pursued a career in law, which along with the Church and the Army, were among the few acceptable professions for nobles, although lower legal positions like Carlo’s (procureur) were still essentially outside the aristocratic pale. Carlo’s aspiration to noble status was a driving force. He succeeded in obtaining patents declaring the Buonaparte family noble in February 1771, ratified on 13 September 1771. While Corsican nobility didn’t confer many advantages like feudal privileges or tax exemptions, this declaration was significant in the long term for the family. Carlo’s activities in the 1770s were characterized by being litigious and by truckling to the French Commissioners who ruled the island. Napoleon’s parents had eight children who survived, although an earlier son, also named Napoleon, was born and died in 1765, followed by a girl who also died. This has led to psychological interpretations that Napoleon may have unconsciously felt like a “replacement child” for the first Napoleon, compounding potential hostility towards his older brother Joseph. Napoleon’s mother, Letizia, is described as having a “Spartan self-sufficiency” and “fanatical devotion to work,” qualities which were later valuable to Napoleon. His father, Carlo, died of cancer on 24 February 1785.

    Corsican Environment and Influence Despite Napoleon’s later fury at being called “the Corsican” and his denials of his birthplace’s significance, the sources emphasize the deep influence of his early environment. His later character’s restlessness is partly attributed to the island’s confused and chaotic politics, which he absorbed from infancy. Dorothy Carrington is quoted as saying that childhood conversations, overheard by Napoleon, involved topics of “defeat, resistance, betrayal, heroism, torture, execution and conspiracy,” leaving a permanent imprint on his mind. A Corsican independence movement against Genoese overlords gained momentum after 1729. Pasquale Paoli’s movement took a more serious turn in 1755. Corsica became a pawn on the international diplomatic chessboard, with French troops entering cities by treaty in 1756 and Genoa formally ceding the island to France in 1768, the year before Napoleon’s birth. Napoleon himself lamented being born as the independent Corsica perished, describing the arrival of thirty thousand Frenchmen as drowning “the throne of liberty in waves of blood” and his cradle being “surrounded by the cries of the dying, the groans of the oppressed and tears of despair”. Carlo Buonaparte, however, immediately aligned himself with the new French overlords after Paoli’s retreat in 1769. The Corsican legacy is linked to Napoleon’s ruthless pragmatism, his impatience with abstract theory, and his conviction that problems are ultimately solved by force. The island’s “primitive” nature in the eighteenth century, with its sights, smells, and sounds described as primordial, is also noted. The streets of Ajaccio were filled with the stench of slaughtered animals and tanning hides, exacerbated by flies, heat, and a severe water shortage. It is suggested that Napoleon’s later habit of lying in hot baths was a compensation for this childhood water shortage. Another quintessential primitive aspect of Corsica was the vendetta, the tradition of blood vengeance handed down through generations. Travelers like Rousseau and Boswell, however, also described Corsicans as shrewd, voluble, intelligent, and interested in politics. During 1786-1791, Napoleon was still a fanatical Corsican nationalist and a partisan of Paoli, whom he worshipped intensely. His essay for the Academy of Lyons reflected a Rousseauesque conviction that Corsica represented the height of social and moral achievement. However, Paoli later brutally rebuffed Napoleon’s request for help with his history of Corsica, writing that “Youth is not the age for writing history,” which may have caused a slight decrease in his Paoli-mania. The “traumatic denouement of the Corsican saga” in 1792-93 is identified as a key psychological moment in the formation of the mature Napoleon.

    Education Napoleon began his formal education at a young age. He left Corsica at age nine for school in France. His preliminary education was provided at the school at Autun, run by Bishop Marbeuf’s nephew. Marbeuf, who apparently had an affair with Napoleon’s mother, guaranteed payment of fees for Napoleon and his brother Joseph at Autun. Joseph was also going to Autun to learn French before studying for the priesthood. Stories circulated later, likely by enemies, of a systematically destructive and tantrum-prone boy, but some anecdotal evidence from these years is considered genuinely grounded in fact, having been vouched for by Letizia and Joseph. After Autun, Napoleon was assigned to a military school, Brienne. While his academic progress there was fair, his social and personal formation was described as disastrous, turning him into a misanthropic recluse due to brutality, social snobbery, and racial prejudice. Corporal punishment, though officially outlawed, was practiced. One instance involved him being forced to eat dinner kneeling, wearing coarse clothing and a dunce’s cap, which caused hysteria. The military schools at Brienne and Paris, despite their potential aim of promoting social inequality, failed in this regard with Napoleon, as being a poor boy among rich cadets embittered him and fostered cynicism. By the age of sixteen, his experiences there suggested an authoritarian personality in the making. He later insisted on Spartan austerity at military academies when he came to power. He completed his education after the Ecole Royale Militaire in Paris.

    Early Military Career and Political Development (Pre-Consulate) Napoleon left the Ecole Royale Militaire on 28 October 1785 and joined the La Fere regiment at Valence. Before heading south, he visited his patron Bishop Marbeuf, receiving letters of introduction. He underwent ten weeks of basic training, progressing from private to corporal to sergeant, a method he later praised and attributed to his “common touch”. He completed his probation as an officer on 10 January 1786. His early duties were not burdensome, mainly mounting guard and looking after the men. He became a highly skilled artilleryman through a combination of assiduous fieldwork and extensive reading. His health was uncertain during this period, suffering from fevers which he attributed to “miasmata”. He wrote about working hard, saving candles by sleeping little and going to bed early, and eating only one meal a day. In April 1789, he was sent with troops to quell grain riots in Seurre, where he remained for two months and made a positive impression on the Intendant of Burgundy. Upon returning to Auxonne, he wrote his famous letter to Paoli lamenting Corsica’s loss of independence. He received leave to return to Corsica, where he attended the Paolistas’ party conference with Joseph and met the returned Paoli in Bastia. His writings from 1786-1791 show him as a fanatical Corsican nationalist and partisan of Paoli. He wrote an essay for the Academy of Lyons prize, which, though unsuccessful, provides insight into his political views around age twenty-two, revealing ideas derivative of Rousseau and a belief that morality is linked to freedom. His contempt for legal land titles compared to rights based on effort (“sweat,” “blood,” “sinews”) is noted as a feature reminiscent of modern fascism. Following his return to France, Napoleon’s ambitions grew. The siege of Toulon was a significant milestone in his career, leading to his promotion to brigadier-general. He met many figures there who would be important later in his career. Despite this success, the political situation remained uncertain. Sources suggest he was both idealistic and cynically ambitious throughout his early career. His time in Thermidorian Paris exposed him to a hedonistic society focused on sensuality and consumption, which contrasted sharply with the poverty of the slums. He noted the power and influence women seemed to hold in Parisian society. He felt like an insignificant officer with a provincial accent in these circles, struggling to adapt from his “coarseness of… demotic speech”. He married Josephine de Beauharnais (formerly Rose). His command of the Army of Italy saw him implementing the Directory’s strategy of having armies live off the land or by plunder, leading to accusations that he turned the campaign into a quest for booty. He wrestled with the excesses of his “hungry soldiers,” vowing to restore order, yet also wrote sycophantic letters boasting of victories. Exploiting France’s technologically advanced artillery, developed during the Revolution, allowed him to become an “artilleryman nonpareil”. His strategic thinking evolved, arguing to the Directory that islands like Corfu, Zante, and Cephalonia were more important than Italy for French interests. During this period, the Directory struggled for power, with figures like Barras, Talleyrand, Bernadotte, and Hoche in contention. Hoche, a potential rival, died mysteriously. Napoleon also planned for an invasion of England via Ireland, meeting with Wolfe Tone, who was unimpressed with Napoleon’s knowledge of the British Isles. Increasingly interested in the East, Napoleon wrote to the Directors arguing for the occupation of Egypt to destroy England and secure Levant trade as the Ottoman Empire declined. This reflected an “unassimilated obsession” with the Orient, drawing on his reading and desire to emulate figures like Alexander the Great. He expressed impatience with Europe, stating he hadn’t gained enough glory and “must go east”. The Egyptian campaign saw the establishment of institutions like the Egyptian Institute and achievements by scientists and savants in public works, despite initial ridicule from soldiers. This period culminated in the coup of 18 Brumaire (November 1799), where Napoleon, aligning with Sieyes, seized power from the Directory, despite moments of confusion and bluster during the process. The sources suggest he was, in part, a “creature of circumstances” shaped by the long-standing conflict with Britain, but also one who actively “created the circumstances”. His early career saw a shift in intellectual idols, moving from figures of the Roman Republic like Brutus and Plutarch to those of the Empire like Caesar and Tacitus as he himself moved towards imperial power. He believed history followed a cyclical course, seeing parallels between the chaos of the late Roman Republic leading to Augustus’s rule and the French Revolution’s struggles potentially leading to a dictator.

    This period laid the foundation for his personality and career, marked by a blend of Corsican pragmatism, military ambition, evolving political views, and a complex interaction with the revolutionary and European political landscape.

    Napoleon Bonaparte’s Military Campaigns

    Based on the sources provided, Napoleon Bonaparte’s military campaigns were a defining aspect of his career, characterized by evolving strategies, notable victories, and significant challenges. His early experiences laid the groundwork for the military principles he would employ on a grander scale.

    Early Campaigns and Rise to Prominence

    Napoleon’s military career began to gain prominence during the French Revolution. He served as a senior gunner in the Army of Italy, which was engaged in a stalemated campaign against Piedmont, supported by the British Navy operating through Genoa. Napoleon devised a stratagem for capturing Oneglia, which fell on 9 April 1794, boosting his reputation. He then wrote a general memorandum on grand strategy, basing his ideas on Guibert de Bourcet. His plan suggested attacking in Piedmont to force Austria to weaken its position on the Rhine, allowing a French strike there. This plan was supported by political commissars like Augustin Robespierre and Saliceti.

    The Italian campaign of 1796-97 against Austria is frequently highlighted for revealing Napoleon’s military genius. Appointed commander-in-chief of the Army of Italy, Napoleon rapidly advanced, taking control of key mountain passes and destroying a superior enemy force piecemeal through speed of movement. He aimed to march against Beaulieu, force a crossing of the Po, and then seize Lombardy, hoping within a month to be in the Tyrol to link with the Army of the Rhine. He sent glowing letters about his victories to the Directory, exaggerating his achievements for propaganda purposes. While soldiers committed excesses, which Napoleon vowed to correct, he also boasted of his victories. The Army of Italy’s achievements were extensive, recorded on an inscribed flag presented by the Directory, listing numerous battles and captured resources and artworks.

    From this campaign evolved military principles Napoleon never altered. These included ensuring open lines of communication, having a clear primary objective (the enemy army, not capitals or towns), always attacking, emphasizing artillery (ideally four guns per thousand men), and recognizing the moral factor as crucial. Above all, he stressed concentration of force, speed, the importance of time, and the cardinal principle of outflanking the enemy’s most exposed flank. Speed allowed for concentration, and a favorite ploy was dispersing to tempt the enemy to counter-disperse, followed by rapid concentration.

    Following the success in Italy, Napoleon briefly considered an invasion of England via Ireland in 1796, meeting with Wolfe Tone [cited in Conversation History]. He also occupied Ionian islands, which he argued were strategically important.

    The Egyptian Expedition

    Increasingly interested in the East, Napoleon argued for the occupation of Egypt to damage England and secure Levant trade as the Ottoman Empire declined [cited in Conversation History, 16]. This reflected an obsession with the Orient and a desire to emulate figures like Alexander the Great [cited in Conversation History]. The Egyptian expedition commenced despite cogent military arguments based on imponderables. If successful, Egypt could be a springboard for reinforcing Indian allies and expelling the British. A Suez canal project was also considered to neutralize British sea power. The invasion was seen as easier and less expensive than a descent on England.

    During the campaign, Napoleon drew up his men in rectangular squares at the Battle of the Pyramids (more properly Gizeh), facing roughly equal numbers but with technological superiority. He exhorted his soldiers by pointing to the Pyramids. His Syrian campaign involved battles like Mount Tabor, but the siege of Acre failed, leading to a French retreat. A controversial massacre occurred at Jaffa. After leaving command to Kleber, the French forces in Egypt eventually surrendered to the British in 1801.

    Campaign of 1800

    After seizing power in the Coup of 18 Brumaire, Napoleon reorganized the Army, preparing for a campaign against Austria. The plan involved a strategic offensive aiming to defeat Austrian armies in the Black Forest/Danube area and Italy. Napoleon’s strategy for the second Italian campaign was complex and, according to military historians, contained at least six major errors, including needing two separate lines of operation and assuming the Austrians would be purely reactive. The Austrians launched an unexpected offensive against Massena at Genoa and made Italy their main theatre. Despite these complexities, Napoleon crossed the St Bernard Pass and achieved victory at Marengo. Concurrently, Moreau campaigned successfully on the Rhine, winning the victory at Hohenlinden.

    Campaign of 1805 (Third Coalition)

    The grand strategy for the 1805 campaign against Austria was conceived by Lazare Carnot, drawing on Napoleon’s thinking. France fielded a large army, with offensives planned along the Main valley, into Swabia/Danube valley, and in the Po valley under Napoleon. The Italian campaign was initially designed as a sideshow but included provision for an advance into the Tyrol if successful.

    Napoleon’s plan was to move 210,000 troops to the Danube quickly to hit the Austrians before the Russians could join them. This involved dividing the army into seven independent corps, each a miniature army capable of living off the land and fighting superior detachments. This corps system was a key feature of his success, enabling surprise and mobility. His strategy involved wheeling south to envelop Mack’s Austrian army, then turning to deal with the Russians. The entire army crossed the Danube, with different corps marching along separate lines to avoid congestion and pressure on supplies, but remaining within one to two days’ march of each other. This lightning advance on the Danube was unprecedented in scale. The campaign culminated in victories such as the Battle of Ulm and the decisive Battle of Austerlitz. At Austerlitz, the Allies fell into Napoleon’s trap by denuding their center for an all-out assault on the French right, which proved stronger than expected. The Grande Armée, while celebrated in propaganda, experienced problems with sickness, horse losses, theft, and indiscipline. The campaign solidified Napoleon’s military system.

    Campaigns of 1806-07

    War with Prussia broke out in 1806. Napoleon’s campaign against Prussia saw decisive victories at Jena and Auerstedt, leading to the occupation of Berlin. He then campaigned against the Russians in 1806-07. This period included indecisive battles like Pultusk and difficult engagements like Eylau, where Napoleon’s ignorance of terrain and failure to scout ahead put him in a false position. Despite challenges, French victories at Heilsberg and Friedland, described as Ney’s finest hour, led to the Treaty of Tilsit with Russia. However, concerns were raised about Napoleon’s disregard for climatic and geographical factors, reminiscent of debacles in Egypt and Santo Domingo.

    The Peninsular War

    Spain, allied with France , became a protracted challenge after being occupied by France in 1808. The Peninsular War saw nationwide spontaneous uprisings and evolved into mixed regular and guerrilla warfare. The Spanish army had an early triumph at Bailen. Napoleon’s initial campaign in 1808-09 aimed to encircle Spanish armies using simultaneous flank attacks, but marshals like Lefebvre and Victor failed to cooperate effectively, allowing enemy forces to escape. Despite Napoleon’s victories and chasing armies out of Spain, Sir John Moore’s diversion pulled Napoleon north of Madrid, preventing a southward sweep that might have ended the war swiftly. Moore’s campaign bought Portugal and southern Spain a year’s respite, contributing to the war becoming a persistent problem.

    The war was characterized by constant threats to the French supply line due to guerrilla warfare, leading to starvation. Marshals like Marmont highlighted the superior logistics of the British army under Wellington compared to the French, who often lived off the land or carried supplies on soldiers’ backs. Wellington, noted as a master of logistics, organized continuous supply lines. In the final phase (1812-13), Wellington successfully coordinated regular forces and guerrillas. In 1812, Wellington struck at Marmont’s Army of Portugal, leveraging intelligence about the disposition of other French armies and their lack of cooperation.

    Campaign of 1809

    Austria invaded Bavaria in 1809, leading to Napoleon’s 1809 campaign. Key battles included Eckmühl and the surrender of Vienna. The Battle of Aspern-Essling was a notable struggle, followed by a successful crossing of the Danube and the Battle of Wagram. Napoleon’s dispositions at Wagram were classically Napoleonic, aiming for the center position between enemy wings to allow troop transfer. However, Bernadotte’s insubordination during the battle led to his removal from command. The campaign ended with the Treaty of Schönbrunn.

    The Russian Campaign of 1812

    The disastrous Russian campaign of 1812 saw a massive mobilization of forces, some 630,000 men, though the Grande Armée numbered around 350,000 in 1805 and had varying corps sizes in 1812. Napoleon planned to engage the Russian army, ideally encircling them, and bringing the war to a swift end. However, Russian commanders Barclay and Bagration eventually united their forces. Despite urgings from his marshals to winter in Smolensk, Napoleon, driven by momentum and news that Barclay would stand, ordered an advance on Moscow. The march was grueling, with soldiers suffering from dust, rain, water shortages, and massive horse losses due to lack of grazing and demanding cavalry tactics. The Battle of Borodino was fought outside Moscow, leading to the occupation of Moscow. The occupation was followed by the devastating retreat from Moscow, plagued by guerrilla warfare and battles like Maloyaroslavets. The sources point to Napoleon’s mistakes, including logistical failures and underestimating geographical factors.

    Later Campaigns (1813-1815)

    Following the Russian disaster, Napoleon faced renewed pressure. The war in Spain continued to drain resources, and King Joseph struggled with marshals who acted like provincial satraps. Wellington was appointed Commander-in-Chief of the British forces, creating a cohesive military force, while Joseph’s appointment changed little.

    In Germany (1813), Napoleon raised a new army of raw recruits. His initial moves were fumbling, but he achieved victories at battles like Lutzen and Bautzen. However, the Allies grew stronger. Napoleon’s strategy involved awaiting the enemy at Dresden while other corps advanced on Berlin and defended Hamburg. The Allies attempted to take Dresden, but Napoleon counterattacked and brought up reinforcements, planning a double envelopment on the flanks while fortifying his center. The campaign also saw battles like Leipzig, a turning point.

    The campaign in France (1814) saw Napoleon’s armies exhausted with no recruits, and French morale low. The Allies’ political will strengthened. This campaign included battles such as Montmirail. Wellington invaded France from the south, capturing Toulouse.

    Finally, in the Belgian campaign of 1815, Napoleon faced the Allies at Waterloo. The battle involved complexities with forces like Grouchy’s corps not being on the field. Ney’s performance was noted as sometimes incompetent.

    Throughout his campaigns, Napoleon demonstrated a blend of strategic vision and tactical execution, often relying on the speed, mobility, and loyalty of his army. However, his later campaigns were increasingly marked by logistical challenges, the growing strength and coordination of his enemies, and sometimes questionable decisions or marshal performance.

    Napoleon’s Complex Family Dynamics

    Based on the sources and our conversation history, the relationships within Napoleon Bonaparte’s family were complex, marked by Corsican origins, personal rivalries, political ambition, and ultimately, a mix of loyalty and significant betrayal.

    Corsican Roots and Early Dynamics: Napoleon’s family, the Buonapartes, like the Ramolinos, were part of the Corsican nobility. The island’s chaotic politics, characterized by defeat, resistance, betrayal, heroism, torture, execution, and conspiracy, left a permanent imprint on Napoleon’s mind, shaping his character and perhaps contributing to his later restlessness. The tradition of vendetta, where blood vengeance was handed down and family honor rigorously defended, was a quintessential aspect of Corsican life. This Corsican spirit, particularly the “family sense” or “primogeniture,” is seen by some as influencing Napoleon’s loyalty to Joseph, even when it was detrimental.

    Relationships with Parents: Napoleon’s early years involved navigating the challenges presented by his parents. His mother, Letizia, is described as having instilled discipline, pride, and good sense in him. Napoleon expressed great debt to her for these qualities. However, their relationship was also complex, with Napoleon later exhibiting deep ambivalence towards her and a potential “mother complex” that some depth psychologists connect to anxiety about her fidelity. Letizia herself was described as having fear and respect for Napoleon. She remained a strong figure, described as “Madame Mere,” who was legendarily stingy, in charge of imperial charities, and attempted to rule her family with a rod of iron. She constantly meddled and was grasping, keeping up an incessant vendetta against Josephine. Napoleon’s future prospects depended on his father, Carlo. Carlo died in February 1785 after a period of illness. Napoleon had an ambivalent relationship with his father, and some psychological interpretations suggest his conscious anger towards father-figures like Paoli may have tapped into an unconscious rage related to Carlo.

    Sibling Rivalries and Napoleon’s Perspective: Early life saw significant rivalry between Napoleon and his elder brother Joseph. Freud suggested Napoleon’s childhood desire to push Joseph aside transformed into love, requiring aggression directed elsewhere. Napoleon later had warm feelings for Joseph and encouraged his sense of importance, which some sources attribute to a “brother-complex” making Napoleon “absurdly weak” concerning him. The relationship with his younger brother Lucien began poorly, with Napoleon acting as a broody and withdrawn custodian who showed no affection. Lucien deeply resented this and always felt repugnance in bowing to Napoleon as Emperor. Lucien was later annoyed by Napoleon’s favoritism towards Joseph. Their relationship deteriorated further after Lucien married without Napoleon’s consent, leading to rage from Napoleon, Lucien storming off, and declaring hatred for Napoleon. Lucien’s defiance, supported by Letizia, meant Napoleon’s efforts to make him leave his wife failed. Napoleon often remarked bitterly that his brothers were useless, lamenting not having capable sons like Genghiz Khan. He saw his family as a source of trouble and was particularly frustrated by their constant meddling.

    Assigning Roles and Family as a Liability: As Napoleon rose to power, he appointed his siblings to positions of authority, making Joseph King of Naples and then Spain, Louis King of Holland, and Jerome King of Westphalia, and giving Elisa princely titles. He also used marshals as de facto viceroys in conquered territories. This authoritarian stance was partly intended to ensure his family consulted him. However, his loyalty to Joseph in Spain was considered a “great error,” as Joseph failed significantly there and struggled to control the marshals. Napoleon later regretted not sacrificing Joseph in Spain. Joseph’s appointment as Lieutenant-General in Paris in 1814 was also seen as a major mistake. Louis’s performance as King of Holland was abysmal, leading to Napoleon’s disgust and Louis’s eventual abdication. Jerome also drew Napoleon’s ire for suggesting Westphalians disagreed with Napoleon’s policies.

    The Family’s Hatred of Josephine: A central theme is the intense animosity towards Napoleon’s first wife, Josephine, from almost the entire Bonaparte clan. Lucien referred to her contemptuously as an “ageing Creole,” and Letizia always hated her, partly because she had wanted Napoleon to marry Desiree Clary. The sisters, including Pauline and especially Elisa and Caroline, despised her. They could not understand Napoleon’s complaisance regarding her love affairs and spendthrift ways, which they saw as spending “their” money. Pauline tried to engage in a family revenge by pursuing Josephine’s lover, Hippolyte Charles. At Napoleon’s coronation, Pauline and Caroline caused a near-affray at the altar with Josephine. This unrelenting hostility was counterproductive, paradoxically nudging Napoleon towards declaring Josephine Empress.

    Marriages and Dynastic Ambition: Napoleon’s marriages were intertwined with personal feelings and political strategy. His engagement to Desiree Clary, Joseph’s sister-in-law, brought a healthy dowry and made sense to the “hardheaded Napoleon”. His treatment of her after his career advanced is described as “despicable”. Desiree later married Bernadotte, a marriage seen as a scheme by the Bonapartist clan to neutralize a rival. Desiree, despite disliking Josephine, still seemed besotted with Napoleon and even spied on Bernadotte for the Bonapartes. His marriage to Josephine, a penniless Creole six years his elder, is attributed to factors ranging from anchoring himself to the ruling elite to potentially acting against his mother’s wishes. While he showed great passion in his early letters, he also harbored suspicion and grew frustrated by her childlessness. Despite the pressures for divorce, Josephine’s appeal to his superstitious nature about her bringing him luck initially delayed the separation. Napoleon’s need for an heir led to his divorce from Josephine and marriage to Marie-Louise of Austria, sister of the Czarina. This marriage, while a political alliance, caused uproar among his family. Napoleon respected Marie-Louise more than Josephine, and Marie-Louise’s letters in 1814 reveal she was genuinely in love with him. However, after his abdication, he seemed unable to respond to her, and Metternich ensured they would likely not reunite. The birth of their son, Napoleon II, was a source of dynastic hope and joy.

    Loyalty and Betrayal: The sources highlight instances of both loyalty and significant betrayal within the family. Eugene de Beauharnais, Napoleon’s stepson, stands out as a figure of loyalty, described as a “true man of honour” who refused the crown of Italy offered by the Allies and retreated according to Napoleon’s orders, stating he would remain faithful as the Emperor’s star faded. Later, Pauline, despite her earlier “featherheaded” nature, rushed to join Napoleon in exile, showing unexpected loyalty. In stark contrast, Murat and Caroline’s decision to sign a treaty with Metternich in 1814, agreeing to wage war on Eugene, is described as “quite unspeakable,” “horrible ingratitude,” and “scarcely to be borne”. The cumulative treachery and uselessness of his siblings were deeply frustrating to Napoleon.

    In summary, Napoleon’s family relationships were a microcosm of the political and personal complexities of his life, rooted in Corsican traditions, fueled by individual ambitions and rivalries, and ultimately proving to be both a tool for his dynastic aspirations and a significant source of challenge, disappointment, and betrayal.

    Napoleon’s Political Maneuvers

    Napoleon Bonaparte’s career was significantly shaped by his skillful and often ruthless political maneuvers, which were as crucial to his rise and maintenance of power as his military genius. These tactics evolved from his early experiences in Corsica to his dealings on the international stage as Emperor.

    Early Corsican Politics and Fixer Role

    Napoleon’s political education began in the complex and chaotic environment of Corsica. He and his elder brother Joseph quickly acquired a reputation as small-time ‘fixers’. Napoleon was active in election campaigns for the new Corsican assembly and attended political meetings. Despite being a military officer, he spent considerable time “stirring up trouble” on the island, drawing complaints from his superiors. He sought to extend his leave from the army, using a clearly bogus reason, to continue his involvement in Corsican politics. For the whole of 1790, he was effectively a Corsican politician.

    His political views at this juncture were marked by a “fanatical Corsican nationalist” sentiment and a fervent support for Paoli. However, as his relationship with Paoli deteriorated, Napoleon became a “very unsubtle propagandist,” publicly denouncing Paoli as a traitor who had “sold” the nation.

    To advance in Corsican politics, Napoleon meticulously analyzed the island’s power structure. In the election for lieutenant-colonelships in the volunteer battalions, he employed bribery, lodging over two hundred voting volunteers and providing them with lavish board. He also added intimidation to his tactics. During the election itself, his men physically removed one of the supervising commissioners from the house of his opponents, and Pozzo di Borgo, a rival, was physically attacked during the voting process, leading Pozzo to swear eternal vengeance by the code of vendetta. This period also saw Napoleon, influenced by Saliceti, demonstrate “full Machiavellian skill” in manipulating political factions within towns like Ajaccio.

    Propaganda and Shaping Public Opinion

    Napoleon consistently used propaganda as a political weapon. His early work, Le Souper de Beaucaire, an “unashamed work of propaganda,” was designed to justify the Jacobin position and fiercely attacked Paoli. This successful foray into political propaganda led the powerful political commissar Saliceti to draw the Bonaparte family closer. Later, as commander of the Army of Italy, Napoleon masterfully employed his own newspapers, distributed free to soldiers and even smuggled into France, to shape opinion. These papers, Le Courrier de l’Armee d’Italie and La France vue de l’Armee d’Italie, exaggerated his achievements and presented his errors as “deliberate mistakes,” contributing to the birth of the Napoleonic legend. He understood the importance of “propaganda, image and myth-making” in a way his rivals did not.

    Leveraging Connections and Adapting to Political Shifts

    Napoleon was adept at using his connections. His early success was linked to figures like du Teil, his commanding officer, and later, powerful political commissars like Saliceti and Augustin Robespierre, who supported his military plans. However, he was also pragmatic, readily abandoning former allies when circumstances changed. His “ready abandonment” of the Robespierres after Thermidor, described by critics as “the most cynical form of realpolitik,” involved distancing himself from them publicly.

    He skillfully lobbied and maneuvered within the political system in Paris. Faced with a demotion and an undesirable assignment in the Vendee, he stalled by requesting leave and then lobbied influential friends to get him a better position. He found a key ally in Barras, who helped him get reinstated and, following an Austrian counter-offensive, put forward Napoleon’s name for a command in Italy, where Napoleon had consistently argued the key to victory lay. His appointment as Commander-in-Chief of the Army of Italy was, in part, attributed to Barras rewarding one of his favorites, a point highlighted by the Parisian press.

    Political Strategy in Conquered Territories

    In Italy, Napoleon engaged in significant political restructuring. He compelled Genoa to accept a French garrison, occupied pro-Austrian Modena, and attempted to pressure Venice. He worked to advance his project for a northern Italian republic, setting up several interim “republics”. He strategically navigated the complex political landscape, aiming to encourage pro-French elements without provoking conservative factions. He openly articulated a Machiavellian approach, supporting aristocratic parties because they were “the party of the rich landowners and priests, who in the long run will end by winning the support of the mass of the people”. He was careful when dealing with the Catholic Church, attempting to appease anticlericals while also writing warmly to the Pope. He set up republics with French-style constitutions. Despite his efforts, he remained cynical about the Italian people’s commitment to liberty and equality.

    Navigating the Directory and the Coup of 18 Brumaire

    Napoleon closely followed internal French politics. He identified three main power groupings in Paris: the determined republicans, the outright royalists, and the ‘don’t knows’. He particularly despised the fence-sitters. Meanwhile, the Directors themselves had grievances against Napoleon, including his actions in Venice and Genoa without their authority, his looting, and his “unconstitutional” peace terms.

    To counter opposition from the Right and navigate the power struggle within the Directory, Napoleon employed several political weapons. He fostered an alliance with Barras, facilitated by figures like Talleyrand. However, Napoleon was strategically hesitant to act too quickly, waiting for the “fruit” to be ripe for his own ascendancy. He openly expressed his contempt for the Directors, viewing them as ineffectual.

    The Coup of 18 Brumaire was a complex political maneuver involving multiple plotters. Napoleon played off rivals and factions, appearing to be above party considerations. He collaborated with Sieyes, a key figure wanting to overthrow the existing constitution. Despite initial hesitations and differing goals with Sieyes, Napoleon secured key figures like Fouche’s support to ensure police non-interference. He also sought to neutralize military rivals like Bernadotte, though only secured his neutrality through Joseph’s intervention.

    During the coup itself, when faced with resistance and accusations of being a “Caesar, Cromwell, tyrant” in the Council of Ancients, Napoleon’s initial address was reportedly floundering. It was his brother, Lucien Bonaparte, who, as president of the Five Hundred, dramatically intervened to rally the Guardsmen, falsely claiming that assassins were present and urging the soldiers to clear the chamber. This transformed the planned “transfer of parliamentary power by political legerdemain” into one “at the point of a bayonet”. Napoleon succeeded partly because of his “immensely skilful” political maneuvering, his ability to appear reluctant to seize power, and his understanding of propaganda and image.

    Consolidating Power as First Consul and Emperor

    After Brumaire, Napoleon continued his political maneuvering to consolidate power. He outmaneuvered Sieyes, rejecting the position of ‘Grand Elector’ and using his propaganda machine to highlight his “magnanimity”. He then wore down Sieyes and his faction through protracted negotiations over the new constitution. He skillfully navigated between political factions, appearing to lean Right or Left as needed. He purged the Jacobins to reassure the Right while simultaneously leaking correspondence with Louis XVIII to the Jacobins to demonstrate a lack of royalist sympathy.

    He used various political tools to bypass legislative opposition, such as senatus consultum, arrets, and plebiscites. He neutralized political opponents by keeping them under surveillance, exiling them, or removing their relatives from public office. He strategically appointed second-raters or younger men bound by loyalty to ministries to diminish their power and prevent them from developing independent power bases.

    One of his most significant political maneuvers was the Concordat with the Catholic Church, which aimed to co-opt their traditional supporters and stabilize the religious landscape after the Revolution. He was declared President of the Cisalpine Republic and Protector of the Helvetic Republic. The creation of the Legion of Honour was a “consummate act of mystification” designed to camouflage his imperial demeanor and co-opt the military elite.

    International Diplomacy and Manipulation

    On the international stage, Napoleon engaged in complex diplomatic maneuvers. He used Talleyrand to put out peace feelers and whip up French public opinion against adversaries like Austria and Britain. He skillfully played the British game during negotiations in 1803, his anger over press portrayals noted as a factor. He leveraged international rivalries, such as seeking an alliance with Czar Paul I of Russia against British interests in India.

    Leading up to the Third Coalition, Talleyrand performed “sterling service” in keeping Prussia neutral. At Austerlitz, Napoleon engaged in elaborate deception, feigning confusion and fear to lure the Allied armies into his trap. He believed in humiliating defeated enemies rather than conciliating them.

    The Treaty of Tilsit with Czar Alexander I was a complex political agreement involving spheres of influence, blockades, and secret protocols regarding territories like Turkey, Finland, Spain, and Portugal. It also included informal agreements for a joint Franco-Russian project against British power in India. However, the “insincerity of the two parties” and conflicting interests led to its eventual breakdown. At Erfurt, Napoleon’s attempt to secure a dynastic marriage was sabotaged by Talleyrand, who was secretly plotting with the Czar.

    Using Family and Marshals in Governance

    Napoleon used his family and marshals as part of his political control over conquered territories. He installed his siblings as kings or rulers in places like Naples, Holland, and Westphalia, and used marshals as “de facto viceroys” in others like Poland and Aragon. These family courts were often supported by loyal French officials.

    Later Political Efforts and Mistakes

    Even in decline, Napoleon attempted political maneuvers. During the campaign in France in 1814, he promised constitutional reforms and the summoning of an electoral college, making seemingly conciliatory appointments like Carnot and recalling Fouche. He even reconciled with Lucien Bonaparte. However, these reforms were seen as superficial attempts to create a “new liberal image,” with his true intentions being to rescind concessions once militarily secure. His decision to return to Paris after Waterloo and work within constitutional norms was deemed a “gross error” and an act of folly. He later regretted not acting decisively against treacherous figures like Talleyrand and Fouche, who consistently plotted against him. The source notes a “continuing mystery” about his weakness in dealing with the treachery of Bernadotte, Talleyrand, and Fouche.

    In summary, Napoleon’s political maneuvers were characterized by adaptability, cunning, effective propaganda, the strategic use of allies and rivals, and an unwavering focus on consolidating and expanding his own power, often at the expense of others.

    Napoleon’s Exiles: Elba and St. Helena

    Napoleon Bonaparte experienced two periods of exile in his life: first on the island of Elba, and finally on the remote island of St. Helena. These exiles marked the end of his direct rule but were still subject to intense political maneuvering, both by Napoleon himself and by the Allied powers.

    Exile on Elba (1814-1815)

    Following his abdication in 1814, Napoleon was exiled to the island of Elba. The choice of Elba came after considering and rejecting many other potential locations, including the United States (deemed too extreme by Fouche), Corsica and Sardinia (considered too large and potentially defensible), and Corfu (too small and distant). Many proposed sites were British possessions, like Gibraltar, St. Helena, and even Botany Bay, but Tory backbenchers objected to Napoleon sullying these places. The idea of keeping him under house arrest at the British fort of St. George in Scotland was also raised but rejected due to concerns about Whig opposition leaders seeking a writ of habeas corpus. Ultimately, Czar Alexander I was the prime mover behind the idea of Elba as the place of exile.

    Napoleon was escorted to Elba by a convoy of fourteen carriages and Polish lancers. Six hundred Guardsmen were planned to follow him. Before leaving Fontainebleau, he delivered an emotional farewell speech to his Old Guard, which became a famous setpiece of Napoleonic iconography.

    While on Elba, Napoleon spent time reflecting on his defeats. He concluded that he was not defeated by a popular uprising or nationalism, but by the sheer weight of numbers from a coalition of four powers (Britain, Prussia, Russia, and Austria). He also realized he had failed to uphold the implicit “social contract” of 1799 by conflicting with the Catholic Church, failing to maintain living standards, and imposing high taxation and conscription.

    Despite the relative proximity of Elba to Europe, there was concern among the Allies about his presence. Fouche famously remarked that Napoleon on Elba was to Europe as Vesuvius was to Naples. There was also fear of an assassin’s dagger or bullet from figures like the comte d’Artois. Adding to Napoleon’s situation, Louis XVIII’s government in France refused to pay the annuity that had been agreed upon as part of his abdication settlement.

    Napoleon consulted his intimates about returning to the mainland. General Drouot advised against it, but his sister Pauline and mother Madame Mere were enthusiastic. Letizia’s alleged advice was, “Go, my son, fulfil your destiny. You were not made to die on this island”. Napoleon later claimed he had no real option but to return, as his veterans would accuse him of cowardice if he stayed while France suffered under Bourbon rule and the annuity was not paid. There is also a more feasible theory that Austria and England colluded to create a situation where Napoleon would return, providing an excuse to send him to a more distant island to convince the Czar that he could not remain in Europe.

    Napoleon’s departure from Elba on a moonless night on August 23, 1799 (this date seems incorrect based on the context, as it relates to his return from Egypt; the return from Elba was in 1815 – Self-correction: Source mentions the return from Egypt on Aug 23, 1799. The return from Elba is discussed later, in the context of the Hundred Days in sources like and focusing on the march to Paris. The sources don’t give the specific date of departure from Elba in the main narrative provided, but the context of chapters 25-27 is 1814-1815). He traveled in three coaches, aiming for Paris, and arrived in Ajaccio on September 30 due to contrary winds. He spent a few nights in his family home, anxious about whether he would arrive in Paris too late.

    Exile on St. Helena (1815-1821)

    After the defeat at Waterloo, Napoleon returned to Paris. He made what was considered a “gross error” by deciding to work within constitutional norms rather than returning to the field or dissolving the chambers. Fouche campaigned against him, spreading panic and claiming Napoleon intended to become a dictator. Despite plotting by figures like Talleyrand and Fouche, Napoleon did not act decisively against them. He later regretted not having hanged Talleyrand and Fouche, believing he would still be on the throne if he had. Fouche, instrumental in pressuring Napoleon to leave Paris, eventually informed him that he must depart Rochefort and would not be allowed back on French soil.

    Faced with limited options (sailing out to likely capture, returning to lead the Army, or surrendering to the British), Napoleon ultimately decided to surrender to the British. His aides negotiated with Captain Maitland of HMS Bellerophon, seeking asylum in England or safe passage to the U.S.A.. Maitland, engaging in “pure machiavellianism,” hinted that asylum in England might be possible while secretly waiting for explicit orders from the Admiralty. When the order came, it was uncompromising: Napoleon was to be taken to St. Helena. Napoleon rejected proposals to fight the blockade or escape in a whaleboat, and also a last-minute plea from his brother Joseph to return and lead the Army. He stated he would not be the cause of another cannon-shot in France.

    The Allies rubberstamped the British action in the Convention of Paris on August 2nd. On August 4th, Maitland put to sea from Plymouth to transfer Napoleon to the HMS Northumberland for the journey to St. Helena.

    Life on St. Helena was harsh. Napoleon’s residence at Longwood was in a decaying state, infested with rats and plagued by dysentery. Sir Hudson Lowe, the governor, and Lord Bathurst, the Secretary of State for War, implemented draconian restrictions. Napoleon’s household was reduced, those remaining had to commit indefinitely, the annual expenditure was limited, correspondence was strictly controlled by the Governor, passes to visit Longwood required his permission, gifts mentioning imperial status were forbidden, unsupervised riding was curtailed, and Napoleon’s presence had to be checked twice daily. These instructions were described as breathing a spirit of “pure, vindictive spite”. The legality of his detention was later questioned in Parliament, and an Act of Indemnity was passed, effectively admitting there was no legal basis for holding him.

    Despite Lowe’s precautions, news and bulletins reached Napoleon’s supporters in England, leading to a public outcry in 1817. Figures like Lord Holland in the House of Lords raised the issue, and articles in The Times insinuated the government was trying to hasten Napoleon’s death. This negative publicity led to Bathurst instructing Lowe to restore Napoleon’s allowance. Smuggled documents, like Napoleon’s Remontrance, were turned into effective propaganda pamphlets in England.

    Napoleon found his captors, the British, to be a “ferocious race,” though he admired their soldiers and Parliament. He perceived a cultural barbarism, citing their practice of men drinking after women left the table and Henry VIII’s actions regarding Anne Boleyn. He continued to feel that France represented civilization against English barbarism. News from Europe was generally depressing, reinforcing a sense of pessimism. He learned of the executions of Ney and Murat and the humiliation of France under Allied occupation.

    Escape plans were discussed, and serious attempts were devised in the United States, but Napoleon consistently refused to sanction them. He explained this decision by stating he would not survive six months in America before being assassinated by the comte d’Artois’s contract killers; he felt he was “better off in St Helena”. He avoided going outside after dark to avoid seeing the sentries Lowe posted around Longwood at night.

    Napoleon’s health deteriorated seriously. A physician, Stokoe, diagnosed hepatitis, but this diagnosis had to be “doctored” due to political pressure, and Stokoe was court-martialed and dismissed for calling Napoleon “the Emperor”. Shortly before his death, Napoleon told Bertrand he hoped the English would not make him a prize exhibit by burying him in Westminster Abbey. He also stated he did not want the consolations of Catholicism, preferring to be “happy not to have religion” and free from “chimerical fears”.

    On April 15th, he signed new codicils to his bequests and his last will and testament. Paragraph Five of the will stated: “My death is premature. I have been assassinated by the English oligarchy and their hired murderer. The English people will not be long in avenging me”. The circumstances of his death are described as “controversial and hotly disputed territory”. While the theory of death by cancer was advanced, sources also mention the theory of poisoning, with Montholon identified as a suspect.

    The source uses a Jungian fable to place Napoleon’s experience in myth, noting his birth on one island (Corsica), exile to a second (Elba), and death on a third (St. Helena), with England representing a potential fourth island, his nemesis. His chaining to the rock of St. Helena is likened to Prometheus, who was also chained to a rock.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Response to 23 Questions – Complete Playlist – Arrival of Imam Mahdi – Javed Ahmed Ghamidi Analysis of Hadith Narrations

    Response to 23 Questions – Complete Playlist – Arrival of Imam Mahdi – Javed Ahmed Ghamidi Analysis of Hadith Narrations

    The text comprises a lengthy discussion surrounding the prophesied figure of the Mahdi, specifically examining various narrations and traditions about the Mahdi’s characteristics, arrival, and reign. The speakers debate the authenticity and reliability of different sources, analyzing their chains of transmission and historical context. A significant portion focuses on the methodology of evaluating and verifying these traditions, employing principles of Hadith criticism. The discussion explores differing scholarly interpretations and approaches to determining the validity of these accounts concerning the Mahdi’s imminent arrival. Ultimately, the speakers aim to clarify the authenticity and significance of various traditions relating to the Mahdi.

    A Deep Dive into Faith, Tradition, and the Figure of Mehdi

    Short-Answer Quiz

    1. What is the significance of “iman” according to the text? Iman is described as belief in Allah, His angels, prophets, books, and ultimately acceptance of God’s will. It is a fundamental principle of Islam and a key aspect of a Muslim’s faith, and is a core topic of discussion in the text.
    2. Explain the concept of “Risalat” as it relates to the Quran and Sunnah. “Risalat,” or prophethood, is interpreted as the explanation and teaching of the Quran by the Prophet, and the Sunnah is seen as a continuation of that teaching in practice. They are both central to Islamic faith and serve as guides to religious life and law.
    3. What is “Sharia,” and how does it relate to the concept of “tafsilat”? Sharia is the Islamic law, and tafsilat refers to the details or aspects of that law. Together, they make up the framework for how a Muslim is expected to live according to the rules of Islam.
    4. Describe the role of Jibreel in the context of the text. Jibreel, the angel Gabriel, is mentioned as the one who brought the Quran to Prophet Muhammad. Jibreel also communicated other teachings of the faith, including the duties of daily life, to the Prophet.
    5. What are “hadiths,” and how are they viewed in relation to the Quran? Hadiths are narratives of the Prophet’s sayings, actions, and approvals. They are viewed as a valuable source of Islamic guidance, however, the text also explores varying opinions about their status in relation to the Quran.
    6. Explain the concept of “tawatur” as described in the source. Tawatur is a concept related to the transmission of hadiths, referring to a narration reported by so many people that it is considered virtually certain to be true. It emphasizes a chain of reliable narrators that make claims trustworthy.
    7. What is meant by “mufassar” and “fammaksi” as mentioned in the text? “Mufassar” refers to something that is clear and detailed, while “fammaksi” seems to describe people who offer different or various interpretations, and can be seen as a source of disagreement regarding the understanding of law and tradition.
    8. How does the source present the figure of Imam Mehndi? The text examines the hadiths associated with Imam Mehndi, noting that while his existence and significance is well known, there is little mention of him in the most canonical collections of hadith. It casts doubt on some narratives and explores multiple interpretations.
    9. Describe the debate surrounding the concept of “tanks” in the context of Islamic tradition. “Tanks” is used as a metaphor for the process of scrutinizing or filtering traditions (especially Hadith), particularly the reliability of narrators and the substance of what has been handed down. The process of tanking is presented as central to understanding Islamic tradition.
    10. What is meant by the term “mujaddid”? Mujaddid refers to a person who is seen as a renewer or reviver of faith in Islam, appearing every century to guide the community. The text considers the role of such people and their relationship to tradition and interpretation.

    Answer Key

    1. Iman is described as belief in Allah, His angels, prophets, books, and ultimately acceptance of God’s will. It is a fundamental principle of Islam and a key aspect of a Muslim’s faith, and is a core topic of discussion in the text.
    2. “Risalat,” or prophethood, is interpreted as the explanation and teaching of the Quran by the Prophet, and the Sunnah is seen as a continuation of that teaching in practice. They are both central to Islamic faith and serve as guides to religious life and law.
    3. Sharia is the Islamic law, and tafsilat refers to the details or aspects of that law. Together, they make up the framework for how a Muslim is expected to live according to the rules of Islam.
    4. Jibreel, the angel Gabriel, is mentioned as the one who brought the Quran to Prophet Muhammad. Jibreel also communicated other teachings of the faith, including the duties of daily life, to the Prophet.
    5. Hadiths are narratives of the Prophet’s sayings, actions, and approvals. They are viewed as a valuable source of Islamic guidance, however, the text also explores varying opinions about their status in relation to the Quran.
    6. Tawatur is a concept related to the transmission of hadiths, referring to a narration reported by so many people that it is considered virtually certain to be true. It emphasizes a chain of reliable narrators that make claims trustworthy.
    7. “Mufassar” refers to something that is clear and detailed, while “fammaksi” seems to describe people who offer different or various interpretations, and can be seen as a source of disagreement regarding the understanding of law and tradition.
    8. The text examines the hadiths associated with Imam Mehndi, noting that while his existence and significance is well known, there is little mention of him in the most canonical collections of hadith. It casts doubt on some narratives and explores multiple interpretations.
    9. “Tanks” is used as a metaphor for the process of scrutinizing or filtering traditions (especially Hadith), particularly the reliability of narrators and the substance of what has been handed down. The process of tanking is presented as central to understanding Islamic tradition.
    10. Mujaddid refers to a person who is seen as a renewer or reviver of faith in Islam, appearing every century to guide the community. The text considers the role of such people and their relationship to tradition and interpretation.

    Essay Questions

    1. Analyze the source’s perspective on the relative authority of the Quran and Hadith in Islamic thought and practice. How does the text navigate the complexities of their relationship?
    2. Explore the arguments presented for and against the figure of Imam Mehndi. What are the key sources and interpretations that the text engages with, and what conclusions does it seem to reach?
    3. Discuss the metaphor of “tanks” as a means of filtering and scrutinizing Islamic tradition. How does this concept function as a means of discerning authenticity and reliability, and what does the text have to say about its effectiveness?
    4. Examine the different approaches to the interpretation of hadith presented in the text. How are the concepts of “tawatur,” “sanad,” and “matn” utilized in the analysis of hadiths? What are the main debates and tensions surrounding these approaches?
    5. How does the source engage with the diversity of Islamic interpretations and practices? What does it reveal about the challenges of achieving consensus and unity within Islam?

    Glossary

    • Iman: Faith or belief, particularly in the core tenets of Islam.
    • Risalat: Prophethood, the act of conveying divine messages and teachings.
    • Sharia: Islamic law, derived from the Quran and Sunnah.
    • Tafsilat: The details or aspects of something, often referring to the particulars of Sharia.
    • Jibreel: The angel Gabriel, who conveyed revelations to Prophet Muhammad.
    • Hadith: A narrative of the Prophet’s sayings, actions, and approvals.
    • Tawatur: A concept related to the transmission of hadiths, referring to a narration reported by so many people that it is considered virtually certain to be true.
    • Mufassar: Something that is clear and detailed.
    • Fammaksi: Those who offer different or various interpretations.
    • Imam Mehndi: A future Islamic leader who will establish justice and peace.
    • Tanks: A metaphor for the process of scrutinizing and filtering traditions, especially hadith.
    • Mujaddid: A renewer or reviver of faith in Islam, appearing every century.
    • Sunnah: The practices and traditions of the Prophet Muhammad.
    • Sanad: The chain of narrators of a hadith.
    • Matn: The content or text of a hadith.
    • Ahl-e-Bayt: The family of Prophet Muhammad.
    • Caliph: A political and religious successor to the Prophet Muhammad, leader of the Islamic community.
    • Istala: Terminology, a technical or specialized language or set of terms.
    • Aqeedah: Creed, beliefs
    • Muhaddisin: Scholars of hadith.
    • Tanks: A metaphor for the process of scrutinizing and filtering traditions.
    • Ijma: Scholarly consensus.
    • Tazia: A Shia mourning ritual.

    A Critical Examination of Islamic Eschatology

    Okay, here is a detailed briefing document analyzing the provided text:

    Briefing Document: Analysis of “Pasted Text”

    Date: October 26, 2023

    Subject: Analysis of a Discourse on Islamic Theology, Tradition, and the Figure of the Mahdi

    Sources: Excerpts from “Pasted Text”

    Introduction:

    This document provides a detailed analysis of a lengthy discourse centered around Islamic theology, tradition, and the figure of the Mahdi. The speaker, whose identity is not explicitly revealed, engages with various concepts including iman (faith), Sharia (Islamic law), Risalat (prophethood), tawatur (continuous narration), hadith (prophetic traditions), and interpretations of the Quran. A significant portion of the discussion revolves around the figure of the Mahdi, a messianic figure in Islamic eschatology. The speaker critically examines hadith related to the Mahdi, raising questions about their authenticity and interpretation, particularly in light of traditional scholarship. The discourse is presented as a dialogue with an interlocutor, and sometimes directly addresses a listening audience.

    Main Themes & Key Ideas:

    1. The Importance of the Quran and Sunnah:
    • The speaker emphasizes the foundational role of the Quran and the Sunnah (prophetic traditions) as sources of Islamic law and belief:
    • If you are explaining the Quran in Risalat then the day are teaching the The day is teaching the Sunnah Day teaching is going on
    • There is a clear emphasis that true faith and practice must be rooted in these primary sources.
    • The speaker acknowledges that there are layers of interpretation and tradition that come between the believers and the Quran. This tension between the sources and interpretations is a central theme.
    1. Critical Examination of Hadith and Tawatur:
    • The discourse is highly critical of traditional hadith methodology, especially regarding tawatur (continuous narration):
    • The fierce debate going on here has no bearing not related to istemalon Din Aslam has become possible through this Qabaat i.e. a tradition of an entire era to something to transfer it further is a crime
    • The speaker questions how many narratives constitute tawatur and how the character and reliability of narrators are assessed. They argue that claims of tawatur are often inflated and that the actual number of narrators may be much lower.
    • The speaker stresses the importance of scrutinizing chains of narrators (isnad) and the content (matn) of hadith:
    • Three things are observed in the Hadith game what is the character of the doer, what is his nature which you can prove in court with proof
    • The concept of tawatur is challenged, with the speaker saying “…when we use tabadtur there and here the talks are going on throughout the day It is not like this, if there is advice of knowledge then knowledge that this divorce is a secret in the world…“.
    • They point out inconsistencies and contradictions in traditions attributed to the Prophet.
    1. The Figure of the Mahdi and Its Traditional Narratives:
    • The speaker dedicates a substantial portion of the discussion to the figure of the Mahdi, a messianic figure believed to appear before the Day of Judgment:
    • They analyze numerous hadith related to the Mahdi, pointing out discrepancies and contradictions:
    • The narration is present in and those seven sentences they are reducing the tank but they are doing all this what has happened means I have put it at your service…“.
    • It is said that in different narrations it picture It happened that this medicine is used You had told from the big tehsil that bat and Who is it called and on what basis
    • They argue that many common beliefs about the Mahdi are based on weak or fabricated hadith.
    • I have claimed that it is mehndi Allama Iqbal about Maji Sodani I told you that life is till Mehndi brought the nation alive with his speech He has in fact created a great hatred in the minds of people a wave of minor revival Brought the country alive with Mehndi’s speech
    • They specifically critique narrations concerning the Mahdi’s lineage, name, and physical characteristics.
    • They argue that many of the details about the Mahdi are not found in the most authoritative collections of Hadith, like Bukhari and Muslim:
    • In this case it is clear that it is disclosed on the basis of which the proceedings were filed there should be promises in it such things of things that have no potential for being worthy So their mehndi will come, this or that This will be a matter, it will depend on you
    • That means mother, Bukhari and Muslim are also included in these Whatever has been stated, I will further I will do affairs to know what is it that which has been attributed to totally different so in these books the way people understand or as if they exist…
    • The speaker implies that the Mahdi narratives may have developed over time and been influenced by political and social circumstances.
    1. The Authority of the Ulema and Traditional Scholarship:
    • The discourse is implicitly critical of traditional Ulema and the way they have transmitted and interpreted hadith.
    • The speaker challenges the idea that consensus among scholars is necessarily correct, especially when dealing with hadith about the Mahdi.
    • They emphasize the importance of individual judgment and critical thinking when engaging with religious texts.
    • We are the humiliating witnesses of this entire Ummah at night maukeen’s zaaavier look this is what I have We have already stated before you that our The common narration here is that when a The matter has spread so widely and It might have happened to people here, so Did we find any effect or anything in the Quran I got this kind of thing, which day has brought it here I got this kind of tradition which I read about you
    1. Emphasis on Action and Living a Righteous Life:
    • The speaker implies a focus on individual piety and adherence to core Islamic principles rather than waiting for the Mahdi’s arrival:
    • Because of this why do I remember my faith in everything you say I have to tell and Arif Statement forms have been given there and further action has been taken to get it done
    • They seem to suggest that the emphasis on the Mahdi can sometimes detract from the practical responsibilities of Muslims.
    • They discuss topics such as fasting, belief in Allah, and other requirements of faith.
    1. Interpretation of Religious Texts:
    • Throughout the discourse, the speaker emphasizes the importance of understanding the context in which religious texts were revealed, and the need to avoid literal interpretations that may not be in line with the core principles of Islam.
    • They emphasize the importance of reason and critical thinking when interpreting the Quran and the Sunnah.
    • They criticize some scholars for following traditions blindly instead of understanding the true meaning of religious texts.

    Important Quotes Illustrating Key Ideas:

    • “That means faith is never a part of remembrance” – This suggests that faith should be more than just passive acceptance of doctrines.
    • “Those which are mentioned in hadiths are … expressed my opinion in it so it will be like that did you value it then how can you get involved in it can be done…” – The speaker highlights that the hadith were written as interpretations, and their understanding of it as such is important.
    • “I am telling you about abhadrasin I am sure that when this thing came in front of them then What attitude did he adopt? This is a matter of the first or second century and after that This is your Imam Bukhari coming in the third or fourth Imam Muslim arranges these two books” – This highlights the importance of historical context in understanding the development of hadith.
    • “And millions turned into crores and today one and a half billion Their number is more than the national This is the most important time for churning praise More Mustang sources means that of the date which Sentences are denied in this way or are they true” – Suggests a critical approach to tradition, questioning whether claims of large numbers are accurate.
    • “But the tank has been done which has been decided People will not be able to tolerate it here People could not accept this What is the reason that other Jains accept him?” – Implies that tradition is subject to scrutiny.
    • The first thing that happened was that I picked up a man from my first bat will What does this mean any doubt will arise about him what was told in his name And the father’s name will be my father’s name His name will be Mohammed [music] A person with my name will be a good man” – Highlights what is seen as dubious information about the Mahdi from specific traditional sources.

    Conclusion:

    The discourse presented in “Pasted Text” offers a critical perspective on traditional Islamic thought, particularly concerning the role of hadith and the figure of the Mahdi. The speaker encourages a return to the foundational sources of Islam (the Quran and Sunnah), emphasizes the importance of critical thinking and questioning established narratives. The conversation challenges many conventional views on hadith methodology, the concept of tawatur, and the interpretation of traditions relating to the Mahdi. The central theme that weaves throughout the document is a call for an active and independent faith, based upon understanding and action, instead of blind acceptance of dogma.

    This text appears to be aimed at an audience familiar with Islamic theology and the Mahdi traditions. It could be considered a challenge to traditional religious authorities and a call for religious reform. It suggests that the meaning of texts and traditions should be subject to continuous interpretation and contextualization, and that an understanding of those interpretations should form the core of their use.

    Authenticity of Hadith and the Mehdi

    FAQ: Key Themes from the Provided Text

    • What is the core of Islamic faith (Iman), and how is it defined in the Quran and Hadith?
    • The core of Islamic faith, or Iman, is defined by belief in Allah, His angels, His prophets, His books, and the Day of Judgment, among other things. This understanding is rooted in both the Quran and the Hadith (sayings and actions of Prophet Muhammad). The speaker emphasizes the importance of direct revelation and teaching by the Prophet himself, as conveyed by the Angel Gabriel (Jibreel), that encompasses not only religious teachings but also the “day,” meaning the entire way of life, including laws (Sharia) and traditions (Sunnah).
    • What is the significance of “Tawaatur,” and how is it used to validate Hadith?
    • Tawaatur refers to the widespread and continuous transmission of information, specifically Hadith, by a large number of people across generations. This concept is essential in determining the reliability of a Hadith. For a tradition to be considered Tawaatur, it needs to be narrated by a multitude of individuals, making it highly improbable that they all colluded on a false account. The text explores the criteria for determining Tawaatur and discusses whether it should be applied to all Hadith or if specific conditions must be met, and mentions the discussions in the field of Hadith regarding the number of transmitters for a Hadith to be considered Tawaatur.
    • What is the role of Muhaddithin (Hadith scholars) in preserving and evaluating Hadith?
    • Muhaddithin are scholars who specialize in the study, preservation, and evaluation of Hadith. They examine various aspects of a Hadith, including the chain of narrators (Sanad) and the text itself (Matn). They assess the character of the narrators, their reliability, and their ability to accurately transmit the information. Muhaddithin also analyze the consistency of a Hadith with the Quran and other established teachings. The text highlights the complex and rigorous process that Muhaddithin undertake to ensure the integrity of the Hadith.
    • What are the different levels of Hadith, and why is this categorization important?
    • Hadith are classified into different levels or ranks based on their reliability, including Sahih (authentic), Hasan (good), and other categories. Sahih Hadith are considered the most authentic, while Hasan Hadith are considered to be of acceptable quality but may have a weaker chain of narrators. There are also Hadith that are considered weak due to various reasons. This categorization is crucial in determining the weight that should be given to a particular Hadith in Islamic jurisprudence and theology. The speaker refers to books that describe this categorization.
    • What is the significance of Imam Bukhari and Imam Muslim, and why are their collections considered so authoritative?
    • Imam Bukhari and Imam Muslim are two of the most renowned Hadith scholars. Their collections, Sahih al-Bukhari and Sahih Muslim, are considered to be among the most authoritative and reliable sources of Hadith in Sunni Islam. These collections underwent a rigorous selection process and only include Hadith that meet strict criteria for authenticity. The speaker notes that neither Imam Bukhari nor Imam Muslim mentioned a Mehdi in their collections.
    • What is the concept of “Mehdi” discussed in the text, and why is there debate around its authenticity?
    • The concept of a “Mehdi” (a divinely guided leader) is discussed in the text, focusing on the traditions (revayeten) concerning his arrival before the Day of Judgment. While some traditions describe a just ruler with the same name as the prophet, others do not include specific names. There is no consensus view on the “Mehdi”, even some do not believe it, nor is it mentioned in some of the more authoritative collections of Hadith. The speaker points out that while many Muslims believe in the coming of Mehdi, the narrations about him vary significantly. The text critiques this widely held belief because it lacks validation through the most reliable sources of hadith.
    • What are the criticisms and interpretations of the traditions related to Mehdi in this discussion?
    • The discussion includes critiques of the traditions about the Mehdi, pointing out that these are not mentioned in the two most authoritative sources of hadith (Sahih Bukhari and Sahih Muslim). Some argue that these traditions are late and have been introduced into Islam over time, and others that the descriptions of the Mehdi are too vague and contradictory. The discussion explores the idea that some traditions may have been influenced by political aspirations, and that the belief in the Mehdi has been used to fuel revolutionary movements. The text also highlights how the concept of a ruler that would be just has been historically associated with many figures not just a Mehdi.
    • What is the correct approach to understanding the Quran and Sunnah?
    • The correct approach requires a deep understanding of the Quran and the Sunnah, with the Quran given primacy. This understanding should also involve rigorous analysis of Hadith through established methodologies. The process includes evaluating the chain of narrators and the text of the Hadith itself. It also involves critical thinking and not accepting popular beliefs or narratives blindly, rather one should seek information from original sources and use logic. The text suggests that it is better to understand the historical context of the Hadith. Also, the speaker indicates that both the Quran and the Sunnah should be used in combination to understand the Islamic faith.

    Core Islamic Concepts and Critical Analysis

    Key topics in the provided text include faith (iman), Islam, Sharia, the Quran, Hadith, the Prophet Muhammad, the concept of a Mahdi, and the importance of critical analysis in religious matters.

    Core Islamic Concepts:

    • Iman (Faith): The sources discuss the components of faith, such as belief in Allah, angels, prophets, and holy books [1]. It also notes that faith is not part of remembrance [2, 3].
    • Islam: Islam is presented as a path of salvation, defined partly by the Sunnah [4]. The sources distinguish between faith and the practice of Islam [4].
    • Sharia: Sharia, or Islamic law, is mentioned as a key element of the faith [1, 5]. The sources also discuss the interpretation and application of Sharia [1].
    • The Quran: The Quran is presented as a foundational text, and any interpretation or belief should be based on the Quran [1, 2, 5]. The Quran is described as a guide for humanity [6].
    • Hadith: The Hadith, or traditions of the Prophet Muhammad, are discussed in detail as a source of guidance, with emphasis on their authenticity and the need for careful evaluation [1, 2, 4, 7]. The text explores the methods used by scholars to verify Hadith, including assessing the character of narrators and the chain of transmission [7, 8].

    The Prophet Muhammad:

    • The Prophet Muhammad is central to the discussion, and his teachings (Sunnah) are considered essential [4, 5].
    • The sources reference the Prophet’s interactions with the angel Jibreel, and how that shapes Islamic teachings [5].
    • The Prophet’s role as a teacher and interpreter of the Quran is highlighted [4, 5].

    The Concept of a Mahdi:

    • The sources discuss the concept of a Mahdi, a figure who is believed to appear before the Day of Judgment to establish justice [2, 9, 10].
    • The text analyzes various traditions about the Mahdi, noting that his name will be like the Prophet’s and his father’s will be like the Prophet’s father’s, and that he will be from the Prophet’s family [11-13].
    • There’s a critical examination of the traditions related to the Mahdi and their absence from some of the most authoritative Hadith collections [14-16]. The text also discusses different interpretations of the Mahdi’s role and characteristics [17-19].
    • The sources express skepticism toward widely accepted narratives, and ask the reader to assess the validity of popular beliefs [20, 21].

    Critical Analysis and Interpretation:

    • The text places significant emphasis on the importance of critical analysis of religious texts and traditions [1, 4]. It discusses methods of evaluating the authenticity of Hadith [7, 8].
    • It is noted that multiple interpretations of texts and concepts are possible [1, 4].
    • The sources also delve into the challenges of preserving and transmitting religious knowledge accurately over time [22-25].
    • The text discusses the significance of understanding the context in which a statement is made, as well as the character of the one making the statement [7, 8, 25, 26].
    • The text advocates for a balanced approach, emphasizing that traditions should be evaluated in the light of the Quran and reason [2, 4, 27-30].

    Other Key Themes:

    • The Role of Scholars: The text highlights the responsibility of religious scholars to engage in careful analysis of religious texts and traditions [2, 27-29]. The sources also explore the historical context of Islamic scholarship, such as the contributions of Imam Bukhari and Imam Muslim [15, 31, 32].
    • The Importance of Context: The text highlights the importance of understanding the context in which a statement is made, as well as the character of the one making the statement [7, 8, 25, 26].
    • The Danger of Misinformation: The sources warn against the dangers of accepting information without proper verification [4, 6, 23].
    • The Significance of Remembrance: The text makes a distinction between faith and remembrance, with faith not being a part of remembrance [2, 3].

    This detailed overview should give you a good understanding of the key topics in the text.

    Pillars of Islamic Faith

    The sources discuss Islamic faith (iman) as a central concept with specific components [1, 2]. These include belief in Allah, His angels, His prophets, and His holy books [2].

    Key aspects of Islamic faith according to the sources:

    • Belief in Allah: This is the most fundamental aspect of faith, with all other beliefs stemming from it [2].
    • Belief in Angels: Faith includes the belief in the existence of angels as messengers of Allah [2].
    • Belief in Prophets: Muslims must believe in all the prophets of Allah, including Muhammad, who is considered the last prophet [1, 2].
    • Belief in Holy Books: The Quran is the primary holy book, but Muslims also believe in other holy books revealed by Allah [2].
    • Faith vs. Remembrance: The text notes that faith is not part of remembrance, which means that faith is not merely an act of remembering something, but a more fundamental belief [1, 3].
    • Faith and Action: The sources emphasize that true faith is not just a matter of intellectual assent but also involves actions and practices that reflect that faith, including following the Sharia, or Islamic law, which is considered an expression of faith [1, 2].
    • Faith as a Foundation: Faith is described as foundational to Islam, and it is what makes a person a Muslim [4].
    • Faith and the Unseen: Faith in Islam also extends to belief in the unseen, such as the Day of Judgment [5] and the concept of destiny, also known as qadar, which is discussed in other sections of the sources.
    • Faith and Interpretation: The sources suggest that the understanding of faith should be in accordance with the Quran and the Sunnah, and that people should critically evaluate their beliefs to ensure they align with these sources [6, 7].

    The sources emphasize the importance of understanding the details of faith and not just accepting it blindly [1]. A critical approach to understanding and interpreting faith is recommended. The text also notes that the Prophet Muhammad himself emphasized the importance of understanding the core tenets of faith, as seen in his answers to questions about what constitutes faith [1]. There is a focus on the need to practice Islam, which is described as an outward expression of one’s faith [1].

    The sources differentiate between faith and Islam, noting that faith (iman) is primarily an internal belief, while Islam is a set of actions and practices that outwardly reflect that belief [4]. The sources mention that faith is never a part of remembrance [3].

    The Quran: Foundation of Islamic Belief and Practice

    The sources discuss the Quran as a foundational text in Islam, emphasizing its importance as a guide for Muslims [1-3]. The sources also highlight that any interpretation or belief should be based on the Quran [4].

    Key points about Quranic verses from the sources:

    • The Quran as a Foundation: The sources repeatedly emphasize that the Quran is the ultimate source of guidance in Islam [1-4]. It is considered a complete and comprehensive text that provides guidance on all aspects of life.
    • Basis of Belief: Any belief or practice should be rooted in the Quran. The text suggests that interpretations of faith, Sharia, and other Islamic concepts must be supported by the Quran [1, 2, 4].
    • Interpretation: The sources imply that interpreting the Quran requires careful consideration and should not be done haphazardly [1, 2]. It is mentioned that scholars and individuals have the right to interpret the Quran, but these interpretations should align with the text and its overall message [2].
    • The Quran and Prophethood: The sources refer to the Quran as a message revealed to the Prophet Muhammad [1, 2]. The Prophet’s role in explaining and conveying the Quran is highlighted, emphasizing that his teachings (Sunnah) are based on the Quranic message [1, 3].
    • Guidance and Salvation: The Quran is described as a means of guidance and a path to salvation, and it is said to be a revelation for people to be warned of the auction and the last days [3, 5]. The text indicates that the Quran provides a clear path for believers to follow, and it helps them to distinguish between right and wrong.
    • Challenge to Accepted Beliefs: The sources question widely accepted beliefs that are not explicitly stated in the Quran [4]. It challenges the reader to critically assess their beliefs and to ensure that they are aligned with Quranic principles.
    • The Quran and Hadith: The sources explain that while the Quran is the primary source of guidance, the Hadith, or traditions of the Prophet, provide further context and explanations of the Quranic verses [1-3]. However, the Hadith should be evaluated for authenticity in relation to the Quran.
    • The Quran and Remembrance: The text makes a distinction between faith and remembrance, with faith not being a part of remembrance. However, it is mentioned that remembering the Quran is an important aspect of practicing Islam, and the text also suggests that reflecting on the Quran’s teachings is a way to strengthen one’s faith.
    • The Quran and the Day: The sources indicate that the Quran contains the content of the day, which suggests that the Quran is not just a text for the past but contains guidance for present and future issues. It is also stated that “the day” is taught while explaining the Quran [1].
    • The Quran and Understanding: It is mentioned that if people do not understand the Quran, they should express their questions to seek clarification. The text suggests that understanding the Quran is an important part of being a Muslim [4].
    • The Quran and “Majeed”: The sources refer to the Quran as “Majeed”, which is a term used to express the Quran’s honorable and glorious status [1, 4, 5]. It is also stated that the way things are described in some verse of the Majeed is important, particularly in the context of discussions around the Mahdi [4].

    In summary, the sources consistently portray the Quran as the central reference point for all aspects of Islamic belief and practice. The text emphasizes the need for a thorough and critical understanding of the Quran and advocates for interpretations that are consistent with its teachings. The text challenges widely held assumptions and urges the reader to verify these assumptions against what is stated in the Quran, especially popular beliefs about the Mahdi.

    Authenticating Hadith: A Critical Analysis

    The sources discuss Hadith traditions as a significant source of guidance in Islam, second only to the Quran. However, they also emphasize the importance of critical evaluation and authentication of Hadith.

    Key aspects of Hadith traditions as described in the sources:

    • Definition: Hadith refers to the traditions, sayings, and actions of the Prophet Muhammad [1, 2]. These are considered an essential source of guidance for Muslims, providing context and explanation for Quranic verses.
    • Importance: Hadith are presented as a means to understand and practice Islam, and the Sunnah (the way of the Prophet) is based on the Hadith [2]. The sources note that the day (or way of life), is taught while explaining the Quran and Hadith.
    • Transmission and Narration: The sources explain that Hadith are transmitted through a chain of narrators, with each narrator passing on what they heard or saw [3, 4]. This process of narration is a focus of critical analysis [5, 6].
    • Authenticity: A major focus of the sources is on the authenticity of Hadith. The text explores methods used by scholars to determine which Hadith are reliable [6, 7]. This includes looking at the character of the narrators, and the chain of narrators [5, 7].
    • Methods of Verification: Several methods are mentioned for verifying Hadith:
    • Character of Narrators: Scholars evaluate the trustworthiness and reliability of each narrator in the chain [6-8]. This includes assessing their honesty, memory, and piety.
    • Chain of Narration (Sanad): The chain of narrators is scrutinized to ensure continuity and accuracy [3, 5]. Any breaks or inconsistencies can cast doubt on the authenticity of the Hadith.
    • Comparison with Quran: The text stresses that Hadith should be in accordance with the Quran [9, 10]. Any Hadith that contradicts the Quran is rejected.
    • Textual Analysis: The content of the Hadith is analyzed to determine if it aligns with Islamic principles and teachings [7].
    • Tawatur: The concept of tawatur, which refers to a tradition that has been transmitted by so many people that it is considered definitively true, is discussed in the context of assessing Hadith [5, 11-13]. If a Hadith is mutawatir (transmitted through tawatur) it is considered very reliable.
    • Classification of Hadith: The sources mention that Hadith are classified into different categories based on their level of authenticity [14, 15]. This includes terms like sahih (sound), hasan (good), and da’if (weak) [15, 16]. The sources indicate that the sahih Hadith are the most reliable, and that the books of Imam Bukhari and Imam Muslim contain the most reliable traditions [7, 17].
    • Muhaddithin (Hadith Scholars): The role of muhaddithin, or Hadith scholars, is emphasized. These scholars dedicated their lives to collecting, verifying, and classifying Hadith [6, 7, 18, 19]. The text notes that many scholars have worked to verify and organize Hadith, including Sheikh Albany, Shoaib, and others [20, 21].
    • The Importance of Context: The sources emphasize the importance of understanding the context in which a Hadith was narrated. This includes the circumstances surrounding the Prophet’s statement and the historical context of the Hadith [7, 8].
    • Potential for Misinterpretation: The text suggests that Hadith can be misinterpreted or misused if not understood correctly. The need for proper understanding and context is emphasized to avoid misleading interpretations [4, 7].
    • Hadith and the Day: The sources indicate that the Hadith provides information about “the day” or a way of life, and can provide a basis for how to act in particular situations [2, 22].
    • Hadith and the Mahdi: The sources discuss Hadith related to the Mahdi, and emphasize that there is little reliable material about the Mahdi in the most authoritative collections of Hadith [14, 17].

    In summary, the sources present a nuanced view of Hadith traditions, highlighting their importance while also stressing the need for rigorous critical analysis. The text emphasizes the methods used by scholars to authenticate Hadith, the importance of context, and the potential for misinterpretation. The sources suggest that Muslims should approach Hadith with both respect and a critical eye, always ensuring that they align with the Quran and reason. The need to rely on reliable sources of Hadith is emphasized and readers are warned against accepting unverified reports [10, 16, 23, 24].

    Authenticating Prophetic Sayings in Islam

    The sources discuss Prophetic sayings, also known as Hadith, as a crucial element of Islamic tradition. These sayings are considered a primary source of guidance for Muslims, second only to the Quran [1-3].

    Key aspects of Prophetic sayings, as detailed in the sources, include:

    • Source and Transmission: Prophetic sayings are the recorded words, actions, and approvals of the Prophet Muhammad [3]. They are transmitted through chains of narrators, with each narrator passing on what they heard or witnessed [3, 4].
    • Guidance and Explanation: The sayings of the Prophet provide essential context and practical application of the principles found in the Quran. They are seen as an explanation of Quranic verses and a guide for daily life [1, 3]. The Sunnah, which is the way of the Prophet, is based on these sayings and actions [3]. The sources also indicate that the “day” or way of life, is taught through the explanation of the Quran and Hadith [1].
    • Importance of Verification: The sources strongly emphasize that not all Prophetic sayings are equally reliable. A significant portion of the text is dedicated to the methods of verifying and authenticating these sayings [3, 4].
    • Methods of Authentication:Character of Narrators: The trustworthiness and reliability of each narrator in the chain is evaluated [4]. This includes assessments of their honesty, memory, and piety [4, 5].
    • Chain of Narration (Sanad): The chain of narrators is examined for continuity and accuracy. Breaks or inconsistencies in the chain can cast doubt on the authenticity of a saying [4, 5].
    • Consistency with Quran: The content of the saying must align with the principles of the Quran [2, 4, 5]. Any saying that contradicts the Quran is considered unreliable [4].
    • Textual Analysis: The content of the saying itself is analyzed to determine its consistency with Islamic teachings [3, 5].
    • Tawatur: The concept of tawatur, meaning that a saying is transmitted by so many people that it is definitely true, is used to evaluate reliability [6, 7].
    • Classification of Hadith: Prophetic sayings are classified based on their authenticity. Common classifications are sahih (sound), hasan (good), and da’if (weak) [8]. The sahih sayings, found primarily in collections like those of Imam Bukhari and Imam Muslim, are considered the most reliable [4, 5, 9].
    • Role of Muhaddithin: Scholars of Hadith, known as muhaddithin, play a vital role in collecting, verifying, and classifying Prophetic sayings [4, 10, 11]. These scholars dedicated their lives to this task, and their work is critical to understanding and applying Hadith correctly [10, 12].
    • Context is Key: Understanding the context in which a Prophetic saying was uttered is crucial for its correct interpretation [5, 13]. The circumstances of the Prophet’s statement and its historical context are important considerations [5].
    • Potential for Misinterpretation: The sources warn that Prophetic sayings can be misinterpreted if not approached with proper understanding and context. Misunderstandings can lead to flawed or incorrect beliefs and practices [1, 5, 14-16].
    • Hadith and the Mahdi: The sources discuss sayings related to the Mahdi, noting a lack of reliable material on this figure in the most authoritative Hadith collections [3, 9, 17-23]. The sources challenge common beliefs about the Mahdi that are not supported by strong evidence from the Quran or Hadith [9, 18-21, 24-27].
    • Hadith and “the Day”: The sources indicate that Hadith provide guidance for “the day”, or a way of life, including actions in specific situations [1, 3].

    In conclusion, the sources depict Prophetic sayings as a vital source of guidance in Islam, second only to the Quran. However, they emphasize the need for meticulous verification, careful interpretation, and a critical approach to these sayings. The sources caution against accepting sayings without proper scrutiny, and advocate for reliance on trusted sources and methods of authentication. The most reliable of the Hadith are considered to be in the collections of Imam Bukhari and Imam Muslim [5, 9]. The sources also emphasize that Prophetic sayings must always be in alignment with the teachings of the Quran [2, 3, 5].

    Response to 23 Questions – Complete Playlist – Arrival of Imam Mahdi – Javed Ahmed Ghamidi

    The Original Text

    [music] Greetings [music] We get to hear about Facebook on the internet how long did you wait so far The curtain is done, the suit is done I am placing before you what I am saying It seems that the matter has progressed further now, Ramji Saheb in that circle of the day where Let’s keep talking, someone or the other would be doing it There are three things beyond that, It has been done this way and it is very serious ehraph is the first sound in conversation I would like you to tell me that this We discussed these things in the past, now we what is this akira What is the difference between Akira and the rest of the day’s work Where is this belief expressed and during the day Paris is also there, you have included this in it I did not do it, first thing I will do is apply That is what the most important thing is A lot of talk is allowed This is the picture of Majeed Risalat If you look at my book Mizan After remembering the faith in that, I am the same Dad is teaching me You should go to different places to get Majeed posted Look here people are being scolded in the mosque Where your basic emperor’s at They have invited people where they face objections where people’s love is everywhere You yourself are the interpretation of faith in your prophethood It is also said about the cylinder that a It would have been the time when mahakumbhtari used to read dirty books Tap Integrity That is, what is this law, what is its Sharia what is tafsilat what are the aspects of iman remembrance yes you were not aware of their details After that Lata did her new work I praised the prophethood of Nazil and believed in it He also taught him and also taught him law which is called Sharia These words are used in the Quran the wrong mother sallallahu alaihi wasallam himself It is said that Jibreel came to be one Mukundi Nakum has come to teach you your day If you are explaining the Quran in Risalat then the day are teaching the The day is teaching the Sunnah Day teaching is going on so there are youth other Mukundi What is the meaning of Nakum i.e. this disclosure the sun should be placed before you so that when If you need it, of course Tell me the way in which that thing should come out which Honorable it is necessary to do what is necessary This is the first question asked on the spot what is iman and that the Rasul Allah himself Sallallahu Salam has answered that The answer is exactly the same as in kurare mosque Placed at 10 have been counted in many places Rasulullah sallallahu salam accepted the same I have paid a lot of attention and what is that Belief in Allah and on the angels of Allah Faith in the prophets of Allah Faith in Allah Faith in books, fasting is the measure of your life, if you How to use CAD? can be used for Apart from this, it is said about something that there is a belief And salute me with your picture Our people here did it The book can also be from the mill and newspapers if statements have been made then they it is a matter of salutation I accept that as well, but it is absolutely It’s the same way you spend your day believe in the way you believe in Sharia The way you got the second picture of Majeed All these things actually believe in hands On the book of Allah or on the confluence of the months of Risalah When we accept one thing our faith runs away If we take it then it is obvious that then the message I salute you also madam, my sincere and the book of Allah is the mosque So every difference that has been described in it should be considered It’s an honor to describe it like this [music] I have explained them which the Holy Quran has explained Now till doomsday a person has this right It is not that it adds any value or Reduce yours when you are invited to Islam Then five things will be debated and other matters will also come up Eat these kind of newspapers if you are Shariat follower Which means the newspaper is mine, the newspaper is light yes Akbar Mustaq together with all such There will be scope for debate on these things This might be my point about them The city can be your point of view There can be two opinions regarding their investigation. There are facts which are described in the Holy Quran it is also obvious about them My Fame Your Fan Abu Hanifa’s Fahm Shafi’s fan is a fan of marriage, a big fan mufassar and fammakshi fans are different could or some hadith is understood There is no question about this reason What comes is what is stated in the Quran Those which are mentioned in hadiths are the beliefs The message which was accepted by the beloved Allah Salam Jibril has made statements in response to Amen and he said that he made Mukundi Nakul these wishes On the basis of this we need to talk to Muslims We have to talk to non-Muslims too There is no such thing as a spell in these can go What you told us about this, which is the value These are the basic requirements of the day A person is called a Muslim because of Tell me how faith is achieved And is this mentioned somewhere in those letters? smile I am making himaniyad in majeed statement of allah The Prophet’s invitation as described in the book This is their basic intention, the matter is newspaper How can we leave the newspaper in our hands? are what thing happen Something has been said somewhere, something has been mentioned somewhere He gave a sermon and there was something in it that he said If you give pharma then this is a common thing that people already have I know that it is a statement from their farm it is possible that they may have some talisman There could be some reason for divorce, some order but it is the faith of the day or The way in which the faith of the day will be expressed Passenger As a Fundamental Purchase of Prophethood and if he makes the statement verbally Even then there is access to every single person and As far as the Quran is concerned, it is the real thing why rent a mosque in this That means he has come to tell us that there is a way to get salvation What is important for what to believe What is important to do if you If we look at the incident of Jibril, then the first question is What is faith? The second question is what is Islam? You should also see what Islam is, that it A thing has been described which is a Sunnah Since then it is continuing in the entire Muslim Ummah and This is how Islam and Twitter are helping These words are neither a part of faith nor This Dar Haqiqat of Islam is the Academy It happens and as long as we are in this world Time will keep changing for such things present it in an intelligent manner and the way You and I have discussed many issues before this. we’ve talked about those things what is the instruction like this You will find it in picture books If I have expressed my opinion in it so it will be like that did you value it then how can you get involved in it can be done and if this thing is included If you can go then give it some more time Do it and I told you all this I also copied their faith in living We will have to bring it, but we will have to believe in the proof as well That thing is the statement of Quran A man will have to deal with a girl as a book He who is his fan will understand it According to him he was shocked that he had to make a statement Doing all these things is actually a sign of the world it’s a thing of the realm This thing is considered a part of the faith of a Muslim if he had to make it, then was it necessary that he The way the matter is described in some verse of Majeed Before the doomsday, that is Mehndi Whoever is behind will be the presence of Ali Salam Go in your hand must contain Because all the prophets brought the whole day Everything that is honorable to us Tell that to the prophets from the very first day who Prayer given to the prophets by doing for us The fast has been given, the zakat has been given That means his There have been changes, but this is complete If the thing is not always present, then it It should also be in the guidance of the prophets There should be a statement in the Majeed regarding this too When Majeed came to invite Bani Ismail If given then all the values ​​will be presented not in front of them Your thing cannot be something which cannot be defined by the Quran I did not state that in any case the Quran I will be made on the basis of Majeed and Anyone who wants to talk about it I will use it more to get it done I am requesting that there is a lot of effort in getting it done this thing was stated like this this head together We have faith, but this is such a thing Those who can be so difficult to understand That is why faith is never included in the angel of remembrance neither can they do it nor should they do it He is what is described in the Book of Allah and in the Book of Allah if people If you do not understand then you should express your This was stated in a meeting with Jibril and similar statement has been made When the day came for you to learn, the Prophet Whatever I have eaten since day, it is like this If there is no mention of the fallen thing then the rest What status does Hazrat have that he can to things as faith or as captivity Ask people to express your opinion in an informed manner Describe it, whoever feels at peace is a scum From here you mentioned JBL When alamate is used in the hadith with the poetic greeting about doomsday So the signs that you described are that these Arabs This building is made of bare feet and bare bodied shepherds cut off everything from one another in the making of Then they will go There is no statement in the mosque, people are still asking questions if an alarm is not in Then why this insistence about the other one? That should also be included in the Quran, see this But we will talk separately, why come should come and why shouldn’t What opinion is being expressed is actually what is the newspaper of the head That is, there is some ittalaat that has been given to you So that when it comes out it is easy for people to The benefits of faith are in the blessing of the beloved By daawat you should understand that Allah’s The Prophet has told and in this way every era The effect of the picture of the beloved beloved in the messenger This is their intention to keep coming in front of people It happens, but it is in terms of its reality What is it, meet my head and get the newspaper in the newspaper I requested that in the Quran Statements have been made in Mali’s newspaper Quran It has been stated in the Qur’an-e-Majeed that fulanbad should not be its It has to do with its importance when you say this that there is a belief when they say that this is faith Then there would obviously be statements which both alarm It has been narrated in the Hadith People can talk about him You have been narrating your interpretation Why was it necessary for Majeed to give a statement do There are many old newspapers, if you get them done He meets in the mosque to get it done, it is not famous what is the Quran for i.e. Quran is He has come so that he may be a revelation to the people Nazir beware of the auction and the end and state the day’s māvṛd and principles So that God’s guidance can be presented to the people Majeed got this done absolutely without any reason Some crucifixion words were said and the rest were for the Prophet If it has been left then here also if there is any recovery If we talk to him then I will forgive his mischief nasarham will do it the real question is not that Whether to believe it or not, it has nothing to do with it from the debate of that which means that which has both the signs I agree, I tell it again and again rather it is their shark it is told that we fry He also had this conversation with the Arabs about their charvaye but I never even imagined it It can be said that both are signs of sanctity has become a part and if this sign If the plane was a part of memory then the message Statement in response to the first question to the General Assembly should do So the last question is when will the doomsday come i.e. My belief in the doomsday has been declared, what do I say above, when Risalat Mehboob Sanam will answer this question I have said that I neither know nor ask After that one knows that something tell me the alarm, tell me the alarm If this is proved by the tradition, Aslam will be suffixed to you in the prophethood There is no milk of any kind in relation to them If it happens then I will make a statement and if its an issue If we understand it then we will explain it to people But this is all an illusion The story of Ashab-e-Kaaf is known The story of Zulqarnain is knowledge which is taken from the Quran We get it when we learn from the Qur’an If it happens then there is no belief of knowledge status is given to him but the understanding is not there Making the issue understandable and correct of the verses Knowing what one’s destination is is all knowledge Because of this why do I remember my faith in everything you say I have to tell and Arif Statement forms have been given there and further action has been taken to get it done There were statements everywhere in It is said that when we say that if You are calling it a part of your faith So tell me Rasulallah There is a debate in which the complete truth is present if so then kaitraz would be used in response to this Please tell me who is that reader of Quran-e-Majeed This is the verse which is making you naffi Until there is no argument, every The thing that’s sold in Royton is made of honesty How can I make my faith a part of my faith? yes, only then will you make me a part of the main That faith should be a thing of remembrance That means faith is never a part of remembrance I have requested that everything that How will you imaaniyat it in Quran make it and there is another thing it’s a thing to be told I put the memory aside It will be the entire poem of the day i.e. when the contents of the day are stated So there is lakhs of faith in it, O Rahman and the whole Shariat or is it a book or is it the content of the day which people I have to tell the one whose feast I want to convince You have to give it in which you have to take action against the mistakes also After this there is knowledge which we can get through Majeed It can be achieved through hadiths also it will be looked at from its own perspective, i.e. If any matter of knowledge is to be stated in Majeed It is dated You hold the evidence quantifiable They tell people when they are converted to Islam Have faith in man and sea there are talks about and it has to be done because if statements are made then so Why would we give our people rights in what happened? State your opinion Because of this You should understand the difference between difference and knowledge Alright, let’s move on with this debate You heard this from many tehsils that the thing is called aqeedah and that which is said It is believed that any Muslim should believe in this The condition is to get it done in the mosque itself How, where has this been stated and such It is a matter of knowledge, it is done with faith it doesn’t matter let’s move on that this is the tradition of mehndi, the news about it it is not like this in any one hadith or any two It has been brought to some four edition from Hadi, rather There has been a copy in this I am in front of you I will keep the newspaper then we will know what If anything else happens, then news comes out from this In front of me they say that the hadith of Jar Med The limits have been reached on Twitter and Shruti Then he made it fun and said that here The intention behind Twitter is that humans should stay healthy Like Shah Dulhak sir this heart also writes that there are many traditions of this father who Sukni’s face is very close to the bat They ring in front of me and they also say that The entire mehndi ritual is done till the end of the pan If it reaches there then please tell me that this which is tawaatur how accidents happen We also get more news in this in Wahid what is the difference and if something is different from tabaatur If it is a statement then how would its importance increase firstly i would like to say that this which is usually spoken of akayd in which But I did it before It is when a group exists with its special common man I have come so what things has she learned now? I have declared it to be my decency to believe, that is to say, The verses of Islam are those which are stated Now when some people in the mosque asked for a is there a special point, did you adopt the view or a If he established Madrasa then why did he worry Believing in things to be Ahle Sunnat It was declared necessary that these people should be such as that of the Imamate It is a belief but Ahle Sunnat do not believe in it No, but among the people of tashriyon he is the one having a basic or visible status so are the gangs that came into existence later He narrates these in the capacity of his aqayat if you do it then it doesn’t matter But when you rise above these gangs The day of Allah is celebrated as the day of God The Prophet will present the statement [music] Do you know where you are not present? The old Majeed has stated with ease that for the people of faith, their father Ibrahim He used the word Muslim for Shamma Man Muslimeen for me and you what the day is like To establish it is a Shabakht, is he a Muslim? When I will be asked about my religion I will tell Islam to me when I am having fun If alcohol is asked, then what is he, a Muslim? Then these people are numb, what is the answer? You should know that our Were born born One thing she used to do was that she ready to give the Sunnah the status it deserves no the han which are used in nazms If you do it, he says there is no need for it that is, whoever the people are, they are in their own way If you lead a religious life then nazms Use It is said in the prophethood that you speak of salaam The same interpretation has been used in Hadith 100 as well Today the Sultan of Al Jamal is a Muslim For this, there is a political poem in Arabic language. If the interpretation is of Jama then people listen to the Baal Jama what does it mean He also believes in Sunnah and uses Nazms There is no need to do both the works Introduce yourself as a Muslim Present the day to the whole nation of Islam and Always state what you believe Where is his basic idea in the book of Allah and it’s the foundation of everything you do Where is it in the Sunnah of the Prophet of Allah ok understand this first thing now after that Tawa makes matches happen at a distance but the thing is There is a bat and the one who has the knowledge If it was destroyed in use then it would have been called old. which has been copied It is done as Imam Shafi has said in Tabeer The way we appreciated it after our mirror interpretation kept doing it, that is all the Muslim people, all Since the time of Ikram he has been reminded of the day This Twitter user is putting death ahead of status It is a totally different thing, don’t see Ravi in ​​it Let’s go and see who will tell the story This is the belief of the whole Muslim There is a statement of Aqeedah which goes on When will it be said about building a mosque If it has been possible then this is what will be said that bhaijama and tawa have been damaged due to this by the way when you talk about the Sunnah There also they say the same thing that Bhaijaan and The name of tavajon is kevi i.e. all the Muslims revealed the book of Allah to Majeed Received Risalat Mehfil from Nursery in the capacity of and Start helping your future generations Diya, if this is a matter of Sunnah then this There should not be any misunderstanding from the nafs of tawaatur that The fierce debate going on here has no bearing not related to istemalon Din Aslam has become possible through this Qabaat i.e. a tradition of an entire era to something to transfer it further is a crime There is no debate, I did not see Ravi in ​​this That means more than a lakh Sahab Ikram left took the day and why did he close the next rasro He started doing it and turned lakhs into millions And millions turned into crores and today one and a half billion Their number is more than the national This is the most important time for churning praise More Mustang sources means that of the date which Sentences are denied in this way or are they true What kind of mantras are they that remove every doubt You get tied up in the morning, keep it aside You can take it after that which we have in the newspaper The word tabadtur was used in jail His name goes that many things It is like I have told you many times that Even in the times of messenger of love, and Even after you, people keep narrating what they heard One man started it, two men started it, three Now when many people have said no, stated the matter That means you saw that 10-20 people were making statements There are 50-60 people making statements free space But there is news for this also according to I have started remembering istala i.e. this is now one rabi is dorabi 10 rabi is 20 rabi If the number is large enough then it is generally said I think this thing is helping with bats and more He is the author of this reform according to the Hadith If you look at the books of poetry, that is If there are books of principles of Hadith then in them There is a debate that if it becomes 60 then he would be eager if it becomes 40 then he would be eager if it becomes 26 if it happens it will happen then it If you assume this is the case then here but it doesn’t happen that when do I get along with men I have found one thing because I found it in the middle because I have got it after speaking to 40 people, no newspapers are being forced to So that’s why I saw each and every news. If his Radhika There will also be a view of that thing here as well It will also be tested here, basic from here Your lies about 50 men will be maintained Please tell us with pride here How many books are there in the name of Mauja? Present She is served for 40-50 people if statements are made in relation it is istala i.e. it means apostle Allah Start describing some action that you have seen Diya this rate is recorded in a realistic way and this This also has its importance in the record of praise that if it is known that 40 people have stated this but before counting to 40 We’ll see who is 40. That means people are helpless it is kiram What is their number? This is a matter of discussion. The first spice is one, which is that which we get from this have already started many times that Three things are observed in the Hadith game what is the character of the doer, what is his nature which you can prove in court with proof I tell you from Visakhapatnam then I saw this The secret of praise is That is, this thing is worth paying attention to, if someone else He said that I have heard it from Phalan so their They also have a time of meeting, if it is like this No, that Hazrat has left this world They were born later in that city It was never possible for them to meet If it does not happen then the year is seen and then its After hifzohit the ear is seen this thing The story is still funny even after watching it Now just because it is a salad it doesn’t mean that She has now reached the level of competence The next step is to see whether There is no fault to be found in this is found to start means that someone In comparison to the tradition of excessive education, she has stood up and more people have come Let’s take the biggest lesson, what is that So the old Majeed I am not against the Quran It is not against the Sunnah because In the Qur’an and Sunnah and Prophethood you all have From ima and tawato given to everyone If you are waiting till the end then watch this This is how the Muslim of Il Miracle will go If you are not against it then you will like to see all these things Later you can learn some tradition with the ability I give you the capability, that means you are not there Whose authority is now established over the world? According to my understanding this is Imam Bukhari is popular and can go to Kabul did not coincide with Imam Muslim ready to do Kabul Otherwise, there is a divorce of the world in this Therefore its argument would rest on that person only which is to him It is possible Is that as far as I know this man is absolutely Adil has recovered from hernia The second one is stating that your This is not true in my experience, this is false does he talk or its hafiz If I have come and made this statement in this era then all these things are if this date is in the record then when A treasure trove of traditions passing through these feelings Now this comes before us as an example of mushroom So the rate became 10, it became 20, it became 50 She became a Turk in many ways came now you say to him that this is If it is reaching the level of rapid then this That’s not Twitter, that’s something else entirely and it comes to the newspaper jail like this OK good answer this is what we call tawato On the occasion of Majeed’s statement Quran-e-Majeed which is mutavaad breed breed The fruit of the lake Anil is also the same as that of the Sunnah If this is the case then Twitter is fake knowledge The medium through which this information I am getting transferred further, my question to you is this that is when we use tabadtur there and here the talks are going on throughout the day It is not like this, if there is advice of knowledge then knowledge that this divorce is a secret in the world for the transformation of knowledge that he What is the reason for him becoming Tibetan after Hadith in which our mohaddhin used then Do you think it is correct and in your view The rule of tawato should be imposed on the hadith as well You should not apply it at all anyway it is wrong and It is not entered in the newspapers that there is no scope for denial here So before counting the people who are going Who needs to see them and where can they talk to? I have also heard that they are doing good for everyone Or did you not hear it or understand it or not All those things will be debated here and muhaddishin They do the same thing, that is, this is how they are People do this but when these mohadd scenes are seen When you write on things, you do it like this Now this whole series of objections to Mehndi This continues with reference to we have done in a similar way As a matter of fact, I have asked you something in today’s dishes There are too many questions about that Royton In which revayaten Yamuna is presented It is said that around two and a half hundred came In this This patient very mischievously said that Mehndi Ali Salam’s definitely before the doomsday will be those revayaten which are those If any tradition becomes evident from this and Then we will also tell you about the real Royton Inshallah we will talk in great detail [music] Rahim Assalam But it’s this second feature that we would like to In this case definitely mehndi is from Gandhi saheb who belongs to the one who is from their point of view When objections are raised then dampness becomes their jayjane I am happy meaning Thank you very much for your time First of all I want to make a disclosure to you Put it in front of the listeners Copy of various articles inside the house If you have done it then I would like a few minutes Tell people Dan’s point of view what is it and then we would like that those traditions but he should come and ask Gandhi saheb that he how do you see it is written that many The narration is attributed to Rasool Salam and to the words Jim, this much is meant for Ali, it is said Until that mujaddhid appears By that time the world will end, right? When doomsday comes, he will be among my family It will happen through my itart, it will happen through my ummat Fatima’s child will bear my name The name will be his father’s name, my father’s name He would be a cook, but Hawk means that in appearance it will be different like The table call is told on his forehead n She would have no hair or any other hair and would be tall This world is filled with oppression, tyranny and evil mamu hogi Whoever doubts Allah will make it true Justice and Rowdy in the world People would have punished him by extending his time will remain there as long as he is on the side of Allah i.e. truth Sir, please do not make a Muslim his methods are like this You will be blessed with happiness which no one has experienced before Your best land on land you have never seen or heard of will yield its finest fruits and from the sky There will be a shower of mercy, there will be a lot of money I will be in such a state that I will be trampled under your feet And they became innumerable, one man will stand up and say Give me the wealth of mehndi and that He would say, of course take me and she would be so suppressed by him He will fill you with wealth as if that person takes you away If possible, then this is a revelation which is definitely a must for Mehndi There is rise in the Ummah with reference to and where It is said that in different narrations it picture It happened that this medicine is used You had told from the big tehsil that bat and Who is it called and on what basis Why can’t lakhs be made today’s first My question to you is this These revayaten are present in such large numbers it is said that if all the deposits are revayaten Their certificate should be done and the city should be kept aside it is close to 500 so when you say that These are the news, these are the limits, these are the same news This thing is coming from them, mutawater is present in them If orders cannot be placed then it is so big These reports come to us in large numbers. and yet we say mutawater the news of I have mentioned earlier that one thing There are many who are there in any community to praise someone in a gang or a community honey does it further Then it is said that in such large numbers saheb ikram brought one thing forward To give an example of this, its example is Sunnah Their number is also more than lakhs this thing is written in every book It is available from the earliest times to the present times You can keep listening to this with the pan away There is also an agreement of knowledge on what we are it’s a totally different thing what’s the other thing The second thing is that it is important to convey something People narrated after hearing it from their beloved started and the number of people increased 10 people gave their statements, 15 gave their statements 20 people gave a statement, that means this debate A question arose whether we can send news here too now But you can give the order of tabaatur to the news can’t vote for this he is not tavakur This is what we call tavajpure from that time The newspaper pan is far away, which means we have some divorce I got it but I got it from more people Upon examination it appears that here use of the word taatur I am doing one thing and when we the land of infidels is seen in the mukhtafe areas I see in the Mukhtite era if so we cannot dare to say that this They can gather on lies or make some conspiracy now when this thing is assessment palace then The Goyat Batterer is born and then his What is the natural outcome, it is natural The result is that in every round he The ijma of knowledge is copied from this I have already submitted my request to you Completely free from the need to get it done in the same way when we are entered in the Jafare of Hadith and the Hadith The knowledge of a Muslim before he is wounded If we take stock of the tradition, there also the first The circle looks empty from this Narration further i.e. in the collection of hadith should be refreshed And vote for him further on your own responsibility When you gave the message of Salam in the prophethood, if they make a statement or give it to them then their The method of giving is absolutely free what was the biggest thing of the day kurare majeed The Sahib read it out in the Risalat The writers ex-written her The one who remembers him remembered him as a Muslim that Quran reached every home and then National Promises Racializing Is Getting Harder People should keep fasts, people should get Umrah and Hajj This thing was going on even before as a result of the picture all are in muslim It will be released every year when the month of Ram comes So we keep fasts every year during Hajj When the opportunity comes then the convoy of Ravan for the harem People become Muslims even on normal days You are probably going to do this thing and it is obvious that these The question does not arise, then you have to do this kind of This is achieved by things of knowledge While speaking about the outline of tabadtur, do look at this should take it what is its navyat then Akhbari matwatara this istila by muhaddisin we have risen here and it only means this there were too many people there were too many people A large number is making a statement and a large number If you are narrating then please give evidence of Hadith take out the books and you will know that there is someone who should be with me, someone would say it should be 40, someone says it should be 20 Needed Understand its meaning today; it certainly means this It is not possible that only one person is narrating This means that the munffirat people follow the tradition that is it is not the case that the entire section is One thing is coming from Saheb Ikram’s Puri One thing is coming from the Jamaat that it is not like this Rather people are saying one two three four Rated 9, could be more There can be less when there is only one person everywhere If it stays then you become poor Our advice is knowledgeable for all the hadiths is used as a term and means It happens that the news is of breaking level It could not reach it, it needs a road I want to see and take stock of it, Sonakshi is here That is the thing which when you say salaam in prophethood When the narration started, then it became Medina and they started the work of the tank all this The cucumber that you see at this moment is It is in Bukhari and it is in Muslim This tank is in the books because of its implementation Rules were made to make ends meet Chant was made, we will discuss it in detail have done it i.e. what was seen how How were they tested in this We observed that whenever an affected person mahtyasin gives the right verdict in his ijtalah So there are three things for him in terms of Sharad is the basic We have also talked about TFSI in this That is, what is that thing that ends the character Let’s see if she finds the man to be a liar or not He doesn’t have a story, what is his character He is in love with Allah from the bottom of the heart Even the ruler’s feet trust him In view of this, they have done this in this way This is the form of Rakhi which is made by hands the coin is like this Ravi is telling that I have slept like a full moon It will happen, I will stand up today and say what is done I heard it from the fruit man and he married again If he is a man then someone should try to make him a Babar If he is not ready for this then this year Sanat’s is seen and the third thing is the ear After this, the judge is like a parallel buffalo if she is affected by all these stages then Then he tells his Han as per his advice He justified the pain in his book We do Al Jameel of the book of Imam Bukhari Why was it named correctly? There is the correct word in it, the correct Urdu word I am not being used but in this my friend But the Rao who came down to Puri in which he I have also recited some more Sharahit verses you have collected it in your book so that is why Al Jameel is said to be the book of the Muslim That is why it is called Jaanu correctly i.e. The author has made arrangements for this in it You can disagree with the hiltajam of But he has arranged that these Or the selection of murwayat according to the night Now when something is based on tradition But if the statement is made then first of all this should be seen It will be known who narrated this tradition where did it come from how much is it you just stated He said it is close to 500 After listening to him, I forwarded the matter to you. made a statement You further told this to 10 people 10 people put forward their lighters in the air If you start making statements then now this number will increase The dates will be fixed i.e. the chain will keep on building It will go away, whatever is taken is the same thing The sentence was the same, that is, I heard it I told him my statement after giving it now maybe i am getting it I will say it somewhere in front of 25 people I made the statement in front of 15 people two of them made statements and four of them Lightly in front of his shagirdon him It will generally grow on this foundation You may have heard it is said that the Imam Bukhari passed away due to Addison’s millions This is what lakhs of people want i.e. incident There aren’t lakhs, Aslam the tradition is of lakhs it is not in numbers but in this manner turns into millions First of all it should be that what is this statement Leaving aside the fun, when we do all these kinds of things the things that appear like an amber in front of us If we count the place which is lying there then Turk In terms of that means take each date separately If you take it, it is close to 500 but how many are these Sahab is from 23 years old now Mehndi’s total Narrated 23 August In the Prophethood you were from Salam 23 Saheb as Rao D narrates i.e. I do not know, nor do I recite it how did we get it from 23 saheb describes a peace and a saint When you move up then the B’s from front The name comes last, the narrator tells his Keeping all this tassam sun intact you will In the end it takes you to the end I salute you with my tongue on your face It will come out but there will be no friend to hear it Every listener will who is later describing it to the one who I have heard that from people, he is very proud of his Sanat Where will it end in the name of someone ahead He will say that this matter started from there so on 23rd Now that Aabha is close to those 23 that there are nearly 500 narrations which are contrary They have turned into Turks, you should filter them When we start to wander, at first this is less I.e. the first thing we will do is that The muhaddisin who searched for Royton were trying to get to the gate in the light of their See anything might have happened, people said this He started doing it but Saheb Ikram asked him for some reason is it related to or are they propagating further So What did they do to each and every thing started to check If the matter is being narrated in a relation then you should also We will see your character as well We will also look into our in-laws’ house and look into everything. the execution of seeing this If we are talking about something today then it is new can not talk that we have to know about those people They do not know that those people are present in front of them that is, at most, which people are they when you are looking at then you are looking at these who I am telling this to sir, after that if anything If there are people then now these people are born They start checking every single person. It was decided about Saheb that he We will not follow tradition if we talk about any person I know that he is not compelled to do so If you know how to take names like this then asahaabe So Mohammad but after them those who make statements We will look at them from every angle We will do a post mortem of his personality We will do a post-mortem and then we will tell you From this, he has informed us They are recorded in the books of Rizal I am helping this for a common man Therefore whenever I am on any tradition If there is a conversation, it is not today I can do it, tell me Madhu, only I can’t do it We would have been presenting the same intention, that is In the first century AD, when this sequence of events It started with those shameless people who We have the information that is available in books Their record has been deposited in order I gave it had adopted the method of narrating from For this he made a special hand like this This Munkar was kept, this is the Hadith It is not acceptable to do this, it is beyond our reach That is not the way of the Ulema in our time Whatever information they could gather they At this time, someone has written it in the books He would have been giving you a new excuse in the same zakire whoever is doing that to Zakire One of the results of Raju The obvious thing that comes to the fore is that this thing Ability may or may not be present In this I am feeling relieved now, look at these four men Some people say that it is true and some people say that it is Is it true or not in my experience No, I have no objection to this If we get the information then there are many more of them It happens that the man has to decide seeing him he had to divide his decision into parts they get confused so heard this would be that a middle one says that near it The tradition is acceptable, another says I am not capable of Kabul, I take every single sun There is no other way to make this, see this is big There is a famous debate about Imam Bukhari The Muslim also has a sister and who Imam Muslim has given his sahih regarding this Some observations have also been made in the case that In the case of Imam Bukhari Koi Taal this There was insistence that we have promises to be fulfilled I should have met this thing once It is not enough to say that the world is one or There should also be martyrdom of meeting in a city if you want then it means that things should be arranged in a proper way In the test, divorce happens and their Divorce happens in this matter as well by keeping this in mind you arrive at the conclusion that no, the people who are doing it have no say We are not like this in this, then there are many good things That’s why it’s night time, it’s a little hotter faster That means you just said that this cable It is not Kabul, it is just that I isravayat does not take only this diya Is this Maakaran a Hadith or have you told me this? What is your objection with the tehsil what is the flaw in the character then this kind of They are very gentle like that, that’s why I Praise is the only way to judge a record is that I did a little bit of this in the stars We are talking to the common people of Diya and Jeera. These are very funny things, they are giving the best If it cannot be brought then in this way our about the muhaddisin’s opinions about those accumulation in the tank i.e. this Then the fan’s Mehreen is doing everything which are very big scenes in this ummat He collected a lot of them all put it in front of you and then see if Medina Well a man Well that means they will definitely go through Lux Will we accept this story you told us? This is the revealing statement made by Mehndi, isn’t it? In this case it is clear that it is disclosed on the basis of which the proceedings were filed there should be promises in it such things of things that have no potential for being worthy So their mehndi will come, this or that This will be a matter, it will depend on you By this I mean this is a responsibility, so this is according to the tradition There must be a tradition which must be followed in matters of Mehndi I can be introduced into these Rao’s I have already applied, repeat it again I give you that Imam Malik narrated this in one narration I didn’t even like to take the That is, while sitting in Medina he Mother used to do corn there which hundreds People proceeded further It is not that the Hadith narration started from this It is a proper book As a fan, I found it all in order and People started learning about it by visiting the judge did you take very little after that you puri puri The old book is empty and that too is empty This news is conveyed to him by Imam Malik If it does not reach then this is also a spice [music] A big news is being given so I have requested I am telling you about abhadrasin I am sure that when this thing came in front of them then What attitude did he adopt? This is a matter of the first or second century and after that This is your Imam Bukhari coming in the third or fourth Imam Muslim arranges these two books Now three-four saris have passed by During the entire period this fan was in his lotus position has reached the tank of everything Suppose there is something which a man has knowledge of not me, she too has come a long way are present, their conditions have been tightened and These two books reduce the big house, Babul to just Famines give a solution A true Muslim knows this If this is mentioned then these two books I will mention this many times before The Ummah of Hadith has come to be known, that is, books yes, you can only get three and the second Bukhari or the third with the animal Examination of Muslim that mehndi will come and its name will be this and this it will happen and it will happen there is no mention of it That means, did it actually become empty like this? When these events began to be sifted through if yes then I did not get it completely In his book he has described it like this: Rao the Mod Sanatan’s I am a friend but I am not complete Now this thing has happened After this the hadith of second, third and fourth grade The status of the books is also evident that arranged according to troubles The book tells the story from his heart In that it is more correct narration, if there is any So how big are the numbers from Kabul? Keeping this in front of him, he now goes to the house of books first entry then it was not said so first The grade book is completely empty That means mother, Bukhari and Muslim are also included in these Whatever has been stated, I will further I will do affairs to know what is it that which has been attributed to totally different so in these books the way people understand or as if they exist And Muslims, in these three books you can see this There are pharma I did Mehndi with the words Mehndi Alaihissalam Mehndi will come before the doomsday Their dominance will be established on the train of wealth They will review the patient from the Muslim side Mention this story, this name of Mehdi Ali Salam There is no mention of this in these three books I am telling you how to get close to 500 The Turks who would have reached us by air from the 23rd When we put all the records in front of us, The whole thing is present in front of them too Your book [music] Understand it as second, third and fourth grade Whatever has been written in the books has now been brought to the fore keep it and then look at it on the same principle i.e. what The principle is that the I have loved filtering and breaking down traditions Is Hasan in a better or a lesser rank? There is a tradition that after that what is the level of I descend to Raod Puri He is a Turk, I told you. that is, what comes out completely when you If we do istikha then we come to know that Most of them contain or have such zifs Why aren’t you even mentioning them? People also talked about the clock as a result of This is a story that someone made up and narrated Ismat has been given in the name of marriage madshin has given us complete books The arrangement which has been given by collecting the maujuaat and stating it It is a different matter that people have to inspire people by narrating books Let’s start joking around lightly it happens that this book exists like maujooaate is ever like lavil maslunga So you have collected all these complete books After doing it, it becomes apparent that it is a huge The share is that of the rich or the poor What does it mean, that which is right? We have stated any one of the conditions All three conditions were not met When it is not found then it goes into a tailspin Has gone Now there is no talk during the day on its foundation not be said Nothing was said regarding Shakti she can go because when she is fulfilled on this path If you don’t get down then you too will not accept the scene and when a man accepts any tradition we will not do it, Kabul we will not do it, see they If they accept it then we can debate on it if they don’t do it then it is obvious that they Agents are giving advice to not do Kabul, right? what are those brokers they are the same What has remained in my character after so many years? what has happened in me, some insult so it is not inside after this these second, third, fourth grade The revelations which have been described in the books Which you can classify as Sahi or Hasan Are I don’t want you to decide that There are so many differences on the basis that some There is a statement in them too which has been presented Whoever comes across this jail has gone Without any tank you are the first one of them He will choose keeping Sharad in mind, that means he There are so many problems that to some extent till then either it comes within the range of correct or A comes under the purview of Hasan them as correct but let’s just If we come down and accept them, then we will know It happens that this is a total of seven sentences. Seven sentences means the total number of sentences is seven The sentence which comes from the implementation of the election and thereafter those who are in the hands of Satva we will help them again first of all you will go upstairs sentence is one the second sentence is the third sentence or I The statement of Saheb Aai makes it clear that the sentence what does it mean the fact is that today one thing This statement was made, but only 10 people heard it have talked One thing, then a statement on another occasion the sentence became the same thing When the statements were made from one side, the other one ran away So these are total seven sentences which are its results in front of us the result of the tank These are rare in our times today So it’s continuing in the same way right now he is not saying his point i.e. who is mahtyasim Shoaib is reducing the amount of money And loot sahab is doing a similar thing Our Abdullah Azmi is a very extraordinary person Side has done what jia usually said The net is still called Abdullah Azmi, his status is known to him, his book is like this Akshay has become what was his motive in that He stayed in Madinah all his life The same workers kept on doing Tabrez and the same workers kept on doing Dainik Nabi kept giving and sitting there he said anjamul she used to do kamil that is, what was their motive that whatever is right And Hasan is the one whom Imam Bukhari narrated. Those who were taken by Imam Muslim who was taken into the care of mother Imam Malik and That too which is a second, third or fourth grade movie The thunder that struck Royton is as big as the stock that contains it thing also on this middle sadhna kankeet mayor Puri descends and gives him the right to Islam Or all those stories can be called Hasan He has deposited it somewhere in this book I have Zahoor Mehndi’s father in it at night Is If you keep the whole father in front of you, then he Seventh memory ok those seven sentences and those 7 sentences He stated that in it, a same friend same sentence is describing it in other words at another place I am making a statement, as a result of which this Around 14, Rao becomes the Now that you have reached this place it is obvious that now you will reduce the number of mosques and you will see their Tanki will defend those incidents when We have explained it in the context of our Hadith Those seven Raos go in front, that means now What has been done here is based on something that existed before Wherever there was conflict in it, remove that one It’s the same thing, two people are saying the same thing Two things are being stated by the companion, so you go out and tell them exactly Let me tell you what is this, this is the total The stock in front of you is seven sentences sound of love When they deposit it and after depositing it they When you start reading it becomes clear that There is something else in them that is said But we will get to that later, first this If there is any objection to the whole matter, then it must be Please explain, that’s why I am telling you Tuffil that when a matter comes in front of the people Especially in front of common people, this is ₹ 500 If it comes to ₹200 then he should understand that what does that mean i.e. 500 no it can be 5000 so immediately goes on increasing yes people get to know that a person Sitting in a gathering, he delivered a speech about the first century I saw 500 people there, they heard 500 went ahead and started making a statement This makes millions of things But according to the method of mahadisin he Let’s see what the actual things were So did I request you to prostrate myself? When you collect all the 500 rupees then it will be fun The truck has 23 names of cars which When you go through the tank operation, you will Seven sentences completely fit the mayor of the tank They think the same thing even at this moment, which means they are mine lying nearby and the animal and perfect this Look who is this sharif amir horoscope from ustadul hadi jamia til islamia film madina film Munawara i.e. in Madina Munawwar Jamia Islamia is a university established he is a master at it and this is before Madrasa film Very personable and this [ _ ] is also very hot have done he does new things, this is not his man the method of madyasin We will do it before people start arguing But despite the confusion one man goes to one The way in which mahsushinkh is prepared In the same way al jameel kamil fil hadith sahih It is included in the title of this book The walkyad statements made in this sentence I am never sugar candy, my friend It appears that the rest of you is fine, however that in the words of those sentences there is something If they become alpha then do their tank We disclosed his immortality to me I put it before you now, you have told in detail that A blue is our belief and I have told you a little about his story Tell me your conversation till now Muktsar Reveal it to those who are listening Then we will take the buffalo forward, you will see this It is said that when the imagination of Mehndi appears came forward and people claimed that this Rasool Sassar had said something to the patient To suit the things intended with Rasgulla When you went, the other gentlemen also went to the scene If yes then the name of the mother is Zahoor Medi There is no story in Bukhari nor in Muslim and then what is said is on twitter It is said that their tanks number in hundreds maudensin did it herself, if you didn’t do it then It also becomes the time when bechtar The narration is present in and those seven sentences they are reducing the tank but they are doing all this what has happened means I have put it at your service I requested that this animal that no scholar has arranged this The gang of muhaddisin has always been the same and sitting in Madinah they This has reduced our old Those are the names, all of them are accepting this work These are the results of the tanking they did What has the same Satva’s hands taken out The same two gentlemen of Satva are in excess in this, but It did not make any difference i.e. walkyaat I will put those sentences before you. Then see what he learns from those sentences. The story proves to be one that rises in the hearts of people or do you know anything else Do the four saheb have any objection to his sanat? Look there is no objection left against Shalabh If that is not there then there is no objection left at all If it were so then why would Muslims not take Bukhari’s advice? If you don’t take it, that means you give less importance to your mayor I keep doing it and I forget you For example, there is a person about give tank about a rabi but you Give them good aspects so that they can get Kabul done if you have done it then so I will try to understand it by keeping it in front of me In the light of the Quran, we will see what is yet to come The gossip that is going on is that From today onwards, a fan of salad means a fan of tradition. by which the historical records are checked what are her results so far Natale ilm has taken out some of these for me I won’t reveal them to you I am saying that it contains this sentence which Statements have been made, you will see those statements What am I to them like they say in the statement I will take it but then you tell me that I knew the story that we had The one who was being made a believer was among these It is called found That is, till now it was just that here and there Instead of listening to stories here and there It would be better if you see Daastan first instead of Sarai what do we have, what is death There is no mention in the Quran of this Why this view or this hadith There is no life in Mahate Qutub, second or third Mention started appearing in fourth grade books It is mentioned what happened when you If you implement the tank then there are countless things the fun and the obvious agreement to leave just like that whatever is left is saved as a result of the tank he did this but now we this It is said that if there is any spice left on it If it is not there then let’s see what it is You people are from Kabul and tell me that they have somewhere It is Kabul, that is, I have not yet I did not give my opinion, I presented my knowledge before you I am fully praising what is in this film There was masala, where did the whole thing start? What is the opinion of the people of knowledge regarding this And by people of knowledge I mean Singh now I am not talking about the rest of the people I request you that if you tell the rest of the people If we talk about going from bottom to top then our Here Lamai Iqbal termed it as disappointment Baitullah is cancelling it just by giving it Sindhi sahab raised questions on this Allama’s wish was fulfilled by Maji Sahib wrote a book and told that this It is absolutely dishonesty, it is a worm from the heart Earlier Sharif had raised the issue in his case. Syed Rashid Raza sahab has done countless If you raise your hand then what is the matter in this This is my condition, this is the point of view, I am the request I am doing If you look at any one of these The common man was not made aware of the need to go to Kabul If you look at Syed Rashid Raja Saheb, he is great Mishra says this jokingly The author of Almanar is definitely in the limelight Mohammed Abdul’s disciple made this statement do that this is the rate at which the LB Hazrat was disappointed after doing a lot of juddojah If it happens then watch to show them hope That means all his work was for Kulsi then. From today onwards no one can give them any fun do not accept even this but the method of The people who have reviewed the above This choice has been made, this choice is near me The extent of this election is commendable what do you take it to mean What is the issue regarding this Quran? What will we talk about next in the light of Sunnah what will we talk about in the half light In Surat this has come before us, so on this When we start goo we’ll take one each na first of all we will go and see whom b how is it from, how has it become fake, what are the words So let us read these seven sentences now. is allowed Now, I am going to reveal it to you. The first tradition now is that of Shahid himself from raziyalal I read art in its words Rasool Allah or Urdu if you are making a statement then after making the statement In the future people will recite it, what is in it If there is any dispute, please keep that in front as well, Rao Now I am translating it for you Now he is a true Rabbit according to the will of Allah. I’m translating what I’ve read now he is living properly god gave him rabbit yes they say that Rasulullah sallallahu alaihi wasallam said He will be a ruler in the last days Keep the words in your words Khalifatul Aakhri In this world there will be a ruler who will punish the filth without whom it will be divided Where is Mehndi in the alphabet now? Fayaz has also become a good lawyer There have been some changes, there have been some changes as well, with age Even a shameful personality like Abdul Aziz It has happened, meaning just as it has happened in the Quran also that The one who told Imam Ahmad bin him from Surat Hal A group of good and bad rulers was brought out The whole of Qatar is present, there is pharma in it In the last days the ruler will be the one who is evil among whom it will be divided without Well it’s a date gone the other way I am Abu Shahid Raju Allahu it is a tariq This word has come in, which means the same thing The words are telling, then the days have passed See what happened even then Prophet Sallallahu Salam He said that after me, the last era will come It’s over After me, such a ruler is making a statement The one who will make people [ _ ] a lot will have the same thing won’t count The word is the same but it was the last one there In this world there is a possibility that after me there will be another in date One of the 19 rulers will be the one who He will make people squirt a lot of it will not be selfish Where to apply mehndi in this Where did people mention him at night? If there is a plan like this then I what is the need to deny it That is, if you say this in the messengership, sallallahu Salam has said it and it is towards you If that is right Ajay, such a soul is of Allah Thank God some heavenly personality has come Someone has to come, I have to have faith in someone The bad things keep on coming You will see Shah Jahan inside the Mughals As Uparna also came and as English A Muslim also came like Sher Shah Suri, so did we It’s been very old for a while now so let’s go A ruler came in his last days After Rasulullah this happened for the upliftment of You say about it that Malhar is full then this first narration, first sentence There are three ways to You will understand i.e. Abu Saeed is happy allah noorvaidh are having a date in The alpha is in the second tariq These are alphas, they have been manipulated In this Where is the cold, where is that imagination in it If it is true then such a ruler should be born and maybe I’ll go upstairs If I put 12-13 saris, then I will pass by I have also announced it above, I will only do it if I If I talk only this much then my eyes are on Foreign Umar She goes towards bin Abdul Aziz like this Such was his personality, so he went away Well, it could be another man, someone else Treat it but where is the henna in this Is Before you walk A pond of praises will ask where will be After that in 124 a Muslim government came into power settled in haspane After that Fatima was established The caliphate of the Ottomans was established, well then Meaning sultanate began to be established at this place This is a Mughal of a dream, where is all this will be so he says kunna in d jabir his Sahabi Javed bin Abdullah The one sitting near Razi Allah He said that time is near, that time It is almost certain that someone will go to the people of Iraq No religion, it is the name of a scale and a coin K means in the form of religion, fake etc. Dirhams are made of gold and silver and Dinars are made of gold The religion is made of silver and the coffee is made of coffee The people of Iraq have scales for measuring etc. Neither any coffee nor any religion will come, we asked this Where will it come from, what does it mean that the wealth which is Is it happening or will it come? It will stop Ahl-e-Iraq K honey we asked where can this happen from He said that he would stop him on Azam’s behalf will take That means the poem of a Muslim from Azam’s side If it is fixed, he will stop getting bad where will it come again We asked where this would come from What will be the outcome from Azam’s side? that the han of the Muslims or the centre of their sultanate This thing will stop happening now, see No one is living about the world A machine is running, then it’s silent for a while After staying he said who said Jabir bin Abdullah razeallah the messenger of allah Salam said the last days of my Ummah what was I there what would they say after me in the last days there will be a ruler who people will poop a lot [music] will do it, there will be a great spread among the people and he This kind of person will defecate a lot of people Alphas have also come to be counted in the Baj Triangle i.e. his faiyaazi’s statement is a Fayyaz will be the ruler, I will request before that I have said that there is no such thing in this not the kind of person people usually care about Do Are [music] Taken from the right Muslim Before any Zikar in Bukhari Muslim No mehndi is very good which are described to him in the net what is he saying a ruler giving news of the arrival of The muscles responsible for the birth of an opponent are the same making a statement and stating anything it is taken from muslim and It is 2914, that means this is the way of Muslims, you I have accepted it but there is no role of mehndi in it There is no mention of it from you, which means it has been cancelled What is the reason for doing this brother, why don’t we make one It is a great joy to be born here It is being told that many Fayaz will be born There will be dirt in it, Jin Jin will make it mehndi From where did it enter, there is nothing else We have also taken the custom of mutton from Muslims And those 2913 proved to be true bills i.e. those Abu There were three ways of narrating Khudri including have been taken and this Jabir Abdullah is happy allahu akbar After this now the best Javed bin Abdullah Rajeev Rasool Allah But he will be on a gang and he will be for it He will keep fighting with people till the doomsday, Ghalib will remain You said then Hazrat Is Ibn Maryam sister in the ajaano iqamat of any namaz If He descends, then He will be a group that is on the right path He will be a rich Christian in the gang from Mary I would request you to please come and meet us offer namaaz but they will not reply I will not pray because Allah has bestowed this Ummah this privilege that you In this bus-baaz the rich are the talkers He would like to come and pray, he will say this that you stay ahead and say this to someone People will perform the imamate, there is mention of Amir in this There is mention of Imam here, where is that Mehndi There is not even one word of Mehndi in words there is no speciality left on this side, that is An imagination is described of one of his companions Any name can be Muslim a gang of will be on It will be a good thing We are also studying, they have to study something Muslims will also have an Imam if they have gone So you are an Imam, you should also go ahead and do this I will say, Sir, please teach me the Namaz A prophet of Allah descended from the sky It is said that what will happen to their inheritance It is a matter but we have to talk about it later We are currently in the prison of objection I am placing this tradition before you that this in custom You will request them to do anything less He says in reply no bhaiya You make Nawaz yourself, this is a daily affair We go to some place, the Imam of the mosque Looking at me and looking at you they will say namaaz Read this, we say in reply that no you You are the imam of this mosque Well in that if Syedna Nasir Aslam this They will say that Allah has given you this I have given honor to your name, you are the one If I am among them then I will lead someone else’s leadership There is no need to accept it and whoever If it is in the name of time, he will offer prayers How did Imam Mehndi enter into this? What is the argument for mehndi in this? Tell me what is the mutton of this tradition? It has been taken from Muslim Ahmad and the amount is What is 15177 this is it means you can see it In this Syedna Masih described the origin of Islam There is a mention of these in this tradition, we should discuss them separately We have to do it but what is the use of faith and mehndi in this is watching that the caliph Similarly here the Ameer or Imam of a Muslim will be If any group is on the right track and it is against the Muslims If he is giving a feast for his rights inside, then we are also his Many Imams will be present, how many Muslims There are ways in which Ikwan rise when they come The Islamic world has risen, and all those who are closed down Attendance even in a mosque where Imam is present If Syedna Messiah brings Islam there, The Imam will be the same man plane mehndi kaise It happened, how did he put it inside patience That means if any of these people live then you will not get this place also. will get First myself and then Abdullah Jabir bin Abdullah rasulullah ambakhun It is stated that Rasulullah sallallahu Salam asked him what is your time This will be the situation when Maryam comes from the sky to this side Revealed amongst you as a Ruler will summer here Now that A good thing descended from the sky on that occasion Someone from among you will perform the Imamat It is also used for the Imam of the mosque and is also used for rulers we have a Muslim ruler here Especially in our Fiqh it is called Imam so you can translate it both ways Take it upon yourself to offer your namaz Any person from among you will perform the Imamat or he will be There will be someone inside you to kill time There’s someone inside you This vector of Rasulullah Salam was copied what glory will you have when this time Maryam is by your side and she descends between you and they will lead you Your Imam will be from within you. He will lead you here as well You carry the word of Imamat in both the gems Look at it, that is Syedna Masiha Islam If they become rulers then how can the Messiah be Islam Well, I will lead you in your prayer. I will do it Where did I describe it before I have already said that the Syedna who is in this It is the tradition of Nazul, it is our pleasure to have them We need to talk to someone but this At present Imam Mahdi is debating this tradition Please tell me if there is any mention of him in this in the same category After that food was eaten by Abdullah Ibn Mashhur Art Art Abdullah bin Masood pleased Allah know that this Also listen to the tradition, what does it mean Before this we have talked about Javed bin Abdullah I have seen the ritual, now he is agreeing, isn’t he? Abu Saeed himself had seen the narration by Allah Let’s see Abdullah It is said that Rasul Allah said The world will not end, even Allah Lock one of my family members I will bring the one whose name is similar to mine and whose My father’s name will be like my father’s name Even among my Ahl-e-Bat, the Ummah One of my namesakes will be Shaka Shaka Maran who fills the lands with justice like this It will give you pain as if it were heavier than the earlier cruelty will Rasulullah sallallahu salam said The world will not end in time and others Even among my Ahlul Bayt, my companion I saw that a person’s name would become the king of Arab What happened to you i.e. Abdullah bin Masood May Allah grant you peace, there is a companion who narrates there’s only one sentence for free How did this happen? The first thing that happened was that I picked up a man from my first bat will What does this mean any doubt will arise about him what was told in his name And the father’s name will be my father’s name His name will be Mohammed [music] A person with my name will be a good man There is nothing of Nazil anywhere, Nazil has no I was there, will I get up or will he come or Allah Taala will bring it here What was being said earlier is the same thing here also been talk like the first oppressor Due to cruelty the world and the world will come to an end you won’t be able to do this please bring it somewhere When Dahar Kahi Laat Kumud Shah means this is it before the world ends, one such The ruler will come now, see what happens We had raised the question that this is Sukhmaran’s Talking Now the special video will come in the video This Fatima will be seen in the video He will come among the Mughals, where will he come See, he stated this Abdullah bin Masood is the one who narrates the same sentence My namesake has been among my friends One man will be the tool of Arab’s murder So what did you reveal about Mohammed bin A man named Abdullah in Arabia He will be the ruler, he will be very generous and If the order was made then what happened in this? Mustafabad There is no government in Arabia that is still in power This is a very good recipe, I remember when If the decision is given there then what about the people What do we have to do emotionally in their case? What kind of ruler is he, he has a lot of emotions older than I will give it to you but let’s go very unusual a man named Mohammed bin Abdullah Tomb What is the name of Mohammed Mohammed Salman Some son became the Lokpran of Will this be the name in public as well or not? it will be so, these are not buses well there’s another thing ok i took this also you know that Before Saudi, Hashmi family lived here Upma was the queen, she was considered a gentleman among them From tomorrow someone has become someone else and tomorrow someone else will become but what has been said is Does it mean the messenger of the family of Mehfil Aslam People are present all over the world right now His rule is still there, it will be established someday At this time the Kashmir dynasty is ruling Arab I am born to create tomorrow or it may have happened before or after People will put a divorce cut on the same one there will be a surname The one who will be great Fayyaz will be great Adil Fayyaz Ruler Adil Ruler Syedna Umar Raji Allah knows the Adil, the Tayyar, the Umar bin Fayyaz The then he became Iman Mehndi So this is the concept of mehandiyat Where from I have submitted before you more than this more than what is known is that No good ruler can be born among the Muslims It will happen and that justice will prevail among the Muslims He will do it and it will be born in time When people fly in great oppression You must have read it more and more The results are out, let’s move on Another tradition of its own came into being, i.e. from this The gentleman whom we have seen earlier, now this No new companion was added Abu Saeed I got it done myself but the sentence is a little So, mention it separately on the cover The prophet is performing his duties on the right day Rasulullah sallallahu alaihi wasallam nakum For seven weeks the canal sat in Rajanam with this Ajal apna hellok christian revenge kam jummah mubarak Shahid himself narrates Are What increased before this was that my the name of mohammed bin abdullah from alebait Who knows now that one person will become the Quran It happened that his trouble would be cough and nose would be interested what is this condition that makes a home I quote haven’t you been born yet A new thing was known and here Muhammad bin His name will be Abdullah, be happy with him That is, what we know so far will come to arabia Biryani what standards do you live by He is not my best friend we will come to Arabia Or a ruler will be born Mohammed bin His name will be Abdullah, his forehead will be His nose will be held high, will he become me? who will fill the earth with justice As if the first oppression will be heavier than the flight we already knew that in Arabia What does Arabia want from the land? The land is exactly the same as the way we Zameen Sir Zameen’s words are their origin They speak for Pakistan in Arabic too If this happens then someone from the whole world There is no mention of the whole world In this entire world of imagination, there is no one who is a follower of Islam. Galba will be established, there is no argument with me There will be a brand in Arabia, that is Quran He will be known as Mohammed bin Abdullah In the messengership family, take it seriously what is the point of the whole thing Look at it, that is what you would be doing If this innocent man fills him with justice then Later on, the world will come to know about doomsday no what will happen to him during this phase of the year will be What would you be like for 5 years? make two years in it That is, what kind of a ruler is this for 7 years? The one whose name will go will have this forehead This must be a matter of his nose, one of these This thing is also extraordinary, seven year old alpha Rasool Allah has kept us so strong I will be in The Arabs’ heads will be in the ground will separate There will be a lot of trouble, there will be trouble which of these things will it be It is possible What is the connection between Mehndi and the picture here? But it has also been a 11130 These words of Nabi Salam have been copied in me family or he said that from among my family members There will be a person who will accompany me for 9 years till date and fill the land accordingly Will it only make a difference here, what really happened there 7 years became 9 years 2 years That means at least 2 terms which we have here today You will get this much hukmurani for 1 year In which there will be a lot of fire and a lot of justice here at Is There is no such use, it is very simple Fatima’s reign continues This was the medicine and leave the video alone Dabad says that we are the family of Rasullah You went in the messengership of Salam, mother she is madam’s child I have met you in many places in the world He said that this Saudi regime that has been established Earlier Sir Jameen was called Sharif in Arabia Was I will thank Allah for the great thing The thing is right for faces 7 years 9 years But what change does it make in the world? What statement will be made in the universe what changes in the sky and the earth sentence She will become someone who has lived what you just wrote Someone probably read out his story not me, after this the last one too Shahid has done it himself Our time is too much, this is our last What is the riwayat, what is stated in it is this on we cha okay in the next special I will question you in detail and about Mehndi Whatever remains of this situation is objectionable whatever happens depends on your understanding You have also said this inshallah Thank you very much for your time so far [music] Today, the Blue Moon is being celebrated The debate is fierce and the whole mehndi is present Is thanks a lot from us Whatever we have learnt till now what do we know from them It told will 7 years or maximum of 9 years 673 amount Now who is Pravah and she herself is ready to accept it Allah If you are a little gentle with the tank then this month When does it happen then it is the narration of Abu Saeed Khudri Rasool Allah Rasool Allah In whose time Allah sent down abundant blessings If the land does its best, it will go away His era will give justice to the people There will be many Moshis in me and the Ummah will get glory She will get seven or eight years of Maya it will be ok Khudri has already stated this topic earlier The only new thing in this is that The word Mehndi felt good for the first time I am wrong in this too will be His name will be Mohammed bin Abdullah And he is from the family of Rasulullah Salam yes so much Understand Mehndi i.e. the meaning of Mehndi Is These words were used in Rashidin’s case The messenger has become one with respect to father and salam It is narrated that in many sunnati v sunnatul fire rashidin That means you need do its leg also and in the same way which is mine After my After Rasgulla Salim, Syed Abu Bakra used these words about it is not made of ice in Arabic is used So you can also say Hadi Hiyat in Urdu Are If it is used in the case of Caliphate Even though it has been given there is no such thing now the whole thing He said that in the last days or after me These are the words of later on in the last days At the end of my nation there will be a ruler It must be Adil. There was a 9 year old ritual, now it is an 8 year old ritual He will rule for 9 years and his name will be in my name will be like that i.e. Mohammed will be the son of his father His name will be Abdullah, he is from my family will be When People will be happy when the oppression is strong Let’s finish it for this year right for eight years right for nine years She should apply mehndi, I request you I’ve already known that before in the messengership of aapsemm you have proved right in your statement We are not going to do it this way for the benefit of everyone If you use this word then it is mehndi a special picture for a special person It is not at all necessary to take any intention from this this is the name of these ravayaton, these are seven There is a tradition which you can read in the tavern It is protected to some extent by the tank If 10 people are saying that he is right then Somebody might be ponding over it as well All these things can be said about them too. but you can choose them Whatever you get to know from them, you decide Assume that he has some relation with her which is commonly used in Mehndi in our country. I hereby make an application Chuka this thing is within the Rawats themselves It has been said that the ruler will be in Arabia I have already said this and then finally The way the words of deposit are related to the world The same way they come about the last moment From the era of Rasool Allah in Edison whom should I do favours to This will give us strength to do something in our faith What is missing or added in a day? what happens is the thing that is being killed So I don’t have any problem with that man Take it, but assume that your Your prophethood is for till the doomsday when till the doomsday for every person is considered a prophet If you want to bring man upon you as a Rasool then It would have been evident because of your sincerity There were many things in our time too, which You said it has been completed like the Quran-e-Majeed There is testimony of Gala-e-Room in this and other such things These things are your thing, even if you talk about fishing Or should we keep mentioning the same patient again and again? Whatever we keep doing, Rasulullah sir This was done in response to Jibril Amin’s question Will a time come when I am before you These naked and barefoot Arabs are the ones who roam around Cowboy building changing into each other Will you be competing or Ankur, tell me now I will give the girl to my daughter Tabeer told Kiya that if it ends then This thing has happened in this era, we have I have seen this with my eyes, I salute you in this messenger a mark of his honesty in front of the people It is evident like this It will be a sign of welcome she is said to be sent from the sky As a result, Islam became dominant all over the world It will happen in Royton where did you find this If you have seen it, it means you should understand these promises completely. this is what it needs ok it’s nothing more than that Puri Rao D I have placed it before you now After this, if you allow, a moon would be filled Presenting this last narration in which The word mehndi has come, I have requested Given that it doesn’t make much difference gin can last I have claimed that it is mehndi Allama Iqbal about Maji Sodani I told you that life is till Mehndi brought the nation alive with his speech He has in fact created a great hatred in the minds of people a wave of minor revival Brought the country alive with Mehndi’s speech This is how we are in India Jaunpuri, perhaps you have seen that their Maharana Gulfam is mentioned in Smuggler When Azad took care of Bhaat at his place There are many people who have loved this whose name was also the same Mehndi gained more fame in the times of well this is his own inclination, he said if you did this also then I am requesting this to you I know that this is not a big deal, but Keep it aside for a while And then see what happens to the tradition itself. This is the situation, that is, it is true that badhyasana You should accept isravayat in this way I did this, can it make any significant difference Labs do not matter more than mehndi It doesn’t matter but where is the tradition in the hakim of mustadra That means the entire collection of Hadith has been sung to speak any of them Imam Bukhari and Imam Muslim who left it all to their own decency Descending There is no debate yet on why he left. So he said, I am its Iraq I am doing it this way it means that I have collected here what is left so this is actually al mustadra kala saiyan Is When was he born? In 331 i.e. in the fourth century When did you leave this world in 405 i.e. The fifth century lacks 16 salutes of the world 400 years after departure from If you are born in 321 then understand that born in the fourth century and then after The whole fourth century passed in this They have done all their work in the fifth century He departed from this world in the presence of So this word has no connection with Mehndi imam malik Nor did Bukhari Muslim accept it Well people should answer this very calmly we give In which there are narrations but very few There can be many kisses and there can be less things can happen either way the question is who is this Syed you are giving this thing to him How can it be guessed i.e. the last In this world one finds a famous personality Allah will create such a beloved The personality will emerge through which this happens will go and that will be the whole story How did you read and tell me all this? Can be ignored if left unattended So why did you leave it, this would be the question right? There is a narration of the Hakeem of Mustard and in the Hadith This Mutton is cooked in a very simple way They are doing it, they have other ways too Now let me tell you something interesting. what is the situation, how are the words This Abdullah Azmi saheb is going, I have You searched that this is my point of view that there is no such person or that there is no madrasa It is not the situation but our way of seeing the scene he is one of his attackers and he Big non-trivial [ __ ] tour in spot I have done it in this see this I have heard the same narration from Javed bin Abdullah. Imam Muslim also copied the same tradition we have read this that I told the Prophet (peace be upon him) listen la tajalo type tum bin One of my Ummah will be on zero right and He will be the book for this to Allah this Ummah used about people e.g. Imam o Hanifa Imam Shafi as our Used for the Imam of the Mosque In the same way it is against the Muslim rulers. This tradition is also used for your health Li this is the narration Javed Abdullah Raji Another mohaddesh supports this narration of Allah make a statement and I copied it and it This is not one of the common books, now see this Here was the word Yakul Ameer (we are rich) What will a Muslim say to Christ there? Rich Abdullah The same words of the rich in front of him and the fun the word ka has been Why did Imam Muslim call him Kabul? didn’t It is clear that this word itself There is also a way to enter Royton. before I put him in front of me and put my 55 I request you to describe the city of Nuqta that this report which I read before you These are the seven Raos, these are from the four Sahab from these very Turks The choice made by Abdullah Aadmi Sahib I told you to look at it There is nothing new in them, just the same things The only thing that has happened is that this is the compulsion which you have These two have been placed in front of me and also from sir He has practised The number of Rawaaya has increased to 14 and it is with This is what everyone is forced to do, these are the things that has been placed in front of you, sister, there is no new the thing is not among those where I searched for you how did he come in they also came in I have also explained this tradition to you. I don’t like this I take me in these But I have no objection, that is, I understand that I am sure that if Rasoolullah is not ashamed of the Arab There will be a ruler who will be considered great by the ancient people Faiyaz will be the ruler in whose era In Who has achieved great prosperity in Arabia? If it goes then what is so special about it, it is a machine If there is anyone like Rasgulla Salim then his comparison is If it is correct then the right to deny will be fulfilled No one can read Quran in the light of the day There is no objection in the light of principles in the mouth But whatever is to be stated If his Tazia is being done then it will be done Now if you do its Tazia by turning it around i.e. After all what is the reason that this is the compulsion of the Khalifa There will be excrement, Adil will rob without Jin The Caliph will be the caliph, this is the word Imam Muslim takes and if Imam Bukhari takes it then there is this get like will he be from my family or will he have my name Will it be in my name or his father’s name? There will be something in Bukhari Muslim in the name does not meet any of the I did not take it, that is, as much as I offered I don’t mind, but they They did not even give them what they had taken The only thing is that there will be a Caliph after me After me there will be a great person who will be very brave I have said that there is no time limit in it nor is there a name in it Isn’t it true that So if you make those Roytons your foundation that this was actually the matter, more on that later in second, third and fourth grade books Gradually relief started to come and in the middle After escaping from the Sadhna tank, he roamed to some extent Till now it has become acceptable, I will take this matter I have done the maths so that there is no one to believe them doesn’t it mean that it becomes clear that it is not the real thing If I talk about it then my point of view is that the real The matter was as much as Imam Bukhari said and Imam Muslim has taken All the other things are in the era of talk I kept getting involved in these Roytons Those people took as much as they could Puri used to get down and her mistake was who was he Which Caliph was that after which this Shukran In the times of If you take a look at the date So it seems clear that at the age of On this basis, I It is written that the meaning of mehndi is tradition mohadyasana tank’s corpse is not complete However, they descend in those which are true revelations A Fayyazi Khalifa The arrival of a Fayaz ruler has been reported and its mixture in syednavar rabbul This is the story of Aziz the Atima Rasulullah Salam I have become every Bharatpuri in the same way He declared his loss to the city When Imam Muslim took it, he said all these took out the details So it is understandable that he is the Caliph Rashid is against Rashida’s reality In the last 1200 years, the personality about whom I can’t put my finger on it, it’s not that there is power about them if the patient Someone was diagnosed and that patient is not admitted in India If it is complete then there is no glory in it kabul should be done so if you bukhari And if we take the tradition of Muslims, then their The mixture is in front of us, our praise is already there We have become a part of it but Allah’s We are thankful that you gave Salam in the prophethood that passing is complete if tapsilaat If I go then it is obvious that he will make a mistake again If you don’t become one, then you don’t cry, so what is the situation? that his name would not be Mohammed, this name would it wasn’t theirs It is also true that he will be from among the Ahle Bayt If it is not correct then whatever is the rest of the population If you want to call them Mehndi then I have already told you that there is no henna better than that In the prophethood of this you Salim yourself have spoken Faiyaz has said in the translation that my Opened fire Rashid Rashiduddin will also be Mahdin Rashid and Mahavir will also be there in reality Khalifa e Rashid and Khalifa e Mehndi e ki Mani that there are words in Arabic language so I I take it this way, I will disclose it again Before Dunn continues his argument, he says that Whatever we have in store, that is the way and has done extraordinary reduction and in the whole world Islam has subdivided its work into The ravayaten month which was done when madam it is the same but the number is a bit more There is an increase of two of the saheb but There is no difference in the content, these are the things that It is said in them and I requested you that if we accept all those things as well If we take it then the idea of ​​Mehndi which people I should stay for any of them The picture is not about a ruler Looks like some phishing was done Imran Khan’s wife Ausaf will be on his forehead this must be kushada, this must be naguchi There is nothing but Adil will be the match I have already done many orders etc. If you accept that Rao then no one There is nothing wrong with them, but those who There is a sense of opportunity in it, I saw it I don’t know where these rates are found Let us see, if it is worthy of recognition from the record point of view So what about the rest of Madison? Bukhari and Muslim are forming an opinion There are two strong ones preparing before us so that we may be fully aware of this Why did he leave me and I started crying I have left it but it was not a compulsion It was not an issue that it should be left alone However, if you want to see about Khalifa So this is what comes she has made them and the compelling statements in them Hazrat Umar bin Abdul has made a mistake Aziz, keep the whole thing in front of you After this, if you have any questions then I I will answer them as well and then I would like to that today we should tell people that this which is absolutely dismissed good night what kind of a way is this if this it’s ok if this is the detail this is the situation of events too if this We have presented something, this is the right more than this If something cannot be explained then it what is the reason for being born tasawwraj Whoever comes next, they should be given Lok Kabul we do it, we even narrate them They also present it before the people in their Khutba What is the lesson of this, i.e. these are two different worlds why are babies born one month old najahan this whole thing will run in this manner There is a huge stock lying there, we searched the gate Its gate’s width is less than the entire Mohadd scene it has been done, there is some selection in it He is helpless, we have put him before the people In this article also, further choice was made go and if they are understood, then their There comes a place in front of us where this is it second where whatever comes in front of the people gives them another picture in which many From which many stories are told Those events are also described in which But the tank has been done which has been decided People will not be able to tolerate it here People could not accept this What is the reason that other Jains accept him? What is the reason that books are written on this? What is the reason that we never maulama describes it i want I will answer this question for you but Before this debate gets going, what has been said so far Whatever objections and questions have been raised about what has been said If it happens, tell me this, I will answer it I give you everything, thank you very much The last narration from the picture and its The complete picture that I have after reading these Roytons comes in front of you, you described it as a you talked should I object to the people who ask this question and You often recite bhajans in other matters too About the verse of Bazm in Kharat ki Roytan how can this kind of thing happen It is mentioned in the books, please tell me When we open the Bukhari of Imam Bukhari, he He himself writes that in this book, I In Only the correct narration is mentioned and many are correct It is narrated that out of the fear of tawalat I have If you have left me then the first thing Please answer whether you would like to buy this house believe that a tradition is correct but if it is not in Bukhari then we will give it to him I will take it that I just told you The rest of the books in front of you are Raav the Rakhi and it is said that this is on mohtasana tank Puri comes down, they can be accepted All this is in Bukhari so he is not a Muslim I wouldn’t be there if I didn’t believe it I would have explained it to you but this question inspite of that where is the question that when This fan and its tank reduce the power of the tank is being reduced and the tank is being reduce the tank capacity and filter the radish When are you helping your helpless self by slamming Imam Malik has no ordinary status among them That means she is from this fan’s mother His book would have been among the immortal books. There are other compelling reasons too but a proper book He alone achieved the status and fame of Everywhere people received him Once upon a time the government wanted This book is considered as a Muslim custom Bukhari and Muslim should be made mandatory You call him Sanyaan, he has a special If there is any tradition among them then If people have great trust then these questions is what I have picked up that why is this The tafsilat is not there in them, that means that tafsilat which is not even suitable for the tavern tank It is worthy, I have also presented it before you I have told you all that I am with you, I have presented it to you all It is not Bukhari Muslim’s, it has been presented Even if they are taken into consideration, then they will be so much It is known, but nevertheless, it The question remains whether they speaking tafsilat There is a tradition in me that I do begging from you Are If the verse mentioned above is in Bukhari But you can try another strategy on it again If someone is worth everything there, It’s tanked because I’ve already applied for it Before this, after talking to a big Tuffyl I have told you that this message is from mahfilm Things are being described in relation to these All these fans will always be tanked I am a fan of Tankid, my love, that’s why I was born that he should do this when this kiss is in front of him Rao the came here, someone in relation to you sir When the matter was stated then this type of record was made The principles of the gate were made and their tank was made People care when told Well, this is a hadith, they understand it at this time Rasulullah Salam is narrating the matter while sitting Hey brother, this is not how people regard you A person is talking to me from He has met me and gone out to say something that those who heard him further stated Those who heard it further stated this reduced the size of the gate These are a few gates whatever happens if the saint for doing it with hands her meat is present Even after Bukhari Muslim, people continued doing it Bukhari herself has been becoming a Muslim vessel In our present times, in this era the Sheikh Albany has done this work on all the Siya you see his pocket race is correct Is This is the work of one of the present times Shoaib and No, it’s not less of a festival, just see who’s on the number They have tanked on things, this will continue I will also keep tanking them If we want to talk on principles i.e. on Sanat then this It will be told what Ravi’s character is. We will see whether Sanat is passing away or not It is not happening i.e. what is the date If all this is seen then it will never be less I have to wait, it will happen like this also, that is, in some Somewhere inside the tradition, there is a hidden cat there is some problem somewhere due to objection Alphas have come, these are called mard scene it shows the date I have already done one kalobium of it I will work similarly on the basis of the Quran Tanks will be built on the basis of Sunnah also There will be a tank on the foundation of Muslims too They will do this at some separate time How have I tried to read the Hadith I am doing it in my time and even now I am requesting you that what the scene has done Rao D has given him the title of Zahoor Mehndi I ordered all of those rates from in terms of what they have done in front of you See what compels them and then Majeed has gone ahead and requested that the scene Have done Imam Malik did not take any action, Imam Bukhari and The Muslims accepted only this much that a caliph or a khukhran would be Adil There will be a problem and people will also have a problem with Sayaji will divide We are also told that in the Fan or Hadith that when a narration is brought in which Central government is helpless, if the real content is from whatever is in it should be in some big book and it is tajudurg but in other books it has been Whose mistake has been kicking near me since then If the matter has come in which contact then it is ours So whoever is a fan of Hadith, whatever he ends with Tajuddin Turk and he which is tapsilat if Imam Hari did not copy So what does it mean when it runs away into the books? it makes a difference but that tapsila if you The debate is siled if it changes the whole picture Even if that foundation is absolutely done, if you give then this question will arise then this what is this look you have said a goal given tafsilat The tapsilat is that this thing is in Bukhari As an example it is told that Rasool Salim I got a Khojara made for myself, it’s a good phrase Badal people told about our absconding place But this pus was made for the surgery in this way The collected ones were sacrificed by Rasulullah Salam Someone gave it to me, this is the description, but If even then the imagination of the hut starts to occur If it happens, then will this be the description? I have shared with you that if this much is said You can assume that after me there will be another who If Fayyaz and Adil will also be there then this No one could even do this with their hands It may be so and I have requested this that a personality like Syed or Umar Abdul Aziz as A has also been done but if you want to know the rest If you look at things then look at yourself like his name will be with my name my father’s name along with his father’s name This will be called the kick from the front I am raising this question why not Kabul Was I made a request that I would take it i.e. i don’t have any objection if one such Ruler Adil Ruler Fayyaz Ruler He is going to come to Arabia and will last for seven to eight years He will establish a government and his name will be Mohammed bin If Abdullah is there then is he trustworthy? The family of Rasullah Salim is present in this Time can be any one of them If I get power I will be the last man standing I have already told you that he is from a Saudi family. The first Sharif who is from Mecca is Hashmi. Even time is flying by, don’t let their generations see it If you are doing it then there is no use man Well, but I go further and tell you this I am asking what is this tapsilat The companion is the same and he is narrating the same It is not possible that Wasim is so much In front of Bukhari in front of Imam Muslim why not kabul People should pay attention to this, I have an objection There is no objection to the whole thing No, his name will be Mohammed bin Na His Risalat will be from the family of Mahasabha Full Name Mohammed bin Abdullah Mahdi Or will mehndi be their symbol or will people Mehndi is applied due to guidance or faith I’ll say it doesn’t matter this way what if some ruler comes to our place Come to my country or come to your country He should go to Arab and do his hard work There is no secret of ability in this and it Neither the matter will become any belief nor any man will be made A patient is the one who tries to create sensation in the message In relation to Rao, I came and people made a statement If the patient is cured then its It means that Huzoori had said that if not if it happens then what would it mean It is because people have attributed the tradition to you I have made a mistake in giving in the way these I am looking at the tradition and I said yes This pissing is complete every time near me It has happened, that is, as much as is said if it is in muslim things can be seen but I requested you to give this Whatever I have stated along with Statements made by Abba to Rao the four If you accept it, what will be its consequences I mean that imagination of Mehndi waterfall It has been proven that those who make statements there is nothing from them, this is their tradition It is completely free from all kinds of tasabbhora Answer: It is said that there is a tradition of mine In front of you is the seventh salutation Without saying anything I bring every morning for Sumit In this century, we will strengthen such a person who The religious matters of the Ummah are considered as established and This will strengthen you and your mujaddhid there is an idea of ​​it, only question is asked Efforts are ongoing to fix them So if this system exists if you do, then next time you should accept that The rest of the story is yours That would not be proved in nirvayaton But if a person goes and he if he is a mujaddhid and he wants to do this then On his part, he did not say anything this time Nizam where did this happen i.e. so much talk There is a lot of talk about tanks on this too But let me just get the gist of it What is said in this that in every century such People will keep on being born who will celebrate the day of Allah We will keep the names of all such people alive Whatever number of days we live, we say the right thing Let me tell you so that by doing this I can tell you that what happened wrong everyone is missing this So what is new in this, what is the insult in this mention of and Here is the caliph, the ruler, but this is Arabia It is said there that a completely different thing was said and the second thing is that she is all alone should be believed from today too Now let us look at every period in the last 1200 years in me such people are born that the day that we do the inauguration, these are our days of inauguration An idol has been built here and people have Books have been written about our times Qadar Alam Maulana Syed Mulla Sahib Baududi the title of the book is tajidon or din That is, this is the whole process and it is obvious that this I need you as my messenger, my love, I have given you the Quran I gave you the Sunnah, this treasure of your traditions In relation to this, its results are presented before us in dini tasawrak are born people mistakes are also made in their tajdir to isolate them, to fix them like this N man is less and such shameful people are born I keep on becoming 10 in this era I give you kilos of such people in every era are born that if this whole system is worried about mehndi then trace it and tell me the counter question This is done to go back to the old glory There was no statement from that side, not even in Royton. If it happens then you tell me how to get it done We get some blueprints of this that Allah has said who is this the whole day of uddin kullu la If it will happen for Allah’s sake then it will be by now If it does not happen then Mehdi (peace be upon him) will come That is what they will do if it is not for Allah If it happens then who will do it, me and the others After that, after doing 10 jogur from last 35-40 years I have already told you that these verses have no connection It’s not from our time Rasulallah Salam the last prophet of Allah When Allah Ta’ala granted blessings to the position of prophethood If he sends any messenger then his By becoming God’s court for the mukahatabin comes this is his court statement and its As a result it became necessary that the land Or should the dominance of the heart prevail in Arabia? He is helpless, perhaps I will tell him the day Before leaving this world he completes every or did the bloodshed happen or did some leela happen After that what do you have to wait for i.e. Did you see that a person offered a feast He said that I am Allah’s messenger She did not even have status and respect for the elders It was not objected to by itself that Take the lava and burn it, the Quran wala is present, Rajni This type of person and some big man from corn why not the one that was selected but In spite of all this when it is said that this God This sir has come in the capacity of a prophet of He will go after establishing his supremacy on the earth reduced it now what are you waiting for Yes it has become a great sign, Allah Ta’ala So it has been stated in these verses What does this have to do with you What has been said in it are the difficulties of the Arabs In the combat Sahib was asked to fight Get up for this and this is what will come out of this war It will happen at the end of the day on this earth the matter in which it has been stated in this what is the connection with the times well we’re all moving on to the end Our time is also moving ahead here Is You mentioned Bukhari Muslim among them The word mehndi in the rituals There is no rich home, it is the word of Bukhari As soon as you start seeing the hand coming down, Bukhari will start All the people I see say this that by rich we mean Imams etc You should pick up the books of Ahle Sunnat akhayat pick up the books of the rest of their najriyat See all the Ulema have been muttafik for 1400 years There is a narration in which it is said before the doomsday Salute will be present for these people, Prayers will be offered on the deathbed, this is the only salvation My question to you is this revayaten what you have maybe everything will be ok no, they tell the man that this is capable Kabul I have this gay, he is a worthy person close to me too It can be Kabul i.e. it can be in When is not a question Since you applied it, I am saying that you made something special that completely the next It may be nearby, if it is okay then tell me please answer me this question how It is possible that such a large number of our Ulama Today Muslims are in greater numbers than Ikram’s Urban If you ask anybody, he will say the same thing Mehdi Ali Salam has to come to our Puri It is narrated that these are the things of their captivity It is included inside, the decision will come after this Don’t read Gangoli, read Shah Kashmiri inside Everybody says that they will come and decide Then how did this idea come into being again? I have offered myself to be on this I’ll chit-chat and tell you this but Talk to the patient about a small thing or which book of kaidah is birthday where is this mentioned or somebody else’s There is mention of Christ but no mention of If it is not there then it is not so because of this, that is The first jametarin book of the area is It is a belief, it is there, let’s see it show me somewhere so that these things are not Analysts are not lakhs, the kind of people who make statements We will do it later in the prison books for sure I have lived a long life but both of these big There is no mention in the books so that’s why I thought of the matter closely that it’s not And even if it is there, what will be mentioned from here I will bring another old one In Arabia his name will be Mohammed bin If he is Abdullah, people will call him Hidyaat aftakhenge will say the same way this side fire today is called the day in the same way will say as if Abdul Aziz had aged It is said so, I have requested that this No one is willing to accept the whole thing There is no obstacle, whoever wants can take it There is no debate in this, he has the idea but there is a debate and a conversation that is presented God’s beloved will come, God’s Mahmud will come in this The whole world has achieved glory So now just look at this whole thing The world will fill this court with these things Where was the statement made, the solution can be found from there also How do we solve this issue again? I am saying that if there are any other questions before or about these ravayatons which I have presented before you or the inscriptions on these if some people are doing naat scope Are you offering so much freedom then that Let me know so that I can talk to him again I created this to bring fun to you Now let’s proceed carefully as follows See what happens to us, the common man one must also understand that the real thing is that the traditions which take place have meaning to go away for a while Forget about these things and see that How Rivayat comes into existence That is, Rasoolullah Salam said again and again I repeat, the Quran is given by Sharda Puri Those who wrote it gave it to the group Those who remember him remembered him as a National The issue is in terms of the book of Allah It is done, Rasulullah Salam issued the Sunnah This prayer, this fasting, all these things This Sunnah was issued in all the Sahabahs. Issued in the capacity of Rasulullah Salam that the sir has to give it forward with isiyat love of a mother This breed still reaches us in the same capacity it’s been done I will leave this world with my beloved Even if people meet you after you leave and whatever happens, you get it too Stated those things in front of the people present do the Coming here he narrated what Rasullah Heard from Salim Referring to his mushayarad, he Rasool saw his beloved doing some work it was a great thing That is, Allah’s messenger punished someone for this Mehboob had done it, but never restricted it but stopped it on the spot You must also apply power ice in it I did not like it but people expressed their love They do it well and explain it to the listeners Even if they demand it, I will state it now Brother Have you heard it from someone in the village? and listened to let them do it, they did it too Those Lapatiya type of people who lied People talked about butter bill had to make something out of something had to make something out of something They too have made all this spread now why did it go means if all these things which The statement was being made, a Muslim was making the statement and it is assumed that Muslims If he makes a statement, he will make it correct, won’t he? to believe that the knowledge of Muslims i.e. the first century I am challenging this, why are we I challenged it because it was clearly visible that The matter is very simple GB Dastaan people reach from somewhere for Rawal duly dies and Rasulallah calls him I narrate it with reference to my beloved The first century is a great favor to the elders He was born in 1905 and after that one of his There is complete chain, these people have been doing this for two-three centuries What did they feel about the situation did that in reference to the Prophet of Allah things I have definitely seen what is bigger than this for me It is possible that if I become a Muslim, Masood will be the first What happened in the first century became bigger than what happened in the second century What could be the thing that would make me want you sir? If I tell you the things then what are the words of sir What will be the result sir, these statements will be made and You will be in love with them, you should have heard them too There can be a big ilaam in it i.e. If the Lord has spoken about something or Have you told me anything about getting Majeed done or something If you have pointed towards gamais then it is a big thing If possible, then valuable wealth is also a way It was like this that I would not have picked up the media and completed it. The Ummah only decides that whoever Kabul is making a statement, do it well The second could also have been that we would have been won’t even listen to anything what was the method that was devised and I did not adopt this method, The first person to run and love was the first person to practise K al- ilm took the Brother, what method have you adopted? Is this Rasgulla Salim’s great wealth? the things that are being stated in relation to These people have knowledge and action for us, sir. that there is a desire to laugh in them Your character is in them, your love is in them, we are in this We will not let Zakiro win but what everything we are mixing these, this is happening on mobile In these stories, there is something going on in them If the house is being included then what should do tank That is, the tavern tankid this fruit existence for him I came to you and I praised you for that that now we will see that what is being stated Is she worthy of being accepted? Is she worthy of being accepted? The peace that the muhaddishin made for Kabul In which I got three of them broken again and again Things will start to look like in the street and then they will also see this thing in the treatment We will see if it is against the Quran or not. It is not against the Sunnah to come here completely Make principles, I did not make these but I made Medina On this basis the work of Chhan Phatak started This Bukhari, this Muslim and their Besides, many other people are doing the same thing He is the greatest in this entire Ummah Reduced IMI This is what happened, this was the right attitude What would be the right approach in this? I I will tell you the approach and it is near me This is the approach to the important people of the Ummah We should adopt this, we have done it here what is that approach in calling the opportunity The approach is that when you do day x Or if you say anything about the day then We definitely have the Quran and Sunnah There is some export from Royton in safe condition If you want to do it then first check the result of the gate revayaten will be worthy only to them will consider it worthy of demand i.e. what mahsushin reduced He has said all this If it is present in the books then first look at it The opinion will be formed that this is very widespread There is a stock, I requested you that this We are talking about fun in this 500 rupees Those who have found their way are almost there what has been happening in the whole ummah put it in front first And first of all we will die from among them i.e. on the basis of intkalon and then Will they come down or at the most Hasan’s dead body But we will not accept anything lower than this. We will see what has been said and then We will then present the Sunnah before the Quran We will review it on the whole night It will descend then you will salute him in the prophethood would try to state it in relation to a This is the approach, I think this approach is correct I tell the Muslims that this is what they should do one should approach love if he is following tradition If you want to save yourself from fitness then this is the way means not to deny it, it is obviously a You will have to deprive yourself of a great blessing And neither gems nor any thing which is visible to the snake It is not known whether it will be accepted during the day or not What things can be entered through The right attitude will be given to the one who watches our scenes these are the burnt rolls sir please save the engine Marriage hall says this is disrespectful to sir The official Imam of Engine Malik Imam Bukhari and The Imam is a Muslim, this is the attitude They have adopted the option of searching and doing it Brother He will prepare them and give them his I will keep the point of view in mind if I keep it At this time, I have told you the little I have done that all these Zakira are in such large numbers The use of this vessel should be reduced to its selection It has started, see who has done it and how to Kabul There are seven leaders of Kiaba These people are helpless in this, I have written all this material if I put it in front of you then Sir, she is doing it now, this is an approach According to me this is correct Firoz but one the second man and that I request you Go to that era, i.e. in the messengership After the salam hundreds of thousands of things have spread they made a picture Imam Mehdi will come in the last days If you don’t do Kabul and read them, then all those things will happen The picture will be a beloved from Allah There will be a look from the sky The sky and earth will be filled with justice for Islam Galba will prevail These are the things, how did these things happen? It was a small matter that a Muslim had a I wish I would be the Caliph The spirit of Dastaan ​​Sarai is such that it is political Conditions developed later He became very famous among the people, The first century brought you widespread fame If you see it then look at one approach, this is so It has become very famous, it is such a famous thing all the famous thing is this tank is ok must see ravayaton but in ravayaton also right in royton also There is so much of water in the tank of Madhyasin too It has been said that he will be the caliph, this much has been said Isn’t it their responsibility to create chaos in Nazrul Masih A Muslim emir will be from within them Since so much has been said, this is actually the same thing yes people are making statements now what did you do instead of this When you leave here the thing that is spread You will open your mouth after their tank The gym was a spread out thing, the gym has been izaafe tasawra entered the gym dastan sarai Jim had already come, such was the TFSI lakh that If you look at them, a strange picture emerges. where did he keep all the pictures where after placing it you now say that When all this has happened through the action of the tank, after all this It’s the same thing, what difference does it make That means, let us assume that if Imam Bukhari takes this much I have taken that if one is great then it will be as great as the rest The details are being given and they will also be cancelled what do you need to do then this second one The approach is based on the results of this second approach Water falls on the whole surface The way they tanked all those things that the peace is over It was spread out and I applied for Rs. 500 present in large numbers at the moment At the same time, they got together politically But as you say, there were many debates and The result was that if this spreads then there is a The approach is that you enter from the Quran Sunnah If yes then Rao should first do muhaddissana separate the tank and then whatever raw material is there in it Whatever is expressed in them, it is full upon the friend stand on the foundation of what has happened and The second approach is that the king who lived in the first century It has spread in the world by keeping his fame in front take the idea from there and then look at it here You will notice even the smallest things There is mention of a rich man in old music There was a mention of a Caliph and here was this picture I fill them with colors and they ravayaten this The color is worth it, we will fill it with wire So these are the two approaches to me and did not give the people their rights like You can accept the approach as you deem fit, but Right next to me for the whole day The approach is what I’m joking about that there is no one weaker than the Messenger of Allah The talks will not be held even if we The first approach you described is this approach hamleen and in this point of view khalil You mentioned that muhaddisin netankit has reduced a question in the minds of people will you think that same sansouti will be in the same mohadd scene Masaan is open, please mention the rest of the scenes Those who reduced their presence on Hadith There are hundreds of Ulema, so they If you are reducing the tank from this but That imagination that I have in the society If he is present there then invite him as well are second attitude garba that this theekmumani has mentioned the imam Has a Muslim said this much or has Hakeem At the most, one word was added here yes this is ok but there is a future when this is done then the thing which is spread inside people I want to take the picture that is formed from them What am I to you? This is what I want to take If there was no agreement in this then the scene would have been like this Why was there a need to suffer? To reduce why the need for The meaning was one attitude that we would say that Whatever people are saying about sir In this context, this is a worthy example for us It is not possible for the whole ummah to decide this and What was the second way? The second way was to Whatever statement is made, we should accept it Third method We called it the humiliation of Murad aka Sumit Who among the people of knowledge has created that method of seduction what not we will do pride gate we will do tank We will do it, don’t listen but we will see and then After that if the Rasool mentions anything If she is on Ulla’s side, then she will be just as much as This friend will be completely destroyed from here onwards These people will not accept things from me There are two approaches and the rise we have here This is the approach that people usually prepare The second approach means whatever is spread in it if it happens its effect is accepted He is taken to the ashram. Aslam I am taken here what is done that if there is anything weak in it, then After all it is because after giving something there is something ahead Nothing has been taken from me nor from any rich person There has been talk about a Caliph, right? when these things have happened to them If you add it then you can see it later What is the result of one’s complete belief? I enter the day with emotion Then there is the relation of Mehndi The wait begins again for the world People fight for a great revolution inside And I saw in my time that Baj and He gives sermons every day on Namaz and this They say that he is about to be born, in fact what are the words that have been born and a few After a while many people kiss the same thing listen to the revayaten and while listening it is evident The thing is this full tank is not in front of the people If I had kept the right attitude towards the day This is not the case as this approach What I understand and what Maukeen’s approach is if this is the right approach then when he has to do it with Jain People will come forward and say look at this, This is a matter worth objection This is a matter worth objection The whole world believes in one thing It is said that a Muslim’s ijjama is based on what There is unity, that is, there is agreement on the fact that one Happiness will come from the sky, I have become obsessed with my beloved If you want to talk about Ijma also then that this is it, say that ijjamaiye of saurabh you Those talks have been spread openly When those things are stated on such a large scale It would have been done in the first or second century When the statement was made in the Majlisson, how many people You would have heard the tale with interest if there was an inn How would people have understood this? These are the ones whose work I have placed before you There are people who performed this service you asked if you can type on these as well You give them the responsibility of tankid too muhaddisson keep doing it yourself also, it’s good He taught at the campus Second chances will do some happy songs The third one will stitch him up He did things i.e. famous things what will be the status of useless things What status will it have if Twitter is born? if it happens then how does it arise and what i do for the gate filtering ravayaton We will keep working on the basis of these nights We are the humiliating witnesses of this entire Ummah at night maukeen’s zaaavier look this is what I have We have already stated before you that our The common narration here is that when a The matter has spread so widely and It might have happened to people here, so Did we find any effect or anything in the Quran I got this kind of thing, which day has brought it here I got this kind of tradition which I read about you It is kept in front that it will be the only one so let’s all go should be put together and placed before the people There’s a wrong way near me and I Varman says that as a result of this approach You can spend the day with stories of ravayaton Let’s hand over the gloves right in that The principle is that Quran and Sunnah are less The day stands on the foundation and all this time Zakira is there we will take his life and In this, they will stick to the principles that Sir Sean has established since the first century I have discussed this in my book Keanu, there is no need to make any mistakes in years Is there absolutely no need to add anything It’s a great value, I got them this time everything is in the light okay sir last Question on today’s special Kaur Mehndi As a common man I would like to be where This is from the study of this Puri which you gave Tell me the approaches and then do the tank of each thing By doing this he is giving real insight into the methodology what happened, with which saheb were you talking, she tells him put in order tell me this which is usually It is said that brother I am absolutely sure about you I am the one asking and I am asking in this land I have usually been saying the same thing it is said Ramji sahab said that during the day If you talk about new things then this is your approach This statement is actually something new compared to the first one that you do not accept the thing which is established I am here but this is your approach actually does not go towards the clarification of old things Please feel free towards this. That is, I accept that this is my own Muktanagar, I am stating all Mohan Sin, all maukeen thats it love her its divorce There is also a divorce in me, just look at this that I told you that all these The Rao who did the tank of ravayaton Abdullah Azmi is the author of the poem and Jameel Kamil is the author of the poem. in which she becomes 14 poor people and in which she becomes 6 poor people there is sound We have harassed you more The other person accepts it or accepts it in some other way Competition does not understand this knowledge of history so much The common people should also know that Praise is like looking at a tank in a wise manner Neither can it be made into cadets nor does it have any faith Should we make any addition to our day? It happens that we lack something during the day The whole day is covered in the Quran and Sunnah He is present and our praise is for Rasulullah It is praiseworthy that this great action of the tank was taken it is passing, it will keep passing in this matter We can’t show any weakness in this tank The implementation of this is our daily responsibility Because the matter concerns Allah’s messenger It is not possible for this to affect us Let’s get influenced by fame, one thing It has been spread as a tale To give it to me, please tell me a story After that it is on everybody’s lips But we have We Muslims have faced our punches A narration was spread that it is on our lips things that have spread and gained fame like this Rasul Allah will not accept it like this If the matter is stated in relation to this, then this it will go through the action of the tank and this they I have gone through all this, I have disclosed it I have placed it in front of you, okay, we are all very Thank you so much for your time here Time definitely ends in the hands of Mehndi from many tehsils, we have done three definite I have understood your point of view, Inshallah Next time there is prohibition in the house of Maas All the salutations are due to the Nazul of the Salam which They are objected to in front of you Till then I will keep you thank you very much thank you [music]

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Story of A Night on 26th November, 2024 at D-Chowk Islamabad – Study Notes

    Story of A Night on 26th November, 2024 at D-Chowk Islamabad – Study Notes

    The sources describe the D Chowk incident as a protest led by the PTI (Pakistan Tehreek-e-Insaf) party, orchestrated by Bushra Begum (wife of PTI founder Imran Khan).

    • The protest aimed to pressure the establishment for Imran Khan’s release.
    • Bushra Begum encouraged supporters to remain at D Chowk until Khan was freed, even if it meant death.
    • However, the protest ended with PTI leaders retreating and leaving supporters vulnerable.

    Criticisms of the Protest

    The sources criticize the PTI’s handling of the protest, particularly Bushra Begum’s leadership:

    • Bushra Begum is described as lacking political wisdom despite her enthusiasm.
    • The sources condemn the decision to leave supporters behind while leaders retreated.
    • Questions are raised about the conflicting reports of casualties, suggesting potential exaggeration for political gain.

    Broader Implications

    The D Chowk incident is presented as an example of the PTI’s manipulative tactics:

    • The author argues the PTI uses rallies and protests for self-interest, not for the benefit of the people.
    • They point out that PTI leaders, like Imran Khan and Bushra Begum, do not involve their own children in these potentially dangerous events.
    • The incident is used to illustrate a broader pattern of Pakistani politics where power is sought through connections with the establishment, not through genuine public service.

    The sources ultimately urge Pakistani youth to be wary of political manipulation and prioritize their own futures rather than blindly following political leaders.

    The sources portray the PTI’s involvement in the D Chowk incident as a manipulative attempt to leverage public support for personal gain. They specifically highlight the role of Bushra Begum, wife of PTI founder Imran Khan, in orchestrating the protest. Bushra Begum is depicted as a driving force behind the protest, urging supporters to remain steadfast even in the face of danger.

    The sources allege that the PTI’s true objective was to destabilize the government by inciting chaos and potentially even violence. They suggest that the party leadership, including Bushra Begum, were aware of the risks involved but were willing to exploit their supporters’ loyalty for their own political ambitions. This manipulation is further emphasized by the claim that PTI leaders shielded their own children from the dangers they exposed their supporters to.

    The sources also point to the PTI’s strategic use of religious rhetoric and symbolism during the protest, particularly by Bushra Begum, as evidence of their calculated attempt to emotionally manipulate the crowd. This approach is presented as a cynical ploy to bypass rational discourse and exploit the religious sentiments of the populace for political ends.

    The sources ultimately condemn the PTI’s involvement in the D Chowk incident as a betrayal of the trust placed in them by their supporters. They argue that the party leadership prioritized their own power struggles over the well-being of the people they claimed to represent, leaving their supporters vulnerable and disillusioned.

    Bushra Begum’s Role in the D Chowk Incident

    The sources portray Bushra Begum, the wife of PTI founder Imran Khan, as a key figure in the D Chowk protest. She is presented as the driving force behind the event, even more so than the PTI leadership itself.

    • While some PTI officials preferred a less confrontational approach, Bushra Begum insisted on the D Chowk location, believing her own party officials might compromise with the establishment.
    • She actively encouraged supporters, using speeches and oaths, to remain at D Chowk until Imran Khan was released, even if it meant death.

    However, the sources are highly critical of her leadership and the protest’s outcome:

    • Despite her enthusiasm and sincerity, Bushra Begum is described as lacking the necessary political wisdom to navigate such a complex and sensitive situation.
    • Her approach is characterized as overly emotional and naive, relying on grand gestures and fervent pronouncements rather than strategic planning and adaptability.
    • The sources condemn the decision to leave supporters behind while leaders, including Bushra Begum, retreated, calling it a betrayal of their trust and a demonstration of placing self-interest above the well-being of the people.
    • The author specifically questions Bushra Begum’s decision to leave the supporters, contrasting it with a hypothetical scenario where she chooses to stand with them and face the consequences.

    The sources highlight a disparity between Bushra Begum’s rhetoric and actions, suggesting a degree of hypocrisy:

    • She encouraged others to risk their lives for the cause while her own children were not present at the protest.
    • This is compared to a drug dealer who keeps their children away from their dangerous business.

    The sources ultimately frame Bushra Begum’s role in the D Chowk incident as a cautionary tale, illustrating the dangers of political manipulation and blind faith in leaders who prioritize personal gain over the welfare of their supporters.

    Political Strategies in the Context of the D Chowk Incident

    The sources, while focusing on the D Chowk incident and its aftermath, offer insight into various political strategies employed by different actors.

    PTI’s Strategies: Populism and Manipulation

    The sources heavily criticize the PTI’s political strategies, particularly those employed during the D Chowk protest. These strategies are characterized as populist and manipulative, aimed at mobilizing public support for the party’s own interests rather than genuine public service.

    • The sources highlight the PTI’s use of emotionally charged rhetoric and symbolism, especially religious themes, as a way to bypass rational discourse and sway public opinion.
    • Bushra Begum’s impassioned speeches and calls for unwavering commitment, even in the face of potential death, exemplify this approach.
    • The sources argue that the PTI’s decision to hold the protest at D Chowk, a highly sensitive location, was a deliberate attempt to provoke a reaction from the establishment and escalate the situation.
    • This strategy, according to the sources, was driven by a desire to create chaos and destabilize the government for the PTI’s political advantage.
    • The sources further accuse the PTI of hypocrisy, pointing out that while they encouraged supporters to risk their lives, the party’s leaders, including Imran Khan and Bushra Begum, shielded their own children from these dangers.
    • This is presented as evidence of the PTI’s willingness to exploit the loyalty of their supporters for their own gain.

    Establishment’s Strategies: Force and Control

    The sources also allude to the political strategies employed by the establishment in response to the PTI’s actions. These strategies are characterized by the use of force and a desire to maintain control.

    • The sources suggest that the establishment, likely referring to powerful entities like the military or intelligence agencies, exerted pressure on the PTI to abandon the D Chowk protest.
    • The swift crackdown on the protest and the alleged presence of armed individuals within the crowd suggest a readiness to use force to quell dissent.
    • The sources criticize the establishment’s heavy-handed approach while also acknowledging their effectiveness in containing the situation.
    • They warn against the dangers of excessive repression, predicting that such actions will eventually backfire and lead to further instability.

    Alternative Strategies: Reason and Public Service

    The sources advocate for alternative political strategies based on reason, dialogue, and genuine public service.

    • They criticize the PTI’s reliance on emotional appeals and manipulative tactics, urging the Pakistani youth to think critically and prioritize their own futures rather than blindly following political leaders.
    • They implicitly support engaging with political issues through reasoned debate and peaceful means rather than resorting to violence or disruption.
    • They emphasize the need for politicians to prioritize the well-being of the people they represent, placing public service above personal ambition and power struggles.

    The D Chowk incident, as portrayed in the sources, serves as a case study in contrasting political strategies. The incident highlights the dangers of populism, manipulation, and the use of force, while advocating for a more reasoned and ethical approach to political engagement.

    The Plight of Pakistani Youth: Exploitation and Disillusionment

    The sources paint a bleak picture of the plight of Pakistani youth, particularly those involved in political movements like the PTI. They are depicted as victims of political manipulation, their idealism and energy exploited for the personal gain of ambitious leaders.

    • The sources highlight the dangers these youth are exposed to, particularly during events like the D Chowk protest, where they are encouraged to risk their lives while their leaders remain protected.
    • This disparity is exemplified by the contrast between Bushra Begum’s impassioned calls for unwavering commitment, even in the face of death, and the absence of her own children from the protest.
    • The author draws a parallel with a drug dealer who keeps their own children away from their dangerous business, highlighting the hypocrisy inherent in the PTI’s approach.

    The sources lament the wasted potential of these young individuals, whose talents and passion are squandered in futile political battles.

    • They argue that participation in these movements ultimately leaves the youth with nothing but regret and disillusionment, hindering their personal growth and future prospects.
    • The author directly addresses the youth, urging them to break free from the manipulative slogans of these leaders and prioritize their own futures.
    • They are encouraged to critically evaluate the motivations of political figures and question why those leaders’ own children are absent from the rallies and protests.

    The sources suggest that the broader political landscape in Pakistan contributes to the youth’s predicament.

    • The emphasis on connections with the establishment, rather than genuine public service, perpetuates a system where power is concentrated among a select few, leaving the youth with limited opportunities for meaningful political participation.
    • This lack of representation and agency fuels a sense of frustration and disillusionment, pushing some towards more extreme ideologies or actions.

    The sources, while focused on the specific context of the D Chowk incident and the PTI, offer a broader commentary on the challenges faced by Pakistani youth. They serve as a call for greater awareness, critical thinking, and a rejection of political manipulation, urging the youth to forge their own paths and build a better future for themselves and their country.

    • The author criticizes PTI’s leadership, particularly Bushra Begum (Pinki Perni) and Imran Khan, for their handling of the D Chowk protest, calling it a betrayal of their supporters.
    • The author questions the wisdom of the aggressive protest strategy, arguing that it lacked political nuance and led to unnecessary hardship for the participants.
    • The author accuses the PTI leadership of hypocrisy for inciting their followers to potentially violent actions while their own families remained safe.
    • The author condemns the alleged involvement of armed groups and questions the motives behind pushing for a potentially chaotic situation in Islamabad.
    • The author urges the youth to think critically and not blindly follow political leaders, while also warning the government against overreach and suppression of legitimate political activity.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Building LangGraph Applications and AI Agents

    Building LangGraph Applications and AI Agents

    The source material provides a comprehensive introduction to Langraph, a framework for building and managing AI workflows, often in conjunction with Langchain. It begins by explaining core concepts such as the state graph (the blueprint of the workflow) and runnables (standardized executable components), illustrating their relationship to nodes and the importance of message types like human, AI, system, tool, and function messages, often familiar from LLM APIs. The text then progressively guides the reader through building simple sequential graphs, handling multiple inputs, implementing conditional logic for routing with conditional edges, and finally, constructing looping graphs. Building upon these fundamentals, the source transitions to the exciting world of AI agents, demonstrating how to integrate LLMs to create a basic chatbot, enhance it with a simple memory mechanism using message history, and develop more sophisticated agents like React agents capable of using tools for reasoning and acting, culminating in the creation of a practical document drafter project featuring human-AI collaboration and an introduction to Retrieval Augmented Generation (RAG) agents that interact with a knowledge base. Throughout the examples, the importance of clear docstrings for tools and systematic graph construction is emphasized, highlighting how Langraph facilitates creating robust and modular AI applications.

    Langraph State Graph Fundamentals

    Based on the sources provided, here is a discussion of the State graph in Langraph:

    The StateGraph is a fundamental and important element in Langraph. Its main purpose is to build and compile the graph structure. You can think of the StateGraph as a framework that helps you design and manage the flow of tasks in your application. It manages the nodes, the edges, and the overall state, ensuring that the workflow operates in a unified way and that data flows correctly between components.

    An analogy used to describe the StateGraph is a blueprint of a building. Just as a blueprint outlines the design and connections within a building, the StateGraph defines the structure and flow of your workflow or application.

    When coding in Langraph, the StateGraph is often one of the first elements you actually interact with. To create a graph in Langraph, you use the StateGraph attribute and initialize it by passing in your state schema. This state schema is typically defined using a class inheriting from TypeDict, such as AgentState, which holds the attributes that represent the shared data or context of the application. After defining the state schema, you then use the StateGraph instance to add nodes and edges to build the complete graph structure. Finally, the graph structure is compiled using the compile() method of the StateGraph instance.

    Langraph Runnables: Building AI Workflows

    Based on the sources, here is a discussion of Runnables components in Langraph:

    In Langraph, a Runnable is defined as a standardized executable component. It serves as a fundamental building block that performs a specific task within an AI workflow. The concept allows for the creation of modular systems.

    An analogy used to describe Runnables is that of a Lego brick. Just as Lego bricks can be snapped together to construct complex structures, runnables can be combined to create sophisticated AI workflows.

    The sources contrast a Runnable with a Node, stating that a runnable can represent various operations, whereas a node in Langraph typically receives a state, performs an action on that state, and then updates the state. The distinction might not be immediately clear but is expected to become more apparent in coding sections.

    The term “runnable” also appears in the context of defining conditional edges, specifically in the type hint for the path parameter as hashable runnable any. However, the source indicates that this complexity is not something to worry about initially.

    Langraph and Langchain Message Types

    Message types are standardized components within Langraph that represent different parts of an AI workflow, particularly interactions with large language models (LLMs). They are fundamental building blocks, treated as inbuilt data types by the developers of Langraph and Langchain.

    Several specific message types are discussed in the sources:

    • Human Message: Represents the input from a user. When invoking a graph with user input, it is often provided as a Human Message. These messages are stored in the state, often as part of a list, to maintain conversation history. The content of a human message remains unaltered by the AI or other components. You import HumanMessage from langchain.schema.messages or langchain_core.messages.
    • AI Message: Represents responses generated by AI models. The content from an LLM’s response is extracted and converted into an AI Message to be appended to the state’s message history. Like Human Messages, they are stored in the state to maintain conversation history.
    • System Message: Used to provide instructions or context to the LLM. Examples include prompts like “You are a helpful assistant”. Explicitly using the SystemMessage type when invoking the model is preferred over just passing a string, as it enhances readability and signals to the LLM that it is a system instruction.
    • Tool Message: Represents data passed back to the LLM after a tool has been called. This data can include the content generated by the tool and the tool call ID. Tool messages are used in workflows involving tools, such as the React agent, to show the results of tool execution. The content of a Tool Message can also be used in the graph’s logic, for example, to determine the next step based on which tool was used.
    • Function Message: Similar to the Tool Message but specific to function calls. (The sources do not provide further detail on this type beyond its mention).

    At the core of these specific message types is the BaseMessage. BaseMessage is described as the foundational class for all message types in Langraph. It acts as a parent class from which types like AIMessage, HumanMessage, ToolMessage, and SystemMessage inherit properties. These child classes may also have their own unique properties.

    Message types play a crucial role in defining the structure of the AgentState, which we discussed previously as the shared data structure for a graph. The messages attribute within the state is typically defined using type annotations like List[HumanMessage] or List[Union[HumanMessage, AIMessage]] when memory is needed. A more advanced and commonly used way to define the state messages is using annotated with Sequence[BaseMessage] and a reducer function like add_messages. This structure, facilitated by these message types and supporting functions, automatically handles state updates for sequences (like chat history) by appending new messages rather than overwriting existing ones, thereby preserving the conversation flow.

    By representing different interaction types as distinct message types and storing them in the state, Langraph enables the construction of stateful AI applications like chatbots with memory, where the entire history of messages can be passed to the LLM for context. They are also important for structuring output and logging the workflow progress, as demonstrated by functions that format and print different message types. Utilizing these predefined message types within Langraph and Langchain libraries provides a balance between flexible control over the workflow and reducing the need to write extensive manual code for managing conversations.

    Langraph Node Actions Explained

    Based on the sources and our conversation history, here is a discussion of Nodes actions in Langraph:

    In Langraph, a Node is defined as an individual function or operation that performs a specific task within the graph. Think of nodes as fundamental building blocks or individual stations on an assembly line, each doing one specific job.

    The primary action of a typical node is to receive the current state of the application as input, process it, and then produce an output or an updated state. This state is a shared data structure holding the current information or context of the entire application. The input to a node function is typically the AgentState (or whichever class represents your state schema) [6, 9, 10, 12, 16, 21, 24, 25, 30, 35/36, 41], and the expected output is the updated state of the same type [6, 9, 10, 12, 16, 21, 24, 25, 30, 35/36, 41].

    When building a graph, the node’s action is defined by a normal standard python function. This function is passed as the second parameter to the graph.add_node() method. The first parameter is the chosen name for the node within the graph structure.

    Common types of actions performed by nodes include:

    • Updating or processing data within the state: This involves accessing attributes of the state, performing operations (like string concatenation, arithmetic, list manipulation), and assigning the results back to the state’s attributes. For state attributes that are sequences like message history, the action might involve appending new items to the list rather than replacing it entirely, especially when using reducer functions like add_messages.
    • Invoking Large Language Models (LLMs): Nodes can perform the action of calling an LLM, often by passing the current state’s messages to the model using methods like lm.invoke() [24, 25, 30, 35/36, 41]. The node’s action then typically involves extracting the relevant part of the LLM’s response (like response.content) and updating the state, frequently by appending the AI’s response to the message history.
    • Running Tools: While tools are functionalities used within nodes, a special kind of node called a Tool Node has the main job of running a tool. The action of a Tool Node is to execute the configured tools and connect the tool’s output back into the state. The tools themselves perform specific tasks, and the Tool Node facilitates integrating their results into the workflow.
    • Making Decisions (Router Nodes): Some nodes, particularly those used with conditional edges, don’t necessarily modify the state but perform the action of deciding the next node to execute based on the current state’s content [16/17, 22, 31, 36]. Their “action” is to return a string representing the name of the next edge to follow [16/17, 22, 31, 36]. The logic within the function (often using if/else statements) determines which edge name is returned [16/17, 22]. These nodes are crucial for implementing conditional logic and loops in the graph structure.

    Docstrings are also important for describing a node’s action, especially for nodes or tools that interact with LLMs in agentic workflows. They help inform the LLM about the function’s purpose and expected behavior. For tools, a docstring is often necessary for the graph to work correctly.

    In essence, node actions are the specific operations performed by the Python functions linked to nodes in the graph structure. They are responsible for receiving, processing, and updating the shared state, or for directing the flow of execution through the graph based on logic applied to the state.

    Langraph Conditional Edges Explained

    Based on the sources and our conversation history, let’s discuss Conditional edges in Langraph.

    Conditional edges are a type of specialized connection between nodes in a Langraph structure. Unlike a standard edge which dictates a fixed sequence of execution (e.g., always go from Node A to Node B), a conditional edge allows the graph’s flow to change dynamically based on specific conditions or logic applied to the current state of the application.

    You can think of a conditional edge like a traffic light or an if/else statement. The “condition” (like the light color or the result of the if check) decides which path to take next. This capability is crucial for implementing conditional logic and branching in your workflow.

    To implement conditional edges in Langraph, you use the graph.add_conditional_edge() method. This method typically requires three main components:

    1. Source Node: The node from which the conditional edge originates. This is the node where the decision is made about the next step.
    2. Decision Function (Path): A Python function that takes the current state as input and returns a value (often a string or boolean) that dictates the next edge to follow. This function embodies the conditional logic (e.g., checking a state attribute’s value). It’s important to note that when a node’s primary role is just to make a decision for a conditional edge without modifying the state, the function returns the edge name/key rather than the updated state. If the function itself doesn’t return the state, you might need to use a pass-through like lambda state: state when adding the node if the node requires state output, though the value determining the edge is what the conditional edge uses.
    3. Path Map: A dictionary that maps the possible return values from the decision function (the keys) to the names of the target nodes (the values). This tells Langraph which node to go to for each possible outcome of the decision function. For example, if the decision function returns the string ‘continue’, the path map specifies which node is associated with the ‘continue’ key.

    Conditional edges are particularly important for creating loops in the graph structure. By using a conditional edge, you can direct the flow of execution back to a previous node based on a condition, allowing certain parts of the graph to be executed repeatedly until the condition is met. This is seen in the looping graph example where a should_continue function determines if the counter is less than five, returning a ‘loop’ edge that goes back to the ‘random’ node.

    They are also fundamental in building more complex agent architectures like React agents and the Drafter project. In these cases, a conditional edge allows the agent to decide whether to use a tool (loop back to a tool execution node or the agent itself to process tool output) or to finish the process (go to the end point). The logic in the decision function checks the state (e.g., if the last message contains tool calls, or if a specific tool like ‘save’ was used) to determine the next step.

    In summary, conditional edges are a powerful feature in Langraph that enable dynamic workflows by allowing the graph’s execution path to be determined by logic applied to the current application state, implemented using add_conditional_edge, a decision function returning a path key, and a path map linking keys to target nodes.

    LangGraph Complete Course for Beginners – Complex AI Agents with Python

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Creating Reports and Visualizations with Excel and Power BI

    Creating Reports and Visualizations with Excel and Power BI

    This extensive text provides a detailed tutorial on using Excel and Power BI for data analysis, emphasizing how to convert raw data into actionable insights. It covers fundamental techniques like sorting, filtering, and using Flash Fill in Excel, then moves to more advanced tools such as Pivot Tables for summarizing data and Power Query for importing, cleaning, and transforming data. The document highlights how Power Query is particularly useful for handling data from external sources and combining multiple files, positioning it as a significant advancement in data manipulation capabilities. It then introduces Power Pivot and the concept of a data model to manage relationships between multiple tables and handle large datasets more efficiently, contrasting it with the limitations of relying solely on worksheet formulas like XLOOKUP. Finally, the text explores Power BI Desktop and Power BI Online for creating interactive visualizations and reports, demonstrating how to import data, build data models, write DAX formulas, and share insights, showcasing the power of these tools for analyzing large volumes of data and creating dynamic dashboards.

    Excel and Power BI Data Analysis Tools

    Based on the sources, Data Analysis is defined as the process of converting raw data into useful information. The purpose of this conversion is to gain insight and make decisions. The source mentions that there are various synonyms for data analysis, including data analytics, analytics, business intelligence, and data science.

    The sources highlight that almost every tool used for data analysis requires a proper data set. A proper data set generally includes a field name at the top and empty cells all the way around.

    Several tools are presented in the sources as being used for data analysis in Excel and Power BI:

    • Sort and Filter: These are fundamental tools available in Excel tables, Pivot Tables, Power Query, Power Pivot, and Power BI Desktop. Sorting organizes records in a table, for example, from smallest to largest (a to z) or largest to smallest (z to a). You can sort by one column or multiple columns. Filtering shows only certain records based on one or more conditions. Filters can use various logical tests like AND, OR, or BETWEEN. A particularly helpful use of filtering in the Excel worksheet is to extract specific records. Filtering can also be data type specific, offering different options for dates, text, and numbers. When filtering, the records that match the criteria are shown, and the rest are hidden.
    • Flash Fill: This is a one-time, simple data cleaning tool in Excel. It can be used if there’s a consistent pattern in the data. You provide an example by typing the desired output next to the original data, and then Flash Fill attempts to apply the pattern to the rest of the column. It’s not recommended for tasks that need to be repeated or refreshed with new data; for those, formulas or Power Query are suggested.
    • Pivot Table: This is an amazing tool to build reports and charts. It’s particularly useful for summarizing data, such as survey results, showing counts and percentages. Standard pivot tables are suitable for small data sets within Excel and simple calculations like count and percent of total. They allow you to drag fields to areas like Rows and Values to create unique lists and calculations. Pivot tables can connect to data from various sources, including tables or ranges in the worksheet, external data sources, data models in Power Pivot, and data models in Power BI online. A key point is that with standard pivot tables, you have to repeatedly add number formatting to fields.
    • Power Query: Described as the greatest Excel tool invented since the pivot table. It excels at importing data from outside of Excel (like text files, other Excel files, databases, websites), cleaning data (e.g., splitting columns, extracting information), transforming data (e.g., removing columns, calculating new columns, combining tables), and loading data to the Excel worksheet, the pivot table cache, or the Power Pivot data model. Power Query is also present in Power BI Desktop, functioning the same way. Power Query memorizes the steps applied during importing, cleaning, and transforming, allowing for easy refreshing of data. These steps form the foundation of a Power Query query. Power Query has a functional language called M code, which is used for data mashup.
    • XLOOKUP function: A worksheet formula that can be used in data analysis, particularly when you need to look up values from one table and bring them into another column in your main table. It’s presented as a modern replacement for older lookup functions like VLOOKUP. XLOOKUP is appropriate when the data is already in the Excel worksheet, the data set is not excessively large (e.g., 43,000 rows is considered not a lot), and the solution can be created using standard pivot tables and Excel charts.
    • Power Pivot: An Excel feature that creates data model pivot tables. It allows for creating relationships between related tables, which helps avoid using many lookup formulas like XLOOKUP. Power Pivot enables the use of more than one table in a pivot table report. It is also capable of importing large amounts of data into a behind-the-scenes columnar database that compresses the data and can hold millions of rows. Power Pivot allows for the creation of reusable, formattable formulas called DAX measures, which are used in data model pivot tables. In Power Pivot, DAX measures are built in the measure grid below the fact table.
    • DAX Formulas: Data Analysis Expressions, a function-based formula language used in Power Pivot and Power BI Desktop. There are two types: DAX measures (reusable formulas dragged into data model pivot tables) and DAX calculated columns (formulas that add a new column to a table). Dax measures calculate based on the conditions or criteria (filter context) in the pivot table. This filter context makes calculations efficient, especially with large data sets. In Power Pivot, the assignment operator for DAX measures is a colon followed by an equal sign. In Power BI Desktop, it’s just an equal sign.
    • Data Model: Created in Power Pivot or Power BI Desktop, it involves multiple tables with relationships defined between them. Dimension or lookup tables, which contain unique lists (the “one” side of a relationship) and attributes, are related to fact tables, which contain repeating values (the “many” side of a relationship). Creating relationships in the data model replaces the need for lookup formulas like XLOOKUP and allows dragging and dropping fields from any related table into reports. The data model is stored in a behind-the-scenes columnar database.
    • Power BI Desktop: A free Microsoft tool designed for creating data models, visualizations, and reports. It contains the same Power Query and Power Pivot tools found in Excel. Power BI has a wider variety of visuals and reporting tools compared to Excel, and its visuals are interactive. Data models created in Excel Power Pivot can be imported into Power BI Desktop.
    • Power BI Online: Requires a license and allows users to upload Power BI Desktop files or Excel files with Power Pivot data models. This makes reports, visuals, dashboards, and data models shareable and universally available to assigned groups, serving as a single source of truth for data. Dashboards in Power BI Online are specific locations where you can pin important information (tables, charts, visuals, etc.) from various reports and workbooks for easy presentation and sharing. Dashboards should present information needed for good decisions.

    The sources provide examples illustrating these tools:

    • Example 1 shows using Sort, Filter, and Flash Fill.
    • Example 4 (from video 3) shows summarizing survey results with a Pivot Table.
    • Example 5 demonstrates using Power Query to import, transform, and refresh data from a website CSV file.
    • Example 6 shows using Power Query to combine multiple files into one table, calculate a new column, and load it to the Pivot Table cache.
    • Example 7 illustrates solving a data modeling problem (needing data from multiple tables) using worksheet formulas like XLOOKUP to add helper columns before creating standard Pivot Table reports and charts. This approach is suitable for smaller data sets.
    • Example 8 shows solving the same data modeling problem as Example 7 but using Power Query to import data from an external Excel file and load it directly to the Power Pivot data model. This approach is better for larger data sets and allows creating relationships between tables and reusable DAX measures. It also introduces concepts like the one-to-many relationship and hiding fields in the data model.
    • Example 9 uses Power BI Desktop for the same data source as Example 8, demonstrating importing data with Power Query, loading it to the data model in Power BI Desktop, and creating interactive visuals and dashboards. This approach is preferred for interactive and shareable visuals.
    • Example 10 shows importing 7 million rows of data from an SQL database into Power BI Desktop using Power Query. It discusses the efficiency of the columnar database for handling big data and creating calculated columns and measures using DAX formulas (including the concept of iterator functions like SUMX) to calculate values like revenue and cost. It also covers creating a date table using DAX and marking it as a date table.

    In essence, data analysis, as presented in the sources, is about transforming data for insight and decision-making using a range of tools in Excel and Power BI, from basic sorting and filtering to advanced data modeling with Power Query, Power Pivot, and Power BI Desktop, often involving calculated formulas using XLOOKUP or DAX. The choice of tool often depends on the size of the data, the source of the data, the complexity of transformations needed, and the desired output (e.g., simple report vs. interactive dashboard).

    Mastering Power Query: Data Transformation in Excel and Power BI

    Based on the sources, Power Query is highlighted as a fundamental and highly valuable tool in the process of Data Analysis, which involves converting raw data into useful information to gain insight and make decisions. It is described as the greatest Excel tool invented since the pivot table.

    The primary reason for Power Query’s significance is that while tools like the Pivot Table were amazing for building reports and charts, there was a missing piece for importing data into Excel and fixing or cleaning bad data. Power Query fills this gap.

    Power Query is not exclusive to Excel; it is also available in Power BI Desktop and functions the same way in both applications.

    Key Capabilities of Power Query:

    • Importing Data: Power Query excels at bringing data into your analysis environment from various sources outside of Excel. These sources include:
    • Text files (like CSV, TXT)
    • Other Excel files
    • Databases (like SQL databases)
    • Websites
    • Folders (to combine multiple files)
    • Many other data sources
    • Cleaning Data: It provides tools to fix issues or extract specific parts of your data. Examples include:
    • Splitting columns (e.g., splitting first and last name)
    • Extracting information (e.g., extracting a date from a date time field)
    • Handling delimiters (e.g., tab delimiters in text files)
    • Transforming Data: Power Query allows you to reshape and modify data before loading it. Examples include:
    • Removing unwanted columns
    • Calculating new columns (e.g., multiplying Units by Price to get Sales)
    • Combining multiple tables into one table
    • Changing data types
    • Filtering data (e.g., filtering files by extension in a folder import)
    • Transforming text (e.g., changing text case to lowercase for filtering)
    • Removing relational columns automatically added during database import

    The Power Query Editor:

    Transformations are performed in the Power Query Editor, which is a separate window on top of the Excel or Power BI Desktop window. The Editor provides a preview of the data.

    • Applied Steps: One of the most important features is the recording of Applied Steps. Power Query memorizes every step applied during importing, cleaning, and transforming. These steps are rerun automatically when the data is refreshed. You can view the data preview at each step of the process.
    • M Code: Behind the user interface and applied steps is a functional language called M code, which Microsoft calls the data mashup language. While Power Query writes this code automatically when you use the user interface, you can view it in the formula bar or the Advanced Editor, and even write your own M code. M code is case-sensitive, which is different from the Excel worksheet.

    Loading Data:

    After cleaning and transforming data in the Power Query Editor, the results need to be loaded. The loading destination depends on whether you are using Excel or Power BI Desktop and the purpose of the analysis.

    • In Excel:
    • The default is to load the data as an Excel Table on a new worksheet.
    • Using Close & Load To, you can control the destination:
    • Load as a Table to a specified worksheet location.
    • Load to the Pivot Table Cache (for creating Pivot Tables directly from the query output without first putting it on a worksheet).
    • Load to the Power Pivot Data Model (used when working with multiple tables and relationships).
    • Only Create a Connection: This option stores the query definition in the Power Query Editor but does not load the data anywhere visible in the worksheet. This is the crucial option when importing data for the Data Model, especially when combining it with the Add this data to the Data Model option. It prevents duplicating the data source by putting it in a worksheet table and the data model.
    • In Power BI Desktop:
    • The Power Query Editor has a Close & Apply button. This closes the editor, applies the steps, and loads the data only to the columnar database in the Data Model. There is no option to load directly to a worksheet as in Excel, as the primary destination is always the data model for creating visuals and reports.

    Benefits and Use Cases:

    • Automation and Refreshing: Because Power Query memorizes the steps, when the source data updates (e.g., a new monthly file is added to a folder, or a website CSV changes), you can simply click Refresh, and Power Query will re-import, re-clean, re-transform, and reload the data automatically. This eliminates repetitive manual tasks.
    • Handling Different Data Structures: Power Query is adept at handling various delimiters (comma, tab) and structures (single tables, multiple files in a folder).
    • Data Modeling: Power Query is essential for importing data from external sources into the Power Pivot or Power BI Data Model. This allows for building relationships between tables and avoiding the need for numerous lookup formulas like XLOOKUP in the worksheet, especially when dealing with data from multiple tables.
    • Big Data: Power Query is used to import large amounts of data (e.g., 7 million rows from an SQL database) into the compressed columnar database used by Power Pivot and Power BI Desktop.

    Examples from Sources:

    • Example 5: Power Query is used to import, transform, and load data from a website CSV file to an Excel worksheet table that can then be easily refreshed.
    • Example 6: Power Query imports and combines data from multiple text files in a folder into a single table, adds a calculated ‘Sales’ column, and loads it directly to the Pivot Table cache, ready for reporting and charting.
    • Example 8: Power Query imports data from tables within an external Excel file and loads them directly to the Power Pivot Data Model using the “Only Create Connection” and “Add to the Data Model” options, preparing the data for creating relationships and data model pivot tables.
    • Example 10: Power Query connects to an online SQL database with 7 million rows, imports selected tables using credentials, checks and changes data types, removes unnecessary columns in the Power Query Editor, and loads the data to the Power BI Desktop Data Model.

    In summary, Power Query is a robust, user-friendly, and essential tool for modern data analysis in both Excel and Power BI Desktop, providing powerful capabilities for connecting to, cleaning, and transforming data from a wide range of sources, automating repetitive data preparation tasks, and enabling advanced data modeling.

    The Art of Excel Pivot Tables

    Based on the sources, Pivot Tables are a cornerstone tool in data analysis, designed primarily for building reports and charts. They are considered one of the most significant tools invented in Excel, with Power Query being highlighted as the greatest since the pivot table.

    Here’s a discussion of Pivot Tables based on the information provided:

    • Core Purpose and Functionality Pivot Tables allow you to convert raw data into useful information by summarizing and organizing records in a table. They provide an interactive way to analyze data by dragging fields into different areas (like Rows, Columns, and Values) in the Pivot Table Fields task pane. They use the same sorting and filtering conventions as Excel tables.
    • Standard Pivot Tables (Working with One Table) This type of pivot table is used when you have your data in a single table, such as an Excel worksheet table or a “flat table” created by adding lookup columns using functions like XLOOKUP. They perform calculations using built-in options like “Summarize Values By” (e.g., Count, Sum) and “Show Values As” (e.g., Percent of Column Total, Difference From Previous).
    • They are appropriate for data already in Excel, when there isn’t a lot of data (e.g., 43,000 rows is considered manageable, but 100,000-500,000 rows might slow down).
    • A limitation is that if you use the same number field in multiple reports, you have to reapply number formatting each time.
    • Standard pivot tables can automatically group dates into months and years.
    • Data sources can be a table or range directly in the worksheet, or data loaded into the Pivot Table Cache from Power Query. You can access data directly from the Pivot Table Cache using the “from external data source” option.
    • Data Model Pivot Tables (Working with Multiple Tables) Introduced with tools like Power Pivot and Power BI Desktop, Data Model Pivot Tables work with multiple tables loaded into a behind-the-scenes columnar database called the Data Model.
    • Relationships: Instead of using lookup formulas like XLOOKUP in the worksheet, relationships (often one-to-many) are created between related tables in the Data Model (e.g., linking a fact table with sales data to dimension tables like products, sales reps, or dates). This allows you to drag and drop fields from any related table into the pivot table report.
    • DAX Measures: Calculations are performed using reusable DAX measures that you create. A significant advantage is that you can include number formatting in the DAX measure, and this formatting will apply automatically whenever the measure is used in a pivot table.
    • Filter Context: DAX measures calculate efficiently using a concept called Filter Context, where the measure automatically filters the data based on the conditions in the pivot table (rows, columns, filters) before performing the calculation.
    • Handling Big Data: The Data Model, using a columnar database, can handle importing and analyzing large amounts of data (millions of rows), which is much better than handling such volumes directly in an Excel worksheet.
    • Data Loading: Data is typically loaded into the Data Model using Power Query, often selecting the “Only Create a Connection” and “Add this data to the Data Model” options to avoid duplicating data in the worksheet.
    • Date Tables: Unlike standard pivot tables, Data Model pivot tables do not automatically group dates. A dedicated date dimension table with a unique list of dates and attributes (like month, year) is required and linked via a relationship. The date table must be marked as a date table in the Data Model to function correctly.
    • Implicit vs. Explicit Measures: It is recommended to use explicit (user-created) DAX measures rather than implicit measures, which are automatically created when you drag a raw number field into a Data Model pivot table. Implicit measures are hidden, read-only, cannot be formatted or reused, and do not transfer when connecting live to data models in Power BI Desktop.
    • You can hide unnecessary fields in the Data Model so they don’t appear in the pivot table field list, making it less cluttered.
    • Integration with Power Query Power Query is essential for getting data from external sources and cleaning/transforming it before it is used in a pivot table. Power Query output can be loaded directly to the Pivot Table Cache for standard pivot tables or to the Data Model for data model pivot tables. This eliminates repetitive manual data preparation steps, as refreshing the query automatically updates the pivot table report.
    • Integration with Power Pivot and Power BI Desktop Power Pivot in Excel and Power BI Desktop share the core Data Model technology, enabling the creation of Data Model Pivot Tables. Power BI Desktop has a visual called a “Matrix” which is similar to an Excel pivot table and is used for cross-tab reports from the Data Model. You can also connect Excel pivot tables directly to data models stored online in Power BI Service.

    In summary, Pivot Tables are powerful tools for data summarization and reporting, evolving from the standard type working with single tables to the more advanced Data Model type capable of handling multiple tables and large datasets using DAX formulas and relationships, often populated and managed with the help of Power Query and the Data Model environment.

    Understanding the Data Model for Power Tools

    Based on the sources and our previous discussion about Pivot Tables, the Data Model is a fundamental component used in conjunction with Data Model Pivot Tables and tools like Power Pivot and Power BI Desktop.

    Here’s a discussion of the Data Model:

    1. What it is: The Data Model is a behind-the-scenes columnar database that stores and compresses data. It is the underlying structure used by Power Pivot in Excel and Power BI Desktop.
    2. Purpose and Benefits:
    • Handles Large Datasets: A key advantage of the Data Model is its ability to import and analyze large amounts of data (millions of rows) much more effectively than an Excel worksheet. The columnar database design helps compress the data, making it possible to work with volumes that would overwhelm Excel’s row limit or performance.
    • Works with Multiple Tables: The Data Model allows you to bring data from multiple tables together for analysis in a single pivot table report.
    • Relationships: Instead of using lookup formulas like XLOOKUP to combine data in the worksheet, you create relationships (typically one-to-many) between related tables directly in the Data Model. This linking of tables (like a fact table with sales data and dimension tables with product or sales rep details) is crucial for working with data spread across different sources. These relationships replace the need for adding helper columns with lookup formulas in your source data.
    • DAX Calculations: Calculations are performed using reusable formulas called DAX measures. These measures are built in the Data Model and can be easily dragged into a pivot table. DAX measures calculate efficiently using Filter Context, meaning the formula automatically considers the filters and conditions applied in the pivot table or visual (like rows, columns, or slicers) before performing the calculation.
    • Reusable Formatting: A significant advantage of DAX measures is that number formatting can be applied directly to the measure itself, so it only needs to be set once and will apply automatically whenever the measure is used in any report. This contrasts with standard pivot tables where number formatting must be reapplied each time the same field is used in a different report.
    • Organized Reporting: You can hide fields in the Data Model that you don’t intend to use in your pivot table reports (like foreign keys or raw number columns that will be used in measures), making the pivot table field list less cluttered.
    1. How Data is Loaded: Data is typically loaded into the Data Model using Power Query. When loading Power Query output, you often select the “Only Create a Connection” option and then “Add this data to the Data Model”. This prevents the data from being loaded into the Excel worksheet and the Data Model, avoiding duplication and potential performance issues. Data can come from various sources, including Excel files containing tables or external databases.
    2. Working with Dates: Unlike standard pivot tables that can auto-group dates, Data Model pivot tables require a dedicated date dimension table. This table contains a unique list of dates and related attributes like month name, year, etc.. This date table needs to be linked to the fact table using a relationship and marked as a date table in the Data Model tools to function correctly and prevent issues like inefficient date grouping or the creation of hidden date tables.
    3. Implicit vs. Explicit Measures: When using a Data Model, it is strongly recommended to create your own DAX measures (explicit measures) rather than relying on the hidden implicit measures automatically created when dragging raw number fields into a pivot table. Implicit measures have limitations: they are hidden, read-only, cannot be formatted or renamed easily, and do not transfer when connecting live to data models in Power BI Service. Explicit measures offer control, reusability, and formatting.
    4. Interface:
    • In Excel’s Power Pivot window (which opens when you manage the data model), there’s a Diagram View where you visualize tables and create relationships by dragging fields. There’s also a Data View to preview the data in each table and a Measure Grid at the bottom of the fact table to write DAX measures.
    • In Power BI Desktop, the corresponding views are Model View (similar to Diagram View) and Data View. Measures are typically created by right-clicking the table in the fields list or using buttons in the table/measure tools.
    1. Integration: Data Models built with Power Pivot in Excel can be imported into Power BI Desktop. Both Excel Data Models and Power BI Desktop Data Models can be uploaded to Power BI Online (Power BI Service), making them available as a single source of truth for connecting to from other Excel or Power BI Desktop files.

    In essence, the Data Model is the powerful engine behind advanced data analysis in Excel and Power BI, enabling efficient handling of large, multi-table datasets through relationships and flexible calculations via DAX.

    Introduction to Power BI

    Based on the sources and our conversation history, let’s discuss Power BI.

    Power BI Desktop is a free Microsoft download that serves as a tool for data analysis, creating reports, and designing interactive visuals. It shares many core functionalities with Excel’s Power Pivot and Power Query. Power BI is specifically designed to offer more varied visuals and reporting tools and better shareability compared to Excel.

    Here are some key aspects of Power BI:

    • Core Components and Workflow: Power BI Desktop integrates several tools:
    • Power Query: This is the tool used to import data from external sources (like databases, web files, other Excel files) and then clean and transform it. The Power Query Editor looks and functions very similarly to the one in Excel. The cleaned data is then loaded into the Data Model.
    • Data Model: Like Power Pivot in Excel, Power BI Desktop utilizes a behind-the-scenes columnar database called the Data Model to store and compress data. This model is crucial for handling large amounts of data, potentially millions of rows, much more effectively than a standard Excel worksheet. Within the Data Model, you create relationships between related tables (like fact and dimension tables) to link them for analysis, avoiding the need for lookup formulas in the source data. The Data Model in Power BI Desktop looks almost exactly the same as in Power Pivot. Power BI Desktop has a Model View (similar to Power Pivot’s Diagram View) for visualizing tables and creating relationships, and a Data View (similar to Power Pivot’s Data View) for previewing table data.
    • DAX Formulas: Calculations within the Data Model are performed using Data Analysis Expressions (DAX). You create reusable DAX measures to perform calculations like Sum or Average. A key advantage of DAX measures is that number formatting can be applied directly to the measure, and this formatting will be automatically applied whenever the measure is used in a report or visual. DAX measures calculate efficiently using Filter Context, meaning they automatically consider the filters applied by the visual (like rows, columns, slicers) before performing the calculation. While Power Pivot focuses on measures, Power BI Desktop also allows creating DAX calculated columns and entire DAX tables. It is strongly recommended to use explicit (user-created) measures rather than implicit measures (automatically created by dragging raw number fields), as implicit measures have limitations such as being hidden, read-only, and not transferring to Power BI Service when connecting live. Fields that are not needed for reporting (like foreign keys or raw number columns used in measures) can be hidden in the Data Model to keep the fields list cleaner in the reporting interface. In Power BI Desktop, hidden fields are indicated by an eyeball icon with a line through it.
    • Visualizations and Reporting: Reports are built in the Report View, which is comparable to an Excel worksheet where you might place pivot tables and charts. Power BI offers a wide array of visualizations. Examples include line charts, clustered column charts, a Matrix visual (similar to an Excel pivot table for cross-tab reports), slicers, cards, and maps. A defining feature is the interactivity of these visuals; clicking on one visual can filter or highlight data in other visuals on the page. You can control how visuals interact (filter, highlight, or none). Tooltips can be customized to show multiple measures when hovering over data points.
    • Power BI Online (Service): This is the cloud-based component that requires a license and enables sharing and collaboration.
    • You can publish Power BI Desktop files (containing the report and data model) or Excel files with Power Pivot data models to Power BI Online.
    • Uploaded data models appear as datasets. These datasets can serve as a single source of truth for multiple users and reports, allowing others to connect live to the data model from their own Excel or Power BI Desktop files without needing to share the original file.
    • Reports published from Power BI Desktop can be viewed and interacted with in Power BI Online.
    • Dashboards are a specific feature in Power BI Online, allowing you to pin visualizations from different reports and workbooks into a single view for easy access and sharing. Dashboards provide a high-level summary of key metrics.
    • Sharing is managed through workspaces, where groups of users with organizational emails can be granted access to reports, dashboards, and datasets.
    • Relationship with Excel Tools: Power BI Desktop and Power Pivot share the same Data Model engine. Many features learned in Power Query and Power Pivot in Excel are directly transferable to Power BI Desktop. While Excel (especially with Power Pivot) is capable of building data models and reports, Power BI Desktop is generally preferred for its superior visualization capabilities, interactivity, and the ease of sharing and collaborating via Power BI Online. Data models built in Power Pivot can be imported into Power BI Desktop.
    Excel & Power BI Data Analysis Complete Class in One Video – 365 MECS 04

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Python Foundations and Generative AI Applications

    Python Foundations and Generative AI Applications

    This text provides a comprehensive guide to Python programming, starting with fundamental concepts such as installing Python, understanding variables, data types, operators, and flow control statements like decision making and loops. It progresses to core data structures like tuples, lists, dictionaries, and sets, explaining their uses and manipulations. More advanced topics covered include object-oriented programming (classes, objects, inheritance) and file handling, with practical demonstrations using the PyCharm IDE. The document also explores data structures and algorithms, detailing arrays, stacks, queues, linked lists, and essential sorting (insertion, quick, merge) and searching (linear, binary) techniques. Finally, it touches upon machine learning libraries like NumPy, Pandas, Matplotlib, and Seaborn for data analysis and visualization, as well as an introduction to generative AI and using libraries like Flask and OpenAI for applications, alongside web automation with Selenium and GUI development with Tkinter.

    Python Fundamentals: Core Concepts and Structures

    Based on the sources provided, Python fundamentals cover the essential building blocks you need to start coding in Python. This module aims to introduce you to Python’s syntax and core concepts.

    Key topics discussed under Python fundamentals include:

    • Installing Python and Setting up the Environment: The journey begins with installing Python onto your system. Python is platform-independent, meaning you can download it for Windows, Linux, or Mac operating systems from the python.org downloads site. After installing Python, you need an Integrated Development Environment (IDE) to make coding easier. The sources mention PyCharm and Anaconda as IDE options for Python. Anaconda is a complete toolkit often used for machine learning and data science tasks, providing libraries like NumPy, pandas, matplotlib, and seaborn, along with an IDE called Jupyter notebook. Jupyter is a browser-based interpreter that allows interactive work with Python. You can open Jupyter notebook via the Anaconda prompt by typing jupyter notebook.
    • Variables: Variables are used to store data when working with any programming language. In Python, you can assign values to variables, and these values can be changed later.
    • Data Types: Every variable in Python has an associated data type. The sources highlight four main built-in data types: Integer, Float, Boolean, and String. It also mentions a Complex type, represented with ‘j’ instead of ‘i’. Examples are given for creating integer and complex variables and checking their type using the type() method.
    • Operators: Operators help perform operations on data. The sources discuss arithmetic operators, relational operators, and logical operators. Arithmetic operations are demonstrated, such as division. Relational operators help find the relationship between two operands, like checking if one is less than or greater than another.
    • Python Tokens: A Python token is the smallest meaningful component in a program. Combining tokens forms your Python code. The basic Python tokens are keywords, identifiers, literals, and operators.
    • Keywords: Special reserved words that cannot be used for other purposes, such as variable, function, or class names. Examples include if, def, del, True, False, while, not, or, return. The Python interpreter recognizes these keywords, often highlighting them (e.g., turning green). Trying to assign a value to a keyword like def results in an error.
    • Identifiers: Names used for variables, functions, or objects. There are basic rules for identifiers: they cannot contain special characters (except underscore), are case-sensitive, and the first letter cannot be a digit. The case sensitivity means N1 and n1 are treated as different variables.
    • Literals: These are constants, meaning values that do not change. Whatever values you store inside a variable are called literals. For example, in N1 = 10, the value 10 is a literal.
    • Flow Control Statements: These statements determine the order in which program code is executed. An example of an if-else statement is shown, demonstrating how to check a condition (e.g., if variable B is greater than variable A) and execute a block of code if the condition is true. Loops are also mentioned in the context of applying operations to elements in a list.
    • Core Data Structures: Python fundamentals introduce several basic data structures beyond single variables, enabling you to store multiple values.
    • Tuples: Described as continuous sequences of elements. Indexing starts from zero. When slicing, the starting index is inclusive, and the ending index is exclusive. Functions like max() can be used on tuples.
    • Lists: A new list is created using square braces. Lists can store different types of data values. Like tuples and other data structures in Python, indexing for lists starts from zero. You can extract individual elements or a series of elements using indexing and slicing, keeping in mind the exclusive nature of the ending index in slicing. Lists are mutable, meaning you can change elements after creation, unlike tuples (though tuples aren’t explicitly stated as immutable in the source excerpts, lists are explicitly called mutable in comparison to dictionaries which are also mutable). You can modify elements by assigning a new value to a specific index. List methods include append() to add an element to the end, pop() to remove an element (which follows LIFO – Last In, First Out – order, useful for implementing stacks), sort() for alphabetical sorting, and reverse(). You can also repeat list elements using multiplication. List implementation can be used to create a stack.
    • Dictionaries: An unordered collection of key-value pairs enclosed within curly braces. Dictionaries are mutable. Elements can be removed using the pop() method by providing the key.
    • Sets: An unordered and unindexed collection of elements enclosed within square braces (though the source excerpt says square braces, the example uses curly braces which is standard for sets in Python). Sets allow finding common elements using the intersection() method.

    By the end of this section, you should be comfortable writing simple Python programs and ready for more complex challenges.

    Python Data Structures Overview

    Based on the sources, discussing data structures involves exploring how data can be organized and stored to be used efficiently in programming. Understanding data structures is key to managing your data effectively. In Python, various data structures are available, ranging from built-in core types to more complex structures used in algorithms and specific libraries.

    Here’s a breakdown of the data structures discussed in the sources:

    Core Python Data Structures Python’s fundamentals introduce several basic data structures that allow you to store multiple values, unlike single variables which store only one value. You can store elements of different types within these data structures.

    • Tuples:
    • Tuples are described as a collection of elements enclosed within round braces.
    • They are an ordered collection.
    • Tuples are immutable, meaning that once the elements inside a tuple are created, you cannot change them later on.
    • Indexing for tuples starts from zero. You can find the length (number of elements) of a tuple using the len() method.
    • You can also concatenate (attach elements of) two tuples.
    • Lists:
    • Lists are an ordered collection of elements enclosed within square braces.
    • Unlike tuples, lists are mutable, which means you can actually change the values present in a list after it’s created.
    • Lists can store different types of data values.
    • Indexing for lists starts from zero, similar to tuples and other Python data structures. You can extract individual elements or a series of elements using indexing and slicing.
    • Common list methods mentioned include append() to add an element to the end, pop() to remove an element (following a Last In, First Out – LIFO – order), sort() for alphabetical sorting, and reverse().
    • You can also repeat list elements using multiplication.
    • Lists can be used to implement a stack.
    • Dictionaries:
    • Dictionaries are an unordered collection of key-value pairs.
    • They are enclosed within curly braces.
    • Dictionaries are mutable [implied by operations like pop, and noted in prior conversation].
    • In a dictionary, keys are separated from their values by a colon, and key-value pairs are separated by commas. For example, a dictionary could store fruit names as keys and their quantities as values.
    • You can extract the individual keys and values present in a dictionary. The keys are on the left side of the colon. You can use the .keys() method to get all the keys.
    • Elements (key-value pairs) can be removed from a dictionary using the pop() method by providing the key.
    • Sets:
    • Sets are an unordered and unindexed collection of elements.
    • Although one source mentions square braces, the example provided uses curly braces, which is the standard Python syntax for sets.
    • Sets allow finding common elements between two sets using the intersection() method. You can also combine elements from two sets using the Union() method.

    Data Structures for Algorithms Beyond the basic Python data structures, the sources delve into other common data structures, particularly in the context of data structures and algorithms, often described as advanced concepts. These are typically linear data structures where elements are stored in a linear fashion.

    • Arrays:
    • An array is a linear data structure where elements are stored in a linear fashion and at continuous memory locations.
    • Each memory location has an address.
    • The data type of elements stored in an array must be homogeneous, meaning you can only store similar elements.
    • You can access elements randomly using indexing. The name of the array represents its Base address.
    • Arrays are useful for scenarios where you want to store data linearly in continuous memory for efficient memory utilization and are suitable for frequent searching.
    • Arrays can be one-dimensional or two-dimensional (used for matrices). A 1D array is declared with a name, data type, one subscript/index, and size.
    • Arrays can serve as a replacement for multiple individual variables when dealing with a large number of similar data points.
    • A drawback of arrays is that insertion and deletion can be difficult because it requires swapping elements and ensuring continuous memory is available.
    • Note: While the sources discuss arrays conceptually and show examples using list-like syntax, Python’s built-in list type is more flexible than traditional C-style arrays (e.g., can store heterogeneous data, doesn’t require fixed size). NumPy arrays are closer to the homogeneous, fixed-size array concept.
    • Stacks:
    • A stack is a linear data structure that follows the Last In, First Out (LIFO) principle. This means the element inserted last is the first one to be removed.
    • Insertion and removal of elements are done at one end, often called the “top” of the stack.
    • Standard stack operations include push (to insert an element at the end/top) and pop (to remove an element from the end/top).
    • In Python, stacks can be implemented using a list (using append for push and pop for pop), the collections.deque class, or the queue.LifoQueue class.
    • The collections.deque implementation is preferred over lists for stack operations because append and pop are faster (Big O(1) time complexity) compared to lists, which can become slow due to potential memory reallocations (Big O(N)).
    • When using queue.LifoQueue, the insertion operation is called put, and the removal operation is called get.
    • Queues:
    • A queue is a linear data structure where elements are stored in a linear fashion and follow the First In, First Out (FIFO) principle. The first item inserted is the first item to be removed.
    • You can imagine a queue like people waiting in line; the person who arrives first gets served first.
    • Major queue operations include Enqueue (inserting an element), Dequeue (deleting an element), Peek first (looking at the first element without removing it), and Peek last (looking at the last element).
    • A significant advantage of queues is that these four major operations are performed in a constant amount of time (Big O(1)).
    • Queues are commonly used in competitive programming because of their efficient operations.
    • Applications include scheduling algorithms in operating systems (like FIFO and round robin) and maintaining playlists.
    • A circular queue is a type of queue where the front and rear are connected, forming a circle.
    • In Python, a basic queue can be implemented using a class with append for NQ and pop for DQ. Other implementations exist within modules like collections (deque) or queue.
    • A disadvantage of queues is that they are not very flexible due to the restriction on insertion and deletion points (only at the rear and front, respectively).
    • Linked Lists:
    • A linked list is a linear data structure that is a collection of nodes.
    • Each node contains two parts: the data itself and a reference (or pointer) to the next node. This reference stores the memory address of the subsequent node.
    • Unlike arrays or lists, linked list elements are stored randomly in memory, not necessarily at continuous locations.
    • The beginning of the linked list is typically marked by a head pointer, which stores the address of the first node. The reference of the last node points to null (or None in Python).
    • A singly linked list is one where traversal is done only in one direction (from the head to the end).
    • Linked lists can offer more efficiency for operations like insertion and deletion compared to lists in certain scenarios.
    • Operations include insertion, deletion, and traversal. Insertion and deletion can be performed at the beginning, end, or a specified node.
    • Traversal means going through each node of the linked list.
    • Accessing elements in a linked list is slower compared to a list because you have to traverse from the head to the desired node; you cannot directly jump to an element using an index.
    • Memory utilization might be more in linked lists compared to lists.
    • Creating a node in Python involves defining a class (e.g., class node) and initializing its data and next pointer (often None initially) using a constructor (__init__ method).

    Data Structures in Libraries for Data Science and Machine Learning Specific Python libraries designed for data handling introduce their own data structures:

    • NumPy Arrays: NumPy (Numerical Python) is the core library for numeric and scientific computing. It consists of multi-dimensional array objects. You can create single-dimensional or multi-dimensional arrays (arrays of arrays or lists of lists) to perform various numerical operations like sum or dot product. NumPy arrays are generally used for homogeneous numerical data.
    • Pandas Data Structures: Pandas is a core library for data manipulation and analysis. It provides single and multi-dimensional data structures to handle tabular data seamlessly.
    • Series: A single-dimensional data structure, described as a one-dimensional labeled array. Created using pd.Series(), typically from a list or dictionary.
    • DataFrame: A multi-dimensional data structure, specifically a two-dimensional labeled data structure. DataFrames are used to work with tabular data, consisting of rows and columns. They are commonly created from dictionaries where dictionary keys become column names and the list values become the records in those columns. DataFrames have useful methods like head, tail, shape, and describe (providing summary statistics) and allow extracting data by index or label using .iloc and .loc.

    In summary, Python offers a range of data structures, from fundamental built-in types like lists, tuples, dictionaries, and sets to more complex structures like arrays, stacks, queues, and linked lists used in algorithms, and specialized structures like NumPy arrays and Pandas Series/DataFrames vital for data science tasks. They are crucial tools for efficiently organizing and manipulating data in various programming contexts.

    Python Object-Oriented Programming Explained

    Based on the sources and our conversation history, object-oriented programming (OOP) is discussed as one of the advanced concepts in Python. It is considered one of the most important concepts.

    Here’s a breakdown of Object-oriented programming based on the sources:

    • Purpose of OOP: Object-oriented programming allows you to represent real-world objects in the programming paradigm. Python is an object-oriented programming language.
    • Core Components: To understand OOP, you need to understand its two main components: classes and objects.
    • Class: A class can be thought of as a template or a blueprint for real-world entities. It is described as a user-defined data type, similar to predefined data types like integer, float, Boolean, and string. A class will have attributes (which are its properties) and methods (which represent its behavior). Using the example of a phone, properties could include color, cost, and battery life, while behaviors could include making calls, watching videos, and playing games.
    • Object: An object is a specific instance of a class. Following the phone example, specific phones like Apple, Motorola, and Samsung would be objects of the phone or mobile class. Just as a variable a = 10 means a is an integer variable with the value 10, objects are specific instances of the class’s data type.
    • Creating Classes and Objects:
    • To create a class in Python, you use the class keyword followed by the name of the class. By convention, the first letter of the class name should be capitalized.
    • Methods within a class are defined using the def keyword. These methods represent the class’s behavior. Methods take self as a parameter, which helps invoke the attributes present in the class. Examples include methods like make_call and play_game in a Phone class.
    • Attributes are associated with the object using self.attribute_name within the methods or the constructor. Methods can be created to set or show the values of these attributes.
    • An object of a class is created by calling the class name followed by parentheses and assigning it to a variable (e.g., P1 = Phone()).
    • Once an object is created, you can invoke the methods associated with the class using the dot operator (e.g., p1.make_call(), p1.play_game()).
    • Constructor (__init__):
    • A Constructor is a special concept in OOP. In Python, the constructor method is named __init__ (with double underscores before and after).
    • The purpose of the constructor is to initialize the values of the attributes when an object is being created.
    • The __init__ method takes self and typically additional parameters corresponding to the attribute values you want to set upon object creation. Inside the constructor, these parameter values are assigned to the object’s attributes using self.attribute = parameter.
    • When you create an object of a class that has a constructor, you pass the initial values for the attributes as arguments to the class call (e.g., E1 = Employee(“Sam”, 28, 75000, “male”)). The constructor then runs automatically to initialize the object’s attributes.
    • Inheritance:
    • Inheritance is another important concept in OOP. It means that a child class can inherit some or all of the features (attributes and methods) from a parent class.
    • To create a child class that inherits from a parent class, you include the name of the parent class in parentheses after the child class name during its definition (e.g., class Car(Vehicle):).
    • If a child class does not define its own constructor (__init__), it will inherit the constructor from its parent class. This means you pass values for the parent’s attributes when creating an object of the child class. The child object can then call methods defined in the parent class.
    • A child class can also have its own specific methods in addition to the inherited ones.
    • It is possible to override the __init__ method (or other methods) in the child class to provide specific initialization or behavior for the child class.
    • Types of Inheritance: The sources mention different types of inheritance:
    • Single Inheritance: A child class inherits from a single parent class. The Car inheriting from Vehicle is an example of this.
    • Multiple Inheritance: A child class inherits from more than one parent class. The child class inherits features from both parents.
    • Multi-level Inheritance: There are multiple levels of inheritance, where a class inherits from a child class which itself inherited from another class. An example is a Grandchild class inheriting from a Child class, which inherited from a Parent class. An object of the grandchild class can access methods from all classes in the hierarchy.

    In summary, OOP in Python provides a structured way to design programs by creating classes as blueprints for objects, defining their properties and behaviors, and using concepts like constructors for initialization and inheritance to create hierarchies of classes that share features.

    Python File Handling Essentials

    Based on the sources, here’s a discussion of File Handling in Python:

    File Handling in Python involves dealing with text files. It allows you to use Python programming to write, read, and perform various operations on these text files, which typically have a .txt extension. File handling is considered one of the advanced topics in Python. Another name used for file handling is IO functions, referring to input/output functions.

    With file handling, you can perform operations using built-in functions, including:

    • Opening the file
    • Reading text from the file
    • Writing text into the file
    • Appending text (adding onto existing text)
    • Altering text
    • Deleting text

    Core Concepts and Operations:

    1. Opening a File:
    • The very first step in file handling is always opening the file.
    • This is done using the open() function.
    • You typically store the result of the open() function call in a variable, which is sometimes referred to as a file pointer. This variable is used to perform subsequent operations on the file.
    • The open() function requires the name of the file as an argument.
    1. Modes:
    • When opening a file, you specify a mode which determines the type of operations you intend to perform.
    • Read Mode (‘r’): Used when you want to read existing text from the file. You must open the file in ‘r’ mode to use reading functions.
    • Write Mode (‘w’): Used when you want to write or add text to the file. Opening in write mode allows using the write() function.
    • Append Mode (‘a’): Used specifically for adding new text to the end of the text file’s existing content. You open the file with mode ‘a’.
    1. Reading Text:
    • To read the entire content of a file opened in read mode, you use the read() function on the file pointer (e.g., f.read()). The content is typically stored in a variable for use.
    • To read the text line by line, you use the readline() function. Each call to readline() reads the very next single line from the file. If there are no more lines to read, readline() returns an empty string. The readline() function differs from read() which displays all text at once.
    1. Writing and Appending Text:
    • To write text to a file opened in write mode (‘w’) or append mode (‘a’), you use the write() function on the file pointer (e.g., f.write(“some text here”)).
    • Using the n operator (backslash n) at the beginning of the string you are writing will ensure that the text is added starting on a new line in the file.
    • Text written in append mode (‘a’) is added after the existing content in the file. Text written in write mode (‘w’) can overwrite previous content (implied by the read example that follows a write example).
    1. Closing the File:
    • After you have finished performing operations on a file, it is a good practice to close it.
    • This is done using the close() function on the file pointer (e.g., f.close()). This is compared to closing a book after reading or writing in it.
    1. Counting Characters:
    • You can count the total number of characters in a text file by opening the file in read mode, reading its content into a variable (e.g., using read()), and then using the len() function on that variable. The len() function calculates the total number of characters.

    Development Environment: To perform file handling in Python, you need an Integrated Development Environment (IDE) that supports both Python files (.py) and text files (.txt) simultaneously. Offline IDEs such as PyCharm, VS Code, or Jupiter notebooks are suitable. Practical examples in the source were shown using PyCharm. You would create your Python script file and the text file you wish to interact with within the IDE’s project environment. When running code that writes to a file, the output is typically seen directly in the text file itself, not necessarily in the console. You cannot perform reading and writing operations (like write() and readline()) on the same file object at the same time if opened in conflicting modes.

    An Overview of Generative AI and Python Applications

    Based on the sources and our conversation history, Generative AI (Gen AI) is presented as an advanced concept within the realm of Artificial Intelligence, incorporating human-like intelligence and creativity. It is a rapidly evolving AI system that is gaining prominence.

    Here’s a detailed discussion of Generative AI as described in the sources:

    What is Generative AI?

    • Generative AI is an artificial intelligence system that focuses on creativity.
    • It is described as evolving beyond simply understanding programming languages to mimicking human-like intelligence and creativity.
    • Generative AI is a subset of artificial intelligence.
    • Unlike traditional AI, which might classify or discriminate between data, Generative AI acts like an artist, capable of creating, generating, or transforming new content. This content can include text, video, audio, images, and more.

    How Generative AI Works

    • Technically, Generative AI or Gen AI functions by employing a neural network.
    • This neural network mimics or replicates biological neurons.
    • Based on this mimicry, it analyzes data patterns and generates new content based on those patterns.
    • Generative AI models receive an input (which can be text, audio, video, or any format).
    • These models are then pre-trained on data and fine-tuned to perform specific tasks. This fine-tuning allows them to cater to specific requirements and generate personalized content based on prompts.

    Discriminative vs. Generative AI

    • The sources contrast Generative AI with Discriminative AI.
    • Discriminative AI acts like a judge; given a dataset (e.g., images of dogs and cats), it classifies them into predefined categories (cats and dogs).
    • Generative AI, on the other hand, acts like an artist; given a similar dataset, it can create a new species or generate new content.

    Why Generative AI is Trending

    • Generative AI is trending because it does not depend on giving input and getting the same form of output, unlike traditional AI. It works based on your inputs and instructions.
    • It has impacted various fields, including text, audio, and video domains, and sectors like data management, tech, healthcare, and entertainment.
    • It has creative applications such as DALL-E and ChatGPT. For example, you can give a text prompt as input, and it can create an image as output.
    • It is enabling professionals (like business professionals and researchers) to generate code using tools like ChatGPT and develop new large language models and tasks.

    Types of Generative AI Models Mentioned

    The sources list different types of generative AI models:

    • Generative Adversarial Networks (GANs): Two models work together – one generating content, and one judging it – to produce realistic new data.
    • Variational Autoencoders (VAEs): This AI learns to recreate and generate new, similar data.
    • Transformers: An AI that learns to produce sequences using context. Transformer-based models include examples like ChatGPT.
    • Diffusion Models: Generates data by refining noisy starting points until they look realistic.

    Applications of Generative AI

    Generative AI has numerous applications:

    • Content Generation: Creates textual or other code-based content. It boosts creativity by providing content ideas and new ways to approach problems.
    • Customer Support and Engagement: Helps firms interact with customers.
    • Data Analysis and Data Science: Aids with visualization and analyzing data.
    • Code Generation and Software Development: Helps generate code.
    • Research and Information Retrieval: Helps researchers and professionals extract information from various data sources.
    • Machine Translation: Translates text, audio, or other content into required languages.
    • Sentiment Analysis: Analyzes text feedback to determine positive, negative, or neutral sentiment.
    • Other domains include Healthcare and Transport.
    • It automates content creation, saving time, and provides personalization based on user requirements and prompts.

    Python and Generative AI

    • Python is a high-level programming language preferred in Generative AI development.
    • One reason is that Python already has a well-supported set of libraries used for years in related domains like data science, machine learning, natural language processing (NLP), and deep learning. Artificial intelligence and Generative AI are “grabbing” these existing Python libraries.
    • Python is described as a versatile programming language that makes life easier for people working in this technological domain.

    Practical Applications in Python (from sources)

    The sources demonstrate building applications that utilize Generative AI:

    1. Flask ChatGPT App: Integrating the OpenAI API with a Flask web application.
    • This involves setting up a Python virtual environment, installing Flask and OpenAI libraries, and obtaining an OpenAI API key.
    • The application consists of a backend Python file (app.py) using Flask to handle API calls and a frontend HTML file (index.html) for the user interface.
    • The Python backend defines routes to handle requests, interacts with the OpenAI GPT model (e.g., GPT 3.5 turbo) by sending user input (prompts) via the API, receives responses, and handles potential errors like exceeding the usage quota.
    • The frontend uses HTML for structure and JavaScript to manage the interaction between the user interface and the backend, sending user prompts and displaying GPT’s responses.
    • Note: Using the OpenAI API is not entirely free; there is a limit ($5 worth of conversation mentioned) before payment is required.
    1. Text to Image Application: Creating images from textual descriptions using AI models via a web application.
    • Similar to the ChatGPT app, this uses Flask for the web framework, the OpenAI API for image generation, and HTML/CSS/JavaScript for the front end.
    • Prerequisites include Python, Flask, OpenAI library, and an OpenAI API key.
    • The Python backend (app.py) receives text prompts from the user via the frontend, uses the openai library to call the API’s image generation function (specifying prompt, size, and number of images), and gets an image response back.
    • The HTML frontend provides a text box for input, a button to trigger the generation, and displays the resulting image.
    • More precise descriptions from the user lead to more precise image outputs.
    1. Personalized Story Generator using LangChain: Developing an application to generate unique stories based on user inputs like character names, settings, and themes.
    • This project utilizes the LangChain library in Python, described as streamlining development processes and utilizing LLMs. LangChain is a Python library, similar to libraries like NumPy. It supports use cases like creating assistants and chatbots.
    • The application also requires the OpenAI library and an API key.
    • The structure involves two Python files: user_input.py to collect character name, setting, and theme from the user, and story_generator.py as the main script that uses LangChain and OpenAI to generate the story based on the inputs received from user_input.py.
    • The story_generator.py file imports necessary components from langchain, imports the user input function, defines the story generation logic using an OpenAI text model (like GPT 3.5 turbo), includes the API key, and prints the generated story.
    • This demonstration was executed in the command prompt rather than a web browser interface.

    In essence, Generative AI represents a shift in AI towards creative content generation, leveraging powerful models and neural networks. Python, with its rich ecosystem of libraries, serves as a crucial language for implementing and developing Generative AI applications, as demonstrated by the examples involving Flask, OpenAI API, and LangChain.

    Python Tutorial with Gen AI for 2025 | Python for Beginners | Python full course

    The Original Text

    Transcript Tool: https://anthiago.com/transcript/

    Video Link: https://www.youtube.com/watch?v=-65r_3r-nN4

    Python Tutorial with Gen AI for 2024 | Python for Beginners | Python full course welcome to the world of python where creativity meets technology whether you are a beginner eager to dive into coding or a season programmer looking to expand your skills this journey has something for everyone please note we have added sessions being covered in this tutorial with timestamps in the description for your convenience to jump to the topic which excites you the most you will be mastering the fundamentals of python diving deep into advanced con Concepts and unlocking the secrets of powerful data structures and algorithms picture yourself analyzing data like a pro building intelligent machine learning models and exploring the fascinating Realms of generative AI but that’s not all we’ll also dwelve into python for automation simplifying everyday tasks and crafting beautiful interactive guis for your applications join us as we embark on this comprehensive python Adventure from Basics to Brilliance we have got you cover so let’s get started and code your way to [Music] Mastery in the python fundamentals we’ll start with the basics installing python Understanding Variables data types operators and flow control statements you will also learn about Python’s core data structures tles lists dictionaries and sets next we will dwelve into advanced topics like object-oriented programming inheritance and exception handling you will also learn file handling techniques to manage your data efficiently understanding data structures and algorithms is key we will cover arrays Stacks cues linked lists and essential searching and sorting algorithms like linear search binary search insertion sort quick sort and merge sort in Python for machine learning you will work with libraries like numai pandas matplot lib and cabon these tools will help you manipulate analyze and visualize data to gain valuable insights you will also explore the fascinating word of generative AI where you will learn the basics and how to apply python in creating generative models opening up new possibilities in AI in Python 4 automation we will focus on making your life easier you will learn to use selenium for web automation we will also cover GUI development using tkin bringing your applications to life why wait let’s quickly start with the first module in Python fundamentals this is where it all begins we will start by introducing you to Python’s syntax and Core Concepts you will learn about variables data types and control structures like oops and conditionals by the end of this section you will be comfortable writing simple python programs and ready to tackle more complex challenges we’ll start off this session by installing python into our systems and to install python we’d have to go to this particular site over here python or downloads let me just go ahead and click on this link so as you see since python is platform independent whether you have a Windows system or a Linux system or even a Mac you can download python for either of these operating systems and since I’m using a window system all I have to do is click on this particular link and python would be downloaded now after downloading python we would need an IDE so what exactly is an IDE IDE stands for integrated development environment now if you just download python we would also need some environment which would make our coding much more easier so if you have worked with other programming languages such as C C++ or Java then you would know that you would have used an ID for these languages as well so if you have worked with Java then you would have used an ID called as Eclipse similarly if you have work with C or C++ then you would have work with ID such as turbo C++ or Dev C++ so similarly we’ve got a lot of IDs for python so one such ID for python is pycharm and we can download pycharm from this particular link jet brains.com slpy IAM I’ll just click on this over here then I’d have to click on this download button and as you see we’ve got the professional version and the community version and if we want it for just single user development we can just go ahead and download this community version over here and similarly as you see over here we’ve got if you use a Windows system then you can download pycharm for Windows if you have a Mac then you can download pycharm for Mac similarly if you have a Linux then you can download python for Linux since I have a Windows system I’ll select this and I’ll go ahead and download the community version of this then we have something called as Anaconda which is actually a python and R distribution so if you want to perform any sort of machine learning task or data science task then Anaconda is a complete toolkit so this provides you with a lot of tools involving python so it will provide you an IDE called as Jupiter notebook and not just the ID along with the IDE it will also provide you with a lots of libraries libraries such as P plot cbon pandas and napai so you don’t have to manually install these libraries so once you go ahead and install Anaconda so you can install Anaconda from this particular site over here over here you see the products tab click on the individual Edition which is the Open Source One then just go ahead and scroll down so you have the download button over here again and since I have Windows system I’ll just go ahead and download the 64-bit graphical installer and since this is a lot of MB which is 466 MB and since I don’t want to use up my data pack I’ll just go ahead and cancel this because I already have Anaconda installed into my system now once we have installed Anaconda as I’ve told you guys Anaconda comes up with an ID called as Jupiter notebook so what is Jupiter it is a browser based interpreter that allows us to interactively work with python so all of our python code will be implementing in this Jupiter notebook and if you have to open jupyter notebook I’ll just show you how to do it so here on your search bar go ahead and type in Anaconda so You’ have to select this over here Anaconda prompt now in Anaconda prompt you would have to type Jupiter node book and let’s just wait for the browser based interpreter to open up so this what you see is called as the Jupiter notebook which is a browser based python interpreter and we’ll be writing all of our python code over here now if we want to open up a new python notebook click on this tab and select Python 3 now once this is done we have opened up our new python notebook so you have a lot of tabs over here so similarly if you want to create a new notebook select file then you have this new notebook option again you can go ahead and select Python 3 and as you see over here this is our new notebook I’ll just close this up over here then let’s say if you want to download the code file which you’ve written you have this download as option and over here normally whenever we want to download the Jupiter notebook we download it as iynb file which basically stands for python notebook I python notebook you can also download it as other formats if you want to just save it as a simple python file you can just select py over here you can also go ahead and save this file as a HTML doc or maybe a latex Doc and if you want to save you have the save as option over here and similarly you can go ahead and rename your notebook either you can select this or you can just click over here then you can go ahead and rename it so I’ll just write it as my python notebook and then I’ll rename this file over here now let’s go ahead and write our first Python program so to print something out on the console we would have to use the print command then I’ll give this parenthesis over here I’ll use double quotes and inside this I will given the command this is Sparta and I’ll just go ahead and click on run and as you guys see we have successfully printed out this is Sparta we have written our first Python program in Jupiter notebook now we can we are on our way to happily go and hack the NASA systems so this is our building Stone guys we can go ahead and do a lot of things with what we’ve learned with this now you have something called as a kernel over here so what exactly is a kernel you can consider this kernel to be the executor of this program so whenever you would have whenever you write a piece of code and you’d want to execute it you click on kernel and this is what actually runs your entire code then let’s say if you you want to add a new cell about this so this what you see is called as the cell and if you want to add a cell about this you click on insert then you have the insert cell above option similarly let’s say if I want to insert a cell below this I click on insert I select insert cell below and this is how I can add another cell so this was a basic intro about jupitor notebook so let’s start off by understanding what exactly are variables in Python now when you work with any programming language your first task needs to be to work with data isn’t it so whatever programming language you’re working with you are essentially working with data but the question over here is how do you actually store the data that you work with so let’s say you’re working at a company and you want to store the names of all of the employees so we start off with taking three employee names so let’s say we have John Sam and Matt with us and we’d have to store these names somewhere so where can we store them this is where a variable comes in so you can consider a variable to be a temporary storage space now what we’ll do is we’ll take this string value so this what you see inside double quotes is known as a string and we’ll take the string value and we will store this in this variable called as student either we can call the student or employee or whatever we want to and this variable will have a particular address associated with it and since this variable is a temporary storage space the values which are stored inside it can be changed again and again so initially we are storing this value John inside this variable employee or student then after some time we can go ahead and replace this value John with this value Sam similarly after some some time we are changing this value of Sam with this value of Matt and this is how variables work in Python so now let’s go to Jupiter notebook and I’ll give you a proper example of this here what I’ll do is I’ll create a variable called as where one I’ll give this equal to symbol and I’ll go ahead and store the value drawn inside this let me click on run now let me print out this print of wi one and let’s see what will be the result so we have successfully stored the value JN inside wi one and we were able to print this out and since W one is a variable it is a temporary storage space so that is why we can change the value which is stored inside this so now instead of John I want to store the value Sam inside this I’ll click on run again I’ll use print and then I’ll be printing out the value of V one and as you guys see initially we had John and inside this we were able to change this to Sam now again after some time I’ll go ahead and change this value to Matt now let me print out wi one over here print of wi one and as you guys see initially we had John then we changed it to Sam and finally we have changed it to Matt so that was a basic intro to variables now another thing to be kept in mind is every variable variable has a data type associated with it so when you’re working with data that data can be present in any format so when you’re working with numbers such as 10 500 – 1000 – 323 these are called as integers and when you work with decimal point numbers so decimal point numbers such as 3.14 15.97% Point numbers then we have something called as Boolean values so Boolean values are basically you have only zero and one or you can also tag them as true and false so you have only two values over here and those two values are true and false or you can also tag them as zero and one then we have strings so strings are something which you put in single quotes double Cotes or triple Cotes so these are the four four main data types over here in Python so let’s go ahead and look at an example of each of these now I’m going to start off by creating an integer variable so I’ll name this integer variable as num one and I’ll store the value of 10 inside this and just to see what is the data type of this I will use the type method and inside the type method I’ll be passing in Num one and as you you guys see this tells us that the data type of this particular variable is integer then I’ll go ahead and pass in a floating Point number or a decimal number so I’ll call this as let’s say decimate and in decimate maybe I’ll store in the value of 3.14 now let me go ahead and check the type of decimate so inside this I’ll pass in decimate and when I click on run you guys see that this is of floating type then we have the next data type which is of Bulan so here I will have maybe another variable called as log one and inside log one I will store in the value true let me hit run again and then let me check the type of log one so inside type I’ll pass in the variable log one and as you guys see this tells us that this is of bu bu basically means this is of Boolean or logical type and then we’ve got the character or string so this time I’ll have my variable as car one and inside this I will store the name let’s say I’ll store the name Arjun over here then let me check the type of car one and when I hit run you see that this tells us that this is a string type variable we also have another variable over here or another data type over here which is of complex type so complex is basically a data type where you have a real part and an imaginary part so let’s say if I write something called as 3 + 5j so here three would be your real part and 5j would be your imaginary part you would have learned about complex numbers in your primary or in your secondary school so normally in math this J is represented as I so You’ have something called as 3 + 5 I where 3 would be your real part five would be your imaginary part so in Python this I is represented with j instead of I so now I’ll go ahead and store this in a variable called as comp 1 now let me go ahead and check the type of this so type of comp one and I see that this is of complex type so we have successfully under Ood what are variables and we have also looked at the different data types of variable can have now we’ll go ahead to the next Concept in Python which will be operators and as the name suggests operators help us to perform simple operations on this data and we’ve got arithmetic operators relational operators and logical operators so we’ll start with the first set of operators which are the arithmetic operators let me go ahead to this jupyter notebook over here and what I’ll do is I will clear out everything which is present in the console so this scissors which you see if you click on the scissors symbol you’ll be able to cut out all of these cells now let me add a comment so what is a comment comment is something which is not executed by the python interpreter and you can add a comment with this hash symbol so after this hash symbol I am going ahead and writing arithmetic operators I’ll click on run and as you see this is not executed over here so whenever you add a hash symbol over here python interpreter automatically recognizes whatever follows hash symbol as a comment now if I remove this hash symbol and then if I click on run You’ see that we get this errow which tells us that this is invalid syntax because if we don’t add the hash symbol over here then python interpreter would consider this these two actually as two separate variables and since we have not declared any variable called as arithmetic or as operator this is giving us this error so I’ll just go ahead and add this hash over here now after this since we have to perform arithmetic operators and arithmetic operators basically constitute of plus we have have plus then we have minus then we have multiplication and then we have division now I’ll create two variables over here I’ll have first variable num one and I’ll store the value of 10 inside this then I’ll have the second variable num two and I’ll go ahead and store the value of 20 inside this now after creating these two variables let me perform the basic arithmetic operations so I’ll start start off by adding num one and num two so I’ll type num one plus num 2 and when I perform num 1 plus num two I get a result of 30 so basically if you want to add two numbers you have to use the plus symbol between those two operant and since 10 is stored in Num one 20 is stored in Num two we get a result of 30 then similarly I’ll go ahead and perform the subtraction op operation so here I’ll have num one minus num 2 and when I type num 1 minus num 2 I get a result of – 10 because 10 – 20 is – 10 going ahead I’ll also perform multiplication and to perform multiplication I’d have to type num one into num 2 and when I have num one into num2 over here which is basically 10 into 20 I I get a result of 200 then we are only left with division so to perform division I’ll have num one then I’ll use the forward slash symbol which denotes division then I’ll have the second operant over here which is num two and I’ll click on run and as you guys see when we divide 10 with 20 we get a result of 0.5 so these were some basic arithmetic operations now we’ll go ahead and and work with relational operators so I’ll just add another comment over here and I’ll add the comment as relational operators and what are the relational operators these help us to find the relationship between two operant so we can understand if one operant or the value of one operant is less than the other operant or maybe the value of one operant is greater than the other operant so we will have less than symbol greater than symbol equal to symbol and not equal to symbol now again we will use the same variables num one and num two let me just print out num one and num two over here for your sake and as you guys see we have 10 stored in Num one and 20 stored in Num two now I want to check if the value in Num one is less than the value in Num two so I’ll type num one I’ll use the less than symbol then I’ll type num2 over here I’ll click on run and as you guys see I get the result as true which means that num one is less than 20 which we get because 10 is obviously less than 20 now I want to check if the value in Num one is greater than the value in Num two and when I hit run I get a false value because 10 is not greater than 20 now going ahead I want to check if the value in Num one is equal to the value in Num two so this what you see is the double equal to operator you have to understand the difference between the double equal to operator and the single equal to operator so this is the single equal to operator and with the help of single equal to operator we are assigning a value to a variable but when we are using this double equal to operator this helps us to understand if these two values if the operant on the left hand side and the operant on the right hand side are equal to each other or not and when I click on run I get a false value because 10 is obviously not equal to 20 then going ahead I have the not equal to operator so I’ll have num one so not equal to operator is represented like this so I’ll have exclamation mark then I’ll have the equal to symbol then I’ll have num two over here and I get a True Result because 10 is obviously not equal to 20 so these were some of the relational operators going ahead we’ll work with logical operators so I’ll add a comment over here which would be logical operators and we have two logical operators which are and or let’s start with and so and is a logical operator which would give us a True Result only when the both of the operant are true but R is a logical operator which would give us a True Result when either of the oper end is true so let’s understand this in detail so this time I will be creating two Boolean variables over here I’ll have log one and in log one I’ll have the value true stored then I’ll have log two and in log two I’ll have the value false stored so I have log one and log two over here now I’ll perform the and operator on both of these so let me go ahead and type log one and log 2 and when I hit run I get a false value because log one is true log two is false true and false will give us a false result now let me see what will happen when I have log 2 and log one again I get a false result because false and true is also so false now let me check log 2 and log 2 log 2 and log 2 will also give me false because false and false is also false and finally I’ll check log one and log one log one and log one will give me a True Result because and operator gives a True Result only when both of the oper are true now we’ll head on to the or operator so this time I’ll have log 1 or log 2 now true or false will give me a True Result because or will give me a True Result when either of the operant is true then I’ll have log 2 or log one and this again gives me a True Result because false or true is again true then I’ll have log one or log 2 and this again will let me actually change this to log one or log one and this will give me a True Result because true or true is also true and finally we’ll have log 2 or log 2 and this is the only case where we’ll have a false result which is false or false so only in the case where both of your operons are false that is when you will get a false result when you’re working with the or operator so this was all about about the different types of operators in Python now we’ll understand what exactly are python tokens so python token is the smallest meaningful component in a program so when you combine all of these python tokens together that is when you get your final python code so the basic python tokens are keywords identifiers literals and operators so we have already worked with operators which were one of the tokens in Python now we’ll go ahead and understand what are keywords identifiers and literals so we’ll start with python keywords python keywords as it is stated are special reserved words so when I say special reserved words you can’t use these special reserved words for any other purpose which would mean that you can’t give the name of a variable or the name of a function or maybe the name of a class with these python keywords and you have some of these reserved keywords over here which are if def Dell true false while not or return so these are some of the Python keywords now let me just show you how to use these so let if I type in DF so as you guys have seen over here when I type DF this automatically turns into green so python interpreter recognizes this word def as a keyword now let’s say if I try to store something in this def is equal to 10 I get an error because since this is a keyword I can’t use this as a variable similarly let’s say if I have if if again is a keyword and that is why this turns into green then we have something called as identifiers so identifiers are basically the names used for variables functions or objects so till now we had created some variables called as V one or num one or log one so those all are identifiers so the names which you give to the variables functions or objects are known as the identifiers so let’s say if you have a person and the name of that person is Arjun or Sam or Matt so here the names of these people are the identifiers similarly as you need a name to identify a human being that is how you will also need an identify to understand or to call or invoke a variable function or object and this is the simple analogy between the real life and these python identifiers and there are some basic rules when you’re working with these identifiers so the first rule is you cannot have an identifier with special characters so you can have underscore but instead of un uh except underscore you can’t have any other special characters in the name of the identifier and also identifiers are case sensitive so let’s say if you create a variable called as W one with v in small Cas and then you create a variable as V one with v in capital K then both of them will constitute as different variables and then also you have another rule over here which states that the first letter cannot be a digit so these are some basic rules which normally a python coder keeps in mind so let’s go ahead and understand about these rules in Python so I have told you guys that special characters cannot be used in the name so let’s say if I have J personent and I have this over here and if I try to store the value 10 inside this let me click on run so you see that we have a syntax error over here similarly what I’ll do is I’ll have a variable called as N1 and inside N1 I’ll store the value 10 then I’ll have the value Capital N1 and inside this I’ll store the value 20 now let me print in both of these N1 with a small n and N1 with a capital N and as you guys see both of these values are different because both of those variables are different so this is about python identifiers then we have something called as literals and literals are just the constants in python so constant is a value which does not change so whatever values you are storing inside a variable that is called as a literal so here when you’re storing 10 into N1 10 would be literal similarly when you’re storing the value 20 into N1 20 would be your literal then over here when you’re storing the value such as 10 into num1 20 into num2 again they are your literals now we’ll head on to an interesting topic in Python where we’ll understand about strings in Python so what are strings strings are basically sequence of characters which are enclosed within single quotes double quotes or triple quotes and we already know that and we have already seen an example of python strings so let me just give you an example of all three of these where I’m creating a string with single Cotes double codes and triple codes let me go ahead and remove all of this over here because I like it clean let me just remove all of this stuff from over here now what I’ll do is I will create a new string variable called as St str1 and the value I’ll be creating with single codes and inside this I’ll just type hello world and I’ll print out s str1 over here and I have successfully created the string s str1 with Hello World then I’ll have Str str2 and in Str str2 I’ll be creating this with double codes and over here I’ll just type in this is Sparta and I’ll print out s str2 over here going ahead I’ll have another variable called as s str3 and this time I’ll create a multi-line string so if you want to create a multi-line string we can create it using triple codes so I’ll have triple codes over here and inside this I’ll just type I am going to France tomorrow let me run this and let me print out sdr3 right now so as you guys see I have successfully created a string called as I am going to France tomorrow and this what you see backwards sln that indicates a new line so after I am we have backwards sln which tells us that going to comes in a new line similarly we have backward sln followed by France tomorrow which tells us that this again is in a new line so this is some basic idea about strings in Python now that we know this let’s actually see how can we extract individual characters from a string so here we have created a string called as my string so the name of the variable is my string and the value which is stored inside this is my name is John now if we want to extract individual characters we have to understand the concept of index so here these characters are present at indices and the index value starts from zero so here m is present at index z y is present at index one the space is present at index two right so similarly all of these have a particular index assigned to them and the index value starts from zero and if you want to extract this particular character or the first character from a string we’ have to give the name of the string we’ have to give the parenthesis and inside the parenthesis we will given the index value that we would want to extract and since I want to extract the first character we have to give index Z and that is how we were able to extract this then similarly if I want to extract the last character so the index of the last character will be minus1 so either you can manually count the last value over here so that is basically time consuming instead of counting the index if you just want to directly extract the last character then you can just go ahead and give it minus one and that will automatically give you the last character which is present in the string so let’s go ahead and perform these operations in jupyter Notebook let me add in a new cell over here insert cell below and I’ll go ahead and create a string called as my string and over here I’ll have let’s say a string called as my name is John let me print out my string over here now after this I’d want to extract the first character so if I want to extract the first character I’ll just type my string I’ll give in parenthesis I’ll have one written over here and I’ll actually have to give zero because the first character is presented the zero what index so guys this is important you’d have to remember that in Python the indexing starts from zero so this is how I have extracted the first character now similarly if I want to extract the last character which is n then I will give minus1 over here and as you guys see I am able to extract the last character now similarly let’s say if I want to extract this a so this is presented 0 1 2 3 and 4 this is presented index number four so let me just given four over here and as you guys see I have successfully extracted this particular element from this entire string now we’ll go ahead and work with some string functions so the first string function is len which will give us the length or the number of characters which are present in the string so all we have to do is use Len and inside that we will pass in the name of the string so when we pass in my string this tells us that the length of the string is 15 and similarly let’s say if I want to convert all of the characters in The String into lower case we have the lower method so all I’ll do is type in my string. lower and this will convert all of the characters into lower ke and a method which is an analogous to lower is the upper method so I’ll type my string. upper and with the help of this I’ll be able to convert all of the characters into uppercase which you see in the result over here so I have my string ready now I would want to check the length of this and inside l n I will pass in my string and this would tell us that the length of the string is 15 now similarly if I so you see as you see over here we’ve got two Capital characters over here m is capital G is capital I’d want to convert them into lower case so for that purpose first I’d have to given the string name which is my string I’ll use the dot operator then I’ll use the lower method and when I click on run you will see that all of the characters have been converted into Lower Keys now similarly if I want to convert all of the characters into up upper case I’ll go ahead and type my string I’ll use a DOT operator and then I’ll have upper written over here I’ll click on run and as you guys see I have converted all the characters into upper case now we’ll go ahead and see some more function so we’ve got the replace method over here and we’ve got the count method so if I want to replace some particular character or some particular string with another string then we can use the replace method so again first we have to give in the name of the string which is my string I’ll use the dot operator then I’ll use replace method and it takes in two parameters the first parameter is basically that character which I’d want to replace so as you see over here initially we had y over here I want to replace that y with a so initially the sentence was my name is John but I have changed that to myone name is John so quite an interesting method isn’t it then we have the count method so here we have created a new string where we have stored the value hello hello world and if I want to check the count of the number of times a world occurs or number of times a particular substring occurs then we can just pass in the substring into this method so if I want to understand the number of times this substring hello occurs in this entire string so if I pass in hello this tells me that the substring hello occurs two times in the entire string over here so let’s work with this replace method and the count method so we already have this my string variable ready and let’s say instead of my name is John I would want to change the name over here so instead of my name is John I would want to change that to my name is Sam so I’ll have my string then I will use the replace method over here and we already know this takes in two parameters the first parameter is a substring which I’d want to replace so I would want to replace John and I’d want to replace it with let me actually keep it like this and I want to replace it with Sam and when I click on run you would see that I have successfully changed the substring from John to Sam then we have the count method let me create this new string variable over here I’ll have new string and inside this I’ll store hello hello world now that we have this what I’ll do is I will go ahead and use the count method so I’ll have new string and use the count method and inside this I’ll pass in hello and when I pass in hello this tells me that the substring hello is occurring two times now we have two more string functions over here so now we have the find function so the find function helps us to find the index or the starting of the index of a particular substring as you see over here if I want to know the starting index value of this substring part up I’ll just pass this entire substring into this method find and this gives us the value of 8 so let’s just understand this so now if I count the index it’ll be 0 1 2 3 4 5 6 7 and 8 so as you see this s is placed at index number 8 and that is what this find method gives us so let’s say similarly if I would have passed an S into this find method then this would have given us the result of 0 1 2 3 4 and five then we have another method called as split so the split method helps us to divide this string into a list of substrings on the basis of one split criteria so here we’ve got this entire string called as I like apples mangoes and bananas and I would want to divide this entire string into multiple subrings on the basis of comma so here whever this method encounters comma it will separate or segregate it into a substring so I like apples becomes one substring mangoes become second substring bananas becomes the third substring let’s go ahead and Implement an example of these two let me write s str1 over here and what I’ll do is I’ll just have a new value here let’s just say I’ll just type I love Piza and and I would want to know the starting index of this substring pza so I’ll have S str1 do find and inside this I’ll just pass in Piza and we get the result of seven so let’s just verify this 0 1 2 3 4 5 6 and 7 now we’ll go ahead and work with the split method so for that purpose we’ have to create a new string value and I’ll name it as fruit and here I’ll just type in I like apples guas bananas and I’ll also write maybe strawberries then I’ll use the split method fruit do split inside this I’ll give in the separator which will become comma and I’ve got a list of substrings I like apples becomes one substring guavas becomes the next bananas is the next substring and then we have strawberries as the final substring now we’ll go ahead and work with the next data structure in Python which is a list so when it came to a tuple that was an ordered collection of elements enclosed within round braces but a list is an ordered collection of elements which is enclosed within Square braces and that is not the only difference so tups were immutable that is when you created the elements inside a tuple you could not change them later on but when you create a list you can actually change the values which are present in it and this is how we create a list so L1 that is the name of the list which I’m creating and I’ll have square braces and I’ll have these different elements stored inside it let me delete all of these over here and let me start fresh for the list I’ll add a new comment which will be list and inside this I’ll name the object as L1 I’ll have square braces over here I’ll have one e and true let me print out L1 and this is a new list now let me go ahead and check the type of this inside type I will pass in L1 and as you guys see this tells us that this is a list now as we had extracted individual elements from a tuple similarly we can go ahead and extract individual elements elements from a list as well and it is the same process so over here we’ve got all of these elements and the indexing starts from zero so it is very important keep in mind guys so the indexing of a list or whatever data structure you’re working with in Python it starts from zero and if I want to extract the second element over here the index of the second element will be one because this is index number zero this is index number one and when I pass in L1 of one I’ll be able to extract this particular element from this entire list similarly if I want to extract a series of elements so I’ve got all of these if I want to start from index number two so this will be index number two so we’ve got 0 1 and two and this will go on till index number four so as I’ve already told you when it comes to python the outer limit is exclusive so when we give it till five we will be only able to extract the index number four so that is why over here we’ll be extracting 2 B and 3 let me create L2 over here and I’ll have some elements I’ll have 1 a then I’ll have two then I’ll have B after that I’ll have three and going ahead I’ll also have C over here I have successfully created L2 let me print this out and now if I want to extract let’s say B from this let’s see what would be the index it’ll be 0 1 2 and 3 so I’d have to give in L2 inside the parenthesis I’d have to give three and I am able to extract this particular element from the similarly if I want to extract the last element I’ll give in L2 I’ll give in minus1 over here and I able to extract the last element and if I want to extract a series of elements then in that case all I have to do is given an L2 and as we saw in the example if I want to extract 2 B and 3 so the index for this is 0 1 and 2 I’ll give it two over here and if I want to extract till three so this will be 2 three and four so that is why i’ have to give index number five as well and we are able to extract 2 B and three from this entire list now let’s see how can we modify a list so we have the same list over here and initially at index number zero we have the element one but if I want to change it to some other element all I have to do is given the index number and I have to assign a new value to that particular index number so as you guys see I am assigning the value of 100 to this particular index number and I’m able to change this value of one to 100 now we can also append a new element at the end or pop the last element and to add a new element at the end we will be using the append method so it have to given the name of the list we’ll use dot operator and then we’ll use the end method and we’ll just give the value which we’ want to append so when I type in Sparta over here this gets appended at the end of the list now similarly we can go ahead and pop the last element so if we have to pop the last element popping basically means removing the last element so we would have to use L1 do popop and it automatically removes the last element so as you guys see we had added Sparta but after using the pop method this Sparta value was removed from this list now we have the same list over here which is L1 let me actually I’ll have L2 over here not L1 let me print an L2 for you guys over here and I’d want to change let’s say this particular value here so let’s say instead of a I’d want Z so I’ll have L2 and the index for that is one and instead of a i’ want to store Z inside this and let me print out L2 again so initially we had a but after changing it we have Z over there now we’ll see how to append an element at the end of this list so we’ have to give L2 I’ll use dot operator then I’ll be using the epen method and inside this I’ll just add this word called as python let me print in L2 for you guys and I have added python at the end of this now if I want to pop this out I have to write l2. pop and when I click on run we see that this has been popped out and let me print out L2 again for your reference we see that the last element has been removed now there are some more modifications which we can perform on the list so let’s say if we want to reverse the elements which are present in a list so as you see in L1 we have all of these elements over here and if I want to reverse the order of these elements all I have to do is use the reverse method so I’ll type in L1 do reverse and when I print this out we see that the elements are printed backward then if we want to insert an element at one particular index value so when we use the append method we were able to add an element at the end of a list but instead of adding an element at the end of a list if we want to insert an element at some particular index then this is how we can do so I’ll have L1 do insert then I’ll give the index position where I’d want to insert so initially at index number one we have this value a but now at index number one I want to insert Sparta so this takes in two parameters first parameter is the index at which I’d want to insert second parameter is the value which I’d want to insert and as you guys see I have inserted Sparta at index number one now here as you see the rest of the elements have been shifted one index towards the right so a which was initially present at index number one is now present at index number number two two which was initially presented index number two is now shifted to index number three so each element shifts towards the right by one index value then we can also go ahead and sort a list so we have all of these elements over here now if you want to sort these elements in alphabetical order then we can just go ahead and use the sort method and this sort method sorts all of these with respect to alphabets so we have apple followed by banana followed by guava and then finally we have mango so let’s use the reverse method insert method and the sort method in jupyter Notebook so we have the same L2 over here now if I want to reverse this I’ll just type in l2. reverse and when I click on run this has been executed now let me print in L2 so as you guys see initially we had this particular sequence over here which was 1 Z 2 B 3 and c and after using the reverse method the elements have been reversed now we will go ahead and add an element at one particular index so if I want to add something at maybe index number three so now we’ve got 0 1 2 3 so we’ve got two which is present at index number three but now let’s say I’ll have L2 do insert and at index number three I’d want to insert great learning and let me hit run and let me print out L2 and as you guys I see at index number three I have inserted great learning and the elements which are followed after that shift towards the right by one index value now finally we’ll see how to sort a list so I’ll have L3 and inside this I’ll have some elements so I will have Apple after that I’ll have mango then let me actually change the sequence over here so let me start off with mango first then I I’ll have apple going ahead I’ll have guaa and then maybe I’ll have lii now this is the sequence which is present in this list and if I want to sort this out I would just have to use the sort method so when I hit l3. salt so this has to be a list and not a duple so this has to be square braces you guys have to keep that in mind let me change this over here let me cut all of this out and let me paste it over here and as you guys see this method has been executed and when I hit on run we have changed the order so we’ve got Apple followed by guava followed by lii and we have mango at the last now we can also perform the same concatenation and repeating operations on list as well so here we have L1 where we have the elements 1 2 and 3 then we have L2 where we have the elements a b and c and if I want to concatenate this L2 at the end of L1 all I have to do is use the plus operator and when I use L1 + L2 this is what I get I’ll have 1 2 3 a b and c and if I want to repeat the elements which are present in a list I would just have to multiply the name of the list with a particular scalar number so as you guys see I am multiplying L1 with three and I have repeated these elements three times so here I’ll just have concatenating a list and I’ll have I’ll just go ahead and create two lists over here inside L1 I’ll have 1 2 and 3 inside L2 I will have a b and I’ll also have C now I’ll perform L1 plus L2 and we have appended L2 at the end of L1 you have to understand that L1 + L2 and L2 + L1 would give you different results so now when I actually type in L2 + L1 you would see that we have appended L1 at the end of L2 so this sequence also changes when you change the sequence with the plus operator over here now let’s go ahead and repeat the elements so I’ll have repeat list and I let’s say if I want to repeat the elements which are present in L2 so I’ll just multiply L2 with let’s say five because I want the elements to be repeated five times so I have a b and c being repeated five times now we’ll head on to the main component which is about the different data structures in Python so we have Tuple list dictionary and set let’s start off with the first data structure which is a tuple so till now when we have worked with single variables you were able to store only one value or a single value inside a variable but with the help of these different data structures such as Tuple list set and dictionary we’ll be able to store multiple elements inside a data structure and it’s not that we can store only multiple elements of a single data type we can also store elements of different classes or different types into this data structure so let’s start with Tuple what exactly is a tuple is an a collection of elements enclosed within round braces and tuples are immutable what do I mean when I say tuples are immutable so what this basically means is if you create a tuple then you can’t go ahead and change any of the values present in it later on a tuple cannot be modified once you create it and this is the example of a tuple over here so we have round braces inside the round braces I have stored the elements 1 a and true so as you see I have elements of different types so we can store elements of different types into a tuple so let me create my first Tuple in Jupiter notebook I’ll type in let me actually have this in a fresh space I’ll add the comment Tuple and over here I’ll type in tup1 I’ll have round braces over here so first element is one then I’ll have Sparta then I’ll have true over here and then let me just print out T1 so I have created this Tuple now let me check the type of this type inside this I will pass in tp1 and this tells us that this is a tuple now if I want to extract individual elements from a tuple how can I do that well the process is pretty much similar as when compared two strings so if we want to extract the first element from a tuple so as you guys see over here I have created a tuple which comprise of all of these elements 1 a true 2 B false and if I want to extract the first element since the first element is presented index number zero I’d have to given the name of the Tuple and inside the parenthesis I’d have to given the index value which will be zero and I have extracted this particular element from this entire Tuple similarly if I want to extract the last St element so if I want to extract the last element I just have to give in minus1 so in P1 I’ll give in minus1 and with the help of this I am able to extract the last element now if I want to extract a continuous sequence of elements so here if I want to extract a true and two which is a continuous sequence of elements I’d have to give something like this so inside the parenthesis I’ll given 1 colon 4 so this is the starting value of the index this is the ending value of the index now here when it comes to python you have to keep in mind that the ending value is exclusive the starting value is inclusive so when you give one the starting index value a right so we have one and we have extracted this element but when you given four this only goes till index number three so that is why we have extracted only a true and two so two is presented index number three we have extracted a true and two but when we have index number four so index number four we have the value B but this is not extracted because index number four is exclusive so let’s go ahead and create a new Tuple and extract some elements from those tuples so what I’ll do right now is I will have a new Tuple called as tup2 and let me just store some random values inside this I’ll have 1 a true then I’ll have two B B and I’ll have false inside this so I have created T2 now if I want to extract the first element so that is obviously present at index number zero I’ll just type in T2 and inside this I’ll give in the index value which is zero and as you guys see I was able to extract this particular element from this entire Tuple now similarly if I want to extract the last element so I’d have to type in T2 I’d have to give in the parenthesis and to extract the last element I’d have to give minus1 and if I want to extract a series of elements so let’s say if I want to extract true two and B so here true the index value would be two so I’ll have T2 the starting index value is 2 and this two 3 4 5 so since this goes till 5 five is also included I would have to give 6 0 1 2 3 4 5 this will go till six let me hit run and as you guys see I have included true 2 B and false if I let’s say Wanted only till B so this will be 2 3 4 and if I since this has to be included I’ll just given five over here and I have extracted only true two and B now we’ll actually try to modify a tuple so initially I had told you guys that that a tuple is immutable now when I say a tuple is immutable I would basically mean that whatever you store inside it cannot be changed so here I’m actually trying to change the value which I had actually stored in a tuple so as you guys see T1 and inside this the whatever element was present at index number two I am trying to change it but we get an error over here and the error is duple object does not support item assignment so let me just print an tup2 over here I’ll hit run and let’s say if I want to change this particular value so I have this is present at 0 1 2 and three index number three so tup2 and index number three I’d want to change that from 2 to 20 let’s see what do we get we get the same error Tuple object does not support item assignment because Tuple is an immutable object and that is why you cannot go ahead and change whatever is stored inside a tuple so we have seen that a tuple cannot be modified now let’s go ahead and perform some basic operations on top of the Tuple so here we have the same Tuple where we have all of these elements over here 1 a true 2 B and false now if you want to find out the length of a tuple or in other words you would want to find out how many elements are present in a tuple then we can just go ahead and use this Len method so this would give us the number of elements El which are present in this Tuple and as you see over here we’ve got six elements and that is the result over here then going ahead we can also concatenate two tuples that is we can attach the elements of one Tuple to the back end of another Tuple so here we have tp1 where we have elements 1 2 and 3 then we have T2 where we have elements four 5 and six now when we are trying to concatenate all we have to do is use the plus symbol or the plus operator and when we use tup 1 + T2 we get the result 1 2 3 4 5 6 so let’s go ahead and perform these operations in Jupiter notebook so I’ll just create the tup again over here I have T1 and let me add in some elements so I’ll have 1 a true then I’ll have 2 B and then I’ll also have false over here so I have created this stuple now if I want to check the length of it all I have to do is use the L en method and inside this I will be passing in the object and as you guys see we have the result which tells us that there are six elements present in this Tuple now I’ll create two more tupal I’ll have tup2 over here and inside this I will have the elements 1 2 and 3 going ahead I’ll create another Tuple with the name T3 and inside this I will store the elements four 5 and six now I would have to perform tup2 plus T3 let me change the spelling over here and as you guys see we have concatenated these elements at the back end of T2 so this was a very simple operation now if we want to repeat the elements which are present in a tuple that is also something which we can perform so here in this Tuple we just have two elements which are Sparta and 300 now if you want to repeat these elements a certain amount of time then we have to multiply this with a scalar number so here when I’m multiplying tup 1 with three I get Sparta 300 Sparta 300 and Sparta 300 which basically means I am just repeating these elements three times now we can also perform repeating and concatenating at the same point of time so here we have tup1 and T2 so first what I’m doing is I am repeating the elements which are present in T1 so here when I use tup1 into three the elements are repeated three times so I have Sparta 300 repeating three times then I am attaching or concatenating tup2 at the back end of this so let me add a comment over here I’ll just have repeating elements in a tuple and now I have this tp1 over here let me just print out T1 and if I want to repeat these elements three times all I have to do is type in tup1 into three and let’s see so as you guys see 1 a true 2 B false so we have this once then the same thing is being repeated twice and the same thing is being repeated twice now similarly if I want the entire thing to be repeated five times I would have to multiply this with five so as you guys see I have repeated all of the elements five times now we’ll do repetition and concatenation at the same time I’ll add a new comment over here repetition and concatenation I’ll have two tuples over here I’ll have T1 where I’ll have let’s say a b and then I’ll have C then I’ll go ahead and create a new Tuple which will be tup2 and inside this I will have x y and then I’ll also have Z and now this is an interesting operation so I’ll have T1 into 3 plus T2 and let’s see the result so as you guys see I have repeated the elements which are present in tup1 three times so I have ABC ABC and ABC then I’m adding this at the back end of it and I get X Y and Z so this was another simple operation now we also have some simple Tuple functions so if you have a tuple and if you want to find out the minimum value and the maximum value which are present in it all we have to do is use the Min method and the max method so over here I have these elements and if I want to find out the minimum value which is present over here all I have to do is use the Min method and I pass in the tp1 object inside this and as you guys see this method tells us that the minimum value which is present in this duple is one going ahead similarly we use the max method and when we pass in tup1 this tells us that the maximum value which is present in this Tuple is five so I’ll have tup1 and let me add some numerical values inside this so I’ll add some random numbers in a random order over here so I have 8251 07 now if I want to I have to remove the C over here now if I want to find out the minimum value which is present in it all I have to do is use the Min method and inside this I’ll be passing in tup1 and as you guys see this method tells us that the minimum value which is present in this duple is zero similarly if you want to find out the maximum value I’ll use the max method and inside this I’ll again pass in tup1 and we get the result of eight this brings us to the end of this tutorial on tuples and python so dictionary is an unordered collection of key value pairs enclosed within curly braces and a dictionary again is mutable so what exactly are key value pairs let’s see an example of that so over here we are creating a dictionary where we have two key value pairs so the first key is Apple second key is orange first value is 10 second value is 20 so you can also consider it this way let’s say we have the name of the fruit and the cost of the fruit or maybe the quantity of the fruit so we have apple and let’s say there are 10 apples then we have orange and let’s say there are 20 oranges and you will be separating the key with the value with this colen over here now let me just delete all of this and let’s start fresh for our dictionary so instead of list I’ll just type in dictionary over here and let’s say I’ll create this dictionary like this and I’ll have um let’s say my first fruit is mango and I have 10 mangoes with me then I’ll have apple and let’s say I have 20 apples then I have lii and I have 30 lies and finally I would have strawberry and I would have 40 strawberries with me let me print out the result over here so this is our first dictionary which we have just created and just to ensure that we have actually created a dictionary let me check the type of it so type of root would tell us that this is of dict type which is basically a dictionary now once we have created a dictionary we can actually go ahead and extract the individual keys and values which are present over here so this is our dictionary and if you want to extract only the keys so this what you see on the left side of the colon those are our keys and if you want to extract only the keys all you have to do is use the name of the dictionary follow it up with the keys method and we’ll get all of the keys which are present in this dictionary similarly if you want to extract all of the values we would have to use the values method so when I type in fruit. values I am able to extract all of the values which are present over here so I’ll have fruit which is a dictionary which is already present and if I want to extract all of the keys I’ll just go ahead and use the keys method and as you guys see I am able to extract all of the keys which are present similarly if I want to EXT ex ract the values I’ll type in fruit. values and I have extracted all of the values which are present now since dictionary is mutable we can modify it so that would mean we can add a new element or we can change an existing element so here we had only four elements but if I want to add a Fifth Element so here we don’t have mango initially but if I want to add mango all I have to do is use the name of the dictionary then inside parenthesis I’ll add the new key so this what you see inside parenthesis I’m adding the new key and I’m adding the value to it so here as you guys see I have attach this new key value pair at the end of this dictionary similarly if I want to change an existing element so initially the value of Apple was 10 but if I want to change the value then inside the parenthesis I’ll just give in the key and I’ll assign a new value to it so initially we had 10 now we have modified it to 100 now we’ll see how to add a new element so I’ll have fruit over here let me just print it out we have four elements now let me add a new element inside this so I’ll have fruit I’ll have the square braces and let’s say the new fruit which I’ll be adding this guaa and let’s say I have 50 guavas with me and let me print out fruit right now and let’s check the result so as you guys see we have attached this new key value pair at the end of this dictionary and finally let’s see actually how can we modify an existing elements so we’ve got let’s say if I want to modify this particular key value pair so I have lii and the value of lii is 30 so I’ll have fruit inside this I’ll give in the key which is lii and I want to change 30 to 300 I’ll just assign 300 to this and let me print this out and as you guys see initially the value was 30 I have successfully changed it to 100 now we’ll go ahead and work with some dictionary functions so let’s say if we have two dictionaries over here we have fruit one and fruit two so in Fruit one we have Apple and Orange in Fruit two we have banana and guaa and if I want to append the elements of fruit two to fruit one or in other words if you want to concatenate the fruit two values to fruit one all we have to do is use the update method so I have fruit one and I’ll use update method and I’ll pass in Fruit two inside this so as you guys see we have appended banana and guaa to the end of fruit one then similarly we can go ahead and pop an element from a dictionary so we can uh so if we want to pop any key value pair so inside the pop method we would have to give the key which we want to pop so we had orange but I don’t really like oranges so that is why I went ahead and I popped out Orange so as you guys see orange is not present in this particular list now let’s create two more dictionaries I have fruit one and I’ll have two fruits inside this so I’ll start with mango and I have 10 mangoes then I’ll have apple and maybe I have 20 apples with me then I’ll have fruit two and in Fruit 2 let’s say I’ll start off with guaa and I have 30 guavas with me then going ahead I’ll have lii and I’ll have 40 Lees with me so I have created these two dictionaries so we have made a mistake over here let’s actually check what this mistake is so instead of the equal to operator I’d have to give colon over here that is important so I have created fruit one and fruit two let me print out fruit one and fruit two for your sake and once we have printed these two let me go ahead and actually epen the values of root2 to fruit one so for this I’d have to use fruit one then I’ll Us in the dot operator over here and after that I will use the update method and inside the update method I’ll be passing in Fruit two and let me print out let me close this first now let me go ahead and print out fruit one now as you guys see I have appended the values of frot 2 to fruit 1 now we have frot one already but let’s say if I want to pop out something from this so let’s say from this if I want to pop out the value of lii I’ll have fruit one then I’ll use the pop method so fruit one. pop so we have an error because we’d actually have to give a key inside this so because I’d want to pop out lii I’ll give an lii over here and we have successfully popped out lii from this now we’ll head on to the last data structure in Python which is set so set is an unordered and unindexed collection of elements enclosed within Square braces so when we say unordered so in whatever sequence you insert the elements in a set those that particular order does not remain intact and also when we say it is not indexed you can’t extract elements from a set with a particular index value because there is no proper ordering and also you’d have to keep in mind that in a set duplicates are not allowed so you can’t have the same element twice but if you actually given the same element twice what happens is the set takes it only once and uh we are creating one particular set over here and if you want to add a new element inside this so initially we are creating this set where we have all of these elements we have 1 a true 2 2 B and false and if I want to add a new element at the end of this or somewhere so I’ll just use S1 do add and this is how we can insert the new element inside this now let’s say instead of adding just one particular element if I want to add multiple elements at the same time so instead of the add method we will be using the update method and with the update method I am passing in these list of values which are 10 20 and 30 and as you guys see I have inserted 10 20 and 30 inside this but then again you have to keep in mind that the order is not maintained in a set so these are inserted randomly and if you want to remove a particular

    element you can just use the remove method and you will pass in the element that You’ want to remove again since there is no indexing you can’t remove elements with an index value you would have to give the value which You’ want to remove explicitly so let’s create our first set so I’ll have S1 I’ll just add some elements over here I’ll have a b c d e and f let me print out S1 for your reference and this is what we have now let’s say I’ll add some duplicates inside this and let’s see what happens so I’ll have a repeating three times then I’ll have B also repeating two times then I’ll have C repeating two times now if I print this out as you guys see we have only a b c d e and f even though a is repeating three times we will only have one unique value of a similarly even though B and C are repeating two times it’ll only have one unique value of B now if I want to go ahead and add add a new element inside this I’ll use the add method so S1 do add and inside this I’ll just add Sparta so when I use S1 do Sparta and when I print S1 so we have inserted Sparta over here similarly if you want to pop out something or remove something we will have to use the remove method so I’ll have S1 do remove over here and inside this let’s say if I want to remove the element e I’ll just pass in E over here and let me print out S1 again so we have successfully removed the element E from this entire set now we’ll work with some set functions so here we have two sets S1 and S2 in S1 we have the elements 1 2 and 3 in S2 we have the elements a b and c now if we want to combine all of the elements which are present in S1 and S2 then we can use the Union operator so S1 do Union S2 will give us a union of S1 and S2 and as you guys see in the resultant we have 1 2 3 A B and C similarly we have two sets over here and if you want only the common elements which are present in both of the sets so here we have 1 to six here we have 5 to 9 if you want the common elements I would use the intersection method so when I use S1 do intersection S2 you will see that we have five and six common in S1 and S2 and that is the result which we get let me have S1 over here and in this I’ll have 1 2 and three I’ll have S2 in which I’ll store four five and six now let me use the union operator so I’ll have S1 do Union and inside this I’ll be passing in S2 and as you guys see I have appended four5 6 at the end of S1 now similarly if I want to find out the common elements so let me make some modifications in S1 so in S1 let’s say I have from 1 2 3 4 and 5 and then S2 let’s see I have the elements 4 5 6 7 and 8 now if I want to find out the common elements which are present in S1 and S2 I’ll have S1 do intersect and inside this I’ll be passing in S2 and uh we seem to have an error over here so this has to be intersection and not intersect let me click on run so as you guys see by using the intersection operator we have the common elements which are four and five now we’ll understand about flow control statements in Python and then flow control statements we’ll have decision making statements and looping statements we’ll start off with decision making statements and as you can get from the name itself decision making statements would help us to make a decision on the basis of a condition and we have a very good example over here right in front of us so let’s say you would want to play football but it’s actually raining outside so the condition over here is if it’s raining outside then you can’t play you’d have to sit inside on the other hand if it’s not raining else it is not raining then you can go out and play football so this is a very good example of if El statement then let’s look at another example let’s say you have your main exam coming up and you go ahead and give a mock exam and in that mock exam if you score greater than 70 marks then your parents tell you that they’ll buy you an ice cream but on the other hand if you score less than 70 marks then you would have to give another mock test so this again is an example of IFL statement so now that we’ve understood how IFL statements work let’s go to Jupiter notebook and Implement them so here we have two variables A and B we have stored the value of 10 in a and 20 in B and we are trying to see if the value of B is greater than the value of B that is we are checking if 20 is greater than 10 and if that is evaluated to true it will just go ahead and print out B is greater than a and this is the syntax as you see you’ll give an if the keyword if you’ll follow it up with the condition and in the condition we are checking if B is greater than a so is 20 greater than 10 that is evaluated to true and since that is evaluated to true when I hit on run I’ll get this result which is B is greater than a now let me change the condition over here so instead of checking if B is greater than a I want to check if the value which is present in a is is greater than the value which is present in B so I’m basically checking if 10 is greater than 20 and obviously this evaluates to false and since this evaluates to false whatever is present inside the body of this if will be skipped out and when I hit run you’ll see that I’ll not get any result over here because this is evaluated to false so whenever if is evaluated to false you need something else so that is why we have this else keyword over here so here we are checking if a is greater than b and since this has been evaluated to false I’ll give an lse keyword over here and I will print out whatever will happen since this is false I would have to print out B is greater than a and when I hit on this you would see that I’ll get B is greater than a and which is actually right so this is about if else condition then we have another variation of if else which is if L if else so with the help of this we can compare multiple variables together or we can have multiple conditions together and this time I’d want to find out the greatest value among three values so I have three variables over here A B and C I’m showing the value of 10 in a the value of 20 in B and the value of 30 in C and once I do that using if I start off by checking if the value of a is greater than b and also if the value of a is greater than C so as you can look over here I am giving two conditions and those two conditions have been joined with the help of this and operator if a is greater than b and if a is greater than C and if that is the case I’ll go ahead and print out a is the greatest and if either of these is evaluated to false then with respect to and operator you know that if either of these is false or both of them are false then this part will be skipped so here if a is greater than b we are checking if 10 is greater than 20 that is obviously false and we here we are checking if a is greater than C so is 10 greater than 30 that again is false so false and false will be evaluated to false and that is why we’ll be skipping out this particular line then we’ll head on to LF and this time we are checking if B is greater than a and b is greater than C so B is greater than a 20 is greater than 10 this is evaluated to true after this we are checking if 20 is greater than 30 this is evaluated to false so true and false is again false and that is why we’ll skip this as well and finally we’ll enter the final L statement and we’ll just go ahead and print out C is the greatest so this is about if LF else then we can also go ahead and use the if statement with a tuple so here we have created a tuple where we have three elements a b and c and once we create this Tuple I am trying to find out if the element a is present in this Tuple so here if a in tube one then I go ahead and print out a is present in T1 and as you see since this is evaluated to false or in other words this element is present in the stuple I’m able to print out a is present in tp1 now on the other hand if I would want to check if an element Zed is present in this duple so here I have if Zed in tup1 print Zed is present in tup1 and as you see I don’t get anything because this element is not present so here what I’ll do is I’ll add the lse statement and I’ll print out Zed is not present in T1 and this time I’ll get the result because this is evaluated to false and we’ll print out whatever is there in the else condition and this time we are going ahead and using the if statement with a list so again we are creating a list L1 over here and we have these three elements a b and c and this time what we are doing is we are checking if the value which is present at zero with index of this list is equal to a and if that value is equal to a I would want to change that value to 100 so you see if L1 of 0 is dou equal to a I am assigning a new value over here and that value is equal to 100 and after I run this you would see that initially the value was a and I have changed that value to 100 now let’s say if I run this back again and if I would want to change this value from a to zed I’ll just have Zed over here and you would see that initially the value is a and this time I have changed the value to zed and finally we will be applying the if statement with the dictionary so here we have created a dictionary D1 where we have three key value pairs K1 K2 K3 the value of K1 is 10 the value of K2 is 20 and the value of K3 is 30 and with the help of the if statement I am adding 100 more to the first key over here so the condition is if D1 of K1 is equal to 10 I’m checking if the value for the key K1 is equal to 10 then I will add 100 more to this by using this condition so D1 of K1 is equal to D1 of K1 + 100 so I have an error over here I’d have to initialize D1 and as you guys see initially the values were 10 20 and 30 and after using the if condition I have added 100 more to the first value of the first key so those were decision- making statements now we’ll head on to looping statements and these are used to repeat a task a certain number of times and again we have a very beautiful example over here let’s say you have a bucket and you would want to fill up that bucket with a mug of water now what you’ll do is consider the mug and the bucket to be empty at this point of time first you’ll fill up the mug and you’ll pour this water into the bucket then you’ll check if the bucket is full or not after this again you’ll take a mug full of water then pour it back into the bucket again you’ll check if the bucket is full or not then next time again you’ll take a mug full of water pour it back into the bucket and again you will check if the bucket is full or not and this process goes on until the bucket is completely filled up with water and you will stop this only when the bucket is filled so here what you’re doing is you’re looping or you are performing the same task again and again until a condition is met we have another example over here let’s say you’re listening to your favorite song and you put that song on Loop so here the condition is the same song will be kept on playing until you either close the app or maybe use switch off your phone so this is the condition over here the song is on Loop until you close the app you stop the song or maybe you switch off your phone then we have a very interesting example so at the end of every month you will get credited with your salary amount so here what is happening is if the date is equal to 30th or 31st and if it is the last day of the month you will have salary Creed into your bank account this again happens in a loop so these are some examples of looping statements and we have two types of looping statements in Python which are fur and while we’ll be working with both of them so we’ll go ahead and start off with the for Loop so here we have created a list called as fruits and this has these three fruits over here apple mango and banana now with the help of this fur loop I would want to print out all of the individual Elements which are present over here so I’ll have for I in fruits print of I so here I what happens is initially the value of I will be equal to Apple then the value of I will be equal to Mango then the value of I will be equal to banana and this will end once I reaches the last element which is present in this list and that is how we are printing out each element which is present in this list so this is a very simple example of how we can work with the for Loop then we can also have a nested forur Loop where we’ll have one fur Loop inside another forur loop and here we have two lists again we have one list comprising of different colors and we have another list comprising of different items so the colors are blue green and yellow and the items are book ball and chair and what I’m doing is I have an outer for Loop which would help me to pick a color so here it is for I in color then inside the outer for loop I have an inner for Loop which goes for J in item which would help me to choose an item and I print out I comma J let’s understand how this for Loop works over here so initially value of I is equal to Blue and we enter the for Loop and the value of J over here will be equal to book so I print out I comma J it will be blue book then value of J is incremented it becomes ball and I print out blue ball again then value of J is incremented it becomes chair then I print out blue chair then I go back to the outer loop and blue is incremented then the color becomes green then I have green book green ball green chair again after this value of green becomes yellow then I print out yellow book yellow ball and yellow chair this is how you can work with nested for loop after the for Loop we have the while loop so while again would help us to repeat a particular task and this task is repeated on the basis of a condition and over here I am trying to print out the first 10 numerical numbers using a y Loop here I have initialized a variable called as I and I have assigned the value of one inside this variable and after this I am checking if the value of I is less than or equal to 10 and if the value of I is less than or equal to 10 I enter this y Loop and I print out I then I increment the value of I so let’s understand what is happening in this y Loop initially value of I is equal to 1 so the condition is is 1 less than or equal to 10 and since that is true I go inside the for loop I print out one then I value is incremented it becomes two then I go back and I check if 2 is less than or equal to 10 this again is true I head back I print out two then then I increment the value of I it becomes 3 then I’m checking if 3 is less than or equal to 10 this again is true I head back into the Y loop I print out three then I value is incremented it becomes four then again I am checking if 4 is less than or equal to 10 this is true I come back into the Y loop I print out four then I will increment the value of five it becomes five then we will proceed the same way till the value of I is equal to 10 when the value of I is equal to 10 I am checking if 10 is less than or equal to 10 and this condition is true I print out 10 over here after this I have I + 1 value of I becomes 11 and this time when I check is 11 less than or equal to 10 this condition fails and this is when I come out of this y Loop and this is the result which I get over here similarly instead of the first 10 numbers if I want the first 15 numbers I’ll just go ahead and change this value over here and you would see that I have printed out the first 15 numbers now using the Y loop I can also go ahead and print the two multiplication table here I have I and I’m assigning the value of 1 to I then I have a new variable called as n and I’m assigning a value of two to this new variable and and in the Y loop again the condition is while I is less than or equal to 10 and while this condition is true I will print out n into I is = n into I then I am incrementing the value of I so let’s again understand what is happening inside the Y Loop so initially value of I is equal to 1 so the condition will be while 1 is less than or equal to 10 which is true I come back over here and I print out n into I which will be 2 into 1 is = 2 so I print out this then I increment the value of I it becomes 2 is 2 less than or equal to 10 yes that is true I come inside then this time I print out 2 into 2 is equal to 4 then I value is incremented it becomes three so is 3 less than or equal to 10 that again is true so this time I will have 2 into 3 which is equal to 6 and I print this out and this process continues till I value is equal to 10 and when I value is equal to 10 I will have 10 is less than or equal to 10 which is true so here it will be 2 into 10 is equal to 20 and we’ll print that out and after that when we increment the value of I it will become 11 so it’s 11 less than or equal to 10 which is false and this is when we will come out of this while loop so these were some examples with the help of while loop now we’ll also see how to apply this while loop on top of a list so here we have this list L1 with all of these numbers 1 2 3 4 and five and I would want to add 100 to each individual element of this list so I start off by initializing this variable I I given the value of zero and this y Loop Will Go On tell the length of the list or in other words the number of elements which are there in the list what is the length it’ll be 1 2 3 4 and 5 initially value of I is equal to 0 so we are checking if 0 is less than 5 which is true we come inside the Y Loop here it will be L1 of 0 is equal to L1 of 0 + 100 so it will be 1 + 100 we’ll print out 1 + 100 over here then we have incrementing value of I it becomes 1 so is 1 less than 5 it is true so here we will have L1 of 1 is equal to L1 of 1 + 100 so it will be 2 + 100 which will become 102 and this is how we’ll go on and print out or add 100 to each element of this list now that we have built a strong Foundation let’s elevate your skills it’s time for advanced python Concepts get ready to dwel into objectoriented programming inheritance and exception handling along with efficient file handling techniques now we’ll head on to one of the most important Concepts in Python which is objectoriented programming now when you look around you you would see that you are surrounded with objects the laptop which is there in front of you that is an object the phone which is there in your hand that again is an object the bottle which is there beside you that again is an object now if you want to represent all of these Real World objects in the programming Paradigm you would need an objectoriented programming language so we would have a lot of object-oriented programming languages and python is also an objectoriented programming language because it allows us to represent all of these real world entities in a programming world now to understand the concept of object-oriented programming we would need to understand two main components of it which are classes and then we obviously have objects so let’s start with this term called as class so what exactly is a class simply put you can consider a class to be a template or a blueprint for real world entities and we have a very simple example over here let’s take the example of a phone now when we talk about a phone a phone would again have two things associated with it it will have some properties and it will have a certain Behavior associated with it now when I say properties the phone will have a color associated with it the phone will have a cost associated with it and the phone will also have a certain battery life associated with it and along with these batteries when I say a phone will have certain behaviors associated with it now what do I mean by behaviors I simply mean that with the help of a phone you can make calls with the help of a phone you can watch certain videos on it and all also some phones allow you to play games in it so this class this phone class has properties and behavior associated with it and what exactly is a class in Python you can consider this class to be a user defined data type so as we have predefined data types so we had looked at all of these predefined data types which were integer float Boolean and string so similar to these predefined data types we can create a user defined data type and that user defined data type will be this class so here what we doing is we are creating this class this user defined data type called as mobile and this user defined data type will have attributes and methods inside it so these attributes are nothing but the properties of the class and these methods are nothing but the behavior of the class now that this is clear let’s understand the next component of objectoriented programming which is is object so we already know what is a class now object is nothing but a specific instance of a class so when we say we have a mobile class the specific instances of this mobile so we have apple Motorola and Samsung so Apple Motorola and Samsung would be objects of this class phone or mobile and if you want examples of what exactly is an object so as we have these predefined data types so these are integers so a is an integer variable and I’m storing the value 10 inside this similarly B is an integer value and I’m storing the value 20 inside this so similarly if we have the mobile data type then for this mobile data type we have the objects Apple Motorola and Samsung so that was a brief intro to objectoriented programming now let’s see how can we actually create a class in Python so to create a class in Python we’d have to start off by giving this keyword called as class then going ahead we will give in the name of the class and by convention you would have to remember that the name of the class needs to be Capital the first letter has to be Capital so that is why we have given capital P over here so the name of this class is phone and inside this we are defining two methods so the with the help of these methods we can have the behavior of this class so I am having this first method called as make call and inside this method I’m just printing out making phone call and over here as you see this method takes in a parameter which is self so for now just understand that with the help of this self parameter you will be able to invoke the attributes which are present in this class just understand this for now and as we go ahead through objectoriented programming it’ll be much more clear to you guys so as we have cre created this particular method similarly we will create another method called as play game and this again takes in one parameter which is self and all I’m doing is printing out playing game so now that I have created my blueprint or my class over here I would have to create a specific instance of it or in other words I’d have to create an object of this phone class so I’ll just write down phone over here and I will store it in this object called as P1 and now that I have the object of this class I can go ahead and invoke the methods which are present in this class with the help of this object so when I type in p1. make call with the help of this I will be able to invoke this method and I am printing out making phone call similarly when I invoke p1. playay game I am invoking this method and I’m printing out playing game so this is how we can create a class and an object in Python so let’s let’s go to jupyter notebook and work with this example so my task would be to create a class so I’ll have class I’ll give the name of the class as phone I’ll give it a color over here and after this I would have to create a method and to create a method we already know that we will be using the def keyword and I will give the name of this method as make call and we know that this takes in only one parameter which is self and inside this I will just have a print statement which will be making a phone call and once I have this method I will go ahead and create another method over here so I will call this method as play game def of play game and I’ll have self over here again I’ll have a print statement and here I will write down playing a game so I have created created my phone class over here and now that I have created this phone class I would have to create an object of this so here I will have P1 is equal to phone so I have to give parenthesis over here and this is how I’m creating an object of this phone class and now that I have the object ready so with the help of the dot operator I can invoke both of these methods so I’ll start off by invoking the make call method so I will have make uncore call and when I hit on run you would see that I have successfully printed out making a phone call similarly now when I have p1. play game you would see that I have printed out playing a game so we have created our first class and we have also created the object for this class and now in the methods which were present in the previous class there were no additional parameters we had only one parameter known as self and with the help of that self parameter we were just able to access the attributes which are present and we did not actually have any attributes in the previous class so we will modify that so to our phone class are actually the methods which are present in our phone class he will be adding some additional attributes so we are adding a new method over here called as set color and this set color method over here takes in two parameters the first parameter is self because it is compulsory then we will have this new attribute called as color and with this color parameter what I’m doing is I will have an attribute called as color and I am assigning this color to the attribute color which is present in my phone class similarly I have another method called as set cost this again has two parameters first is self because again it is compulsory then we have this additional parameter called as cost and I would also have an attri rute called as cost in the phone class and what I’m doing is I am assigning this value of cost to my attribute cost in the phone class so now that I have assigned the value of color and cost to my attributes what I’d have to do is show the value of color and show the value of cost so now that I have set these I would need two methods to show the color and show the cost so that is why I will create a new method called as Show color and this only has the self attribute or the self parameter over here because I’m not assigning anything and all I have to do is return the value and if I have to return the value I’ll just use this keyword return and I’ll print out return self. color similarly if I would have to return the cost I would have this new method called as show cost this takes in only one parameter which is self and I’ll go ahead and return here as you see I will have return self. cost and these are the additional methods which I have and then I have the same methods which are make call and play game and inside make call all we are doing is printing out making a phone call and inside play game all we are doing is printing out playing a game so let’s go ahead and modify our phone class which we had created earlier I’ll delete these records from over here let me cut this entire thing or actually I can write it over here itself so these are the methods which were present earlier I would have to add four more methods inside this so to create a method we would have to use the def keyword and I would have to set a color to the attribute so I will use this method called as set color the first parameter itself because it is compulsory then I will have this additional parameter called as color and I am assigning the value of this color to the attribute color by using the self attribute or self parameter which I have passed in now similarly I will have another method over here so as I have set the color similarly I would have to set the cost as well so def I will have a new method called as set cost this would take in two parameters the first parameter would be self and the second parameter would be equal to cost and over here I will write down self do cost is equal to cost and this is how I’m assigning the value of cost and after this I would have to print out the value of color and cost I would need one method called as Show color and the parameter will only be self and what this does is it would just return out the color so it’ll be self. color then I would need another method called as show cost and this again would take it in only one parameter which is self and with the help of this I am returning out the cost so here I will have self. cost so these are the four additional methods which I have added inside this so seems that we have an error over here let me see what exactly is this so this is line number seven and this is set. cost so here I would actually have to give a comma instead of full stop over there and now we see that we have successfully created this now after creating this class I would have to create an object so I will have P1 is equal to phone and now that I have created this object with the help of this object I can access these methods and assign values to the color and cost so I’ll just invoke P1 do set color and I will set the color of this phone to be equal to let me keep it blue over here now similarly I will also set the cost of it so I’ll have P1 do set cost and I will set the cost to be equal to let’s say $999 now that I have set the value of color and cost I can print out these two values so let me delete this so I will have P1 dot Show color and now when I hit on run you would you would see that the color is blue similarly when I have p1. show cost you would see that the cost is equal to 999 so this is how we can have additional attributes and pass in values to the attributes which are of which are belonging to a class with the help of these additional parameters now there’s a special example or a special Concept in object-oriented programming which is known by the name of a Constructor so if you have worked with other languages such as C++ or Java and if you have learned about the concept of inheritance you would know about a Constructor so normally in C++ or Java a Constructor is a special method which would have the same name as that of the class and this would help us to initialize the values of the attributes during the object creation itself so that is what a Constructor in Python itself it’s just that the Constructor in Python the name of this method will not be equal to the name of the class so the Constructor in Python goes by the name of init method so here as you see this is our Constructor we have our init method over here and I have def so in it we have the prefix of two underscores and also after in it we will have two underscores over here so we have our Constructor ready and as I’ve told you with the help of a con Constructor we will be able to assign values to the attributes during object creation itself so obviously we will have some parameters inside this and with the help of these parameters we’ll be able to assign values to the attributes so in this employee class let’s say I would have four attributes called as name age salary and gender so I’ll have these four additional parameters over here and I am assigning the value of name to this attribute similar L I am assigning the values of age salary and gender now that the Constructor is ready and I have assigned the values I would have to show the values out and to show the values I have this new method called as employee details and I will create this method like this so I’ll have def employee details and I will pass in self inside this because I’m not assigning anything and this is the default or the and we definitely have to give the parameter inside this and inside this method I’m just printing out the name of the employee the age of the employee the salary of the employee and the gender of the employee and and once we create this class it will go ahead and create an object of it so here when we are creating an object as you see we have E1 is equal to employee and during the instantiating of the object itself as you see I am passing in the values for all of the attributes so as you see over here the name I’m assigning the name to be equal to Sam similarly the age I am setting it to be equal to 32 then the salary I am setting it to be equal to 85,000 and the gender I’m setting it to be equal to male and this is how I’m assigning all of the values during instantiating of the object and once I have created the object and since I have also given all of the values to the ET I can directly invoke the employee details method and when I invoke the employee details method you would see that I am able to print out all of the details name of the employee is Sam age of the employee is 32 salary of the employees is 85,000 and gender of the employes mail so let’s go to jupyter notebook and implement this concept of Constructor so I’ll just add this comment over here Constructor and I will create this new class so I will have class employee and inside this I will go ahead and create the init method def I will have two underscores then I’ll write down init then again I’ll have two more underscores over here so I’ll start off by giving the self attribute inside this then I will start off by giving the name attribute then I’ll give in the age of the employee after this I will give in the salary and then finally we have the gender of the employee and all I have to do is assign these parameters to the attributes which are present so I will have self. name is equal to name self. H is equal to H self do salary is equal to salary and self. gender is equal to gender again so I have created this Constructor over here after this I would have to create a new method called as show employee d details let me just write down the name of this method so I will have show employee details and this will have only one parameter which will be self and inside this method I’m going to print out all of the values of the different attributes which are present so I’ll start off by printing the name so I’ll have name of the employee is I’ll have self. name then I I will have age of the employee s here I’ll have self. AG then I will have salary of the employee is here I will have self. salary and finally I will have gender of the employee s and here here I will have self do gender so let me hit on run and I have successfully created this class where I have a Constructor inside this now I can go ahead and create an object of this so I will have E1 over here and what I will do is I will give the name of this class which will be employee the first value inside this should be the name of this person so let’s see this uh employees name is Sam then Sam is 28 years old and let’s say sam around earns around $775,000 let’s make the $75,000 and Sam is mail so I have created this object over here now that I have assigned all of the values I can go ahead and invoke the show employee details method here I will have E1 do show employee details and when I invoke this you would see that I have this result name of the employee is Sam age of the employee is 28 salary of the employee is 75,000 and gender of the employeer male now we’ll understand the concept of inheritance so simply put inheritance as when you derive some properties from something else and a real world example of inheritance would be you’ll be inheriting some of your features from your parents and your parents will be inheriting some of their featur teach from their grandparents or in other words let’s say you will sort of look like your parents in a way and your parents might look like your grandparents in a so you’re inheriting some physical features from your parents now if we have to relate this concept of inheritance in Python this basically means that we will have a child class and a parent class and the child class would inherit some features or all of the features from the parent class and we have an example of inheritance over here so what we’re doing is we are starting off by creating the parent class so the parent class is called as vehicle so we will have class of vehicle and inside this I have two methods the first method is the default Constructor and in this Constructor I have two additional parameters which are mileage and cost and I am assigning the value of mileage then I’m also assigning the value of cost and once this is done I will go ahead and create another method called as show details and inside show details I’m printing out I’m a vehicle then I’ll go ahead and print out the mileage of the vehicle and also I’ll print out the cost of the vehicle so now that the parent class is ready I would have to create an object of the parent class so here I have V1 is equal to vehicle and I pass in 500 and 500 so this 500 would denote the mileage of this vehicle so this might basically mean 500 m per gallon then we have the cost which is 500 again so this would mean that the cost of this vehicle is $500 so now that we have created this object we can directly invoke the show details method with this object so I have b1. show details and as you have in the result I’m awle mileage of the vehicle is 500 and cost of the vehicle is 500 let’s go to jupyter notebook and implement this let me delete all of these previous examples from over here let me keep it fresh and I will create this new vehicle or new class called as vehicle over here we will start off by creating the Constructor I would need the init method over here and the first parameter is obviously self after this I would need the mileage of the vehicle and I would also need the cost of the vehicle then I’ll go ahead and set out these two values so I’ll have self do mileage is equal to mileage after this I will have self do cost is equal to cost now that I have created this Constructor I would have to show the details so I will have show vehicle over here and this will just have one parameter which is self and inside this method I will go ahead and print out some basic things so first I’ll be printing out I am a vehicle then I will go ahead and print out mileage of the vehicle s here I’ll have self. mileage then I’ll go ahead and print out the cost so I’ll have cost of the vehicle s here I’ll have self. cost and this is how I have created this class and after creating this class I would have to create an object of it so I will have V1 is equal to vehicle and inside this I would have to pass in the mileage value first so let’s see this vehicle would give me around 120 m per gallon and the cost of this vehicle is around $800 so I have set these values over here then I can just go ahead and invoke the sh vehicle method so here I will have V1 dot show vehicle and when I run this we have an error over here let’s understand what exactly is this error so we have self. mileage we have self. cost inside this vehicle object has no attribute mileage so I’m setting Mi i l e a g e let me keep it over here now when I run this so as you see I have successfully printed out I’m a vehicle mileage of the vehicle is 120 and cost of the vehicle is 800 so we have created our parent class now it’s time to go ahead and create our child class so to create the child class we will again go ahead and give the name of this class which is car so we’ll have class of car and to inherit something inside the parenthesis so as you see this class we did not have any parenthesis over here but after this child class we’ll have a parenthesis and inside this we will pass in the name of the parent class which is vehicle and this child class will have a method of its own which is show car this takes only one parameter which is self and I’m going ahead and printing out I am a car with this method now once I create this child class I will create an object of it which is C1 now here as you see even though I don’t have a Constructor inside this child class but I’m passing in some values this is because since this car class is inheriting the vehicle class this will automatically have these two methods inside it so this car class will have the init method and also the show details method so this car class will have three methods in total which are the Constructor from the parent class then the show details method from the parent class and also this show car method which is explicit for this car class now since this also has the Constructor we would have to pass in the values for the mileage and the cost and as you see I am passing in the value for mileage which is 20000 and the value for cost which is 1,200 then I’ll go ahead and invoke the show details method with the help of this object of the child class so as you see this object is of child class but this method is of P parent class but since this child class inherits the parent class that is why we are able to invoke this method and when you see the result we have I’m a vehicle mileage of vehicle is 200 and cost of vehicle is 12200 and since we also have this show car method which is part of the car class we can directly invoke it so when I have C1 do show car I get the result I am a car so we already have our parent class over here now let me go ahead and create the child class as well so I will have class of car and I’ll have this parenthesis and inside this I will pass in this vehicle class then I would have to go ahead and create a method which is explicit to the car class so I will have Def and I’ll name this method as show car this takes in only one parameter which is self and inside this I will have the print method and I will go ahead and just print out I am a car and when I hit on run you would see that we have successfully created this class so after creating this class I would have to create an object of this so I will have C1 is equal to car and since this inherits this this will also have a Constructor so it have to pass in a value for mileage let’s say this car would give me a vage of around 300 M per gallon and the cost of this car is around um let’s say $10,000 so I’ll pass in these two values over here now that I have passed the values let me invoke the show details method this is actually show vehicle method which is there in the parent class so C1 do show vehicle and as you see I have the result I’m a vehicle mileage of the vehicle is 300 and cost of the vehicle is $10,000 and since we also have this particular method over here I can go ahead and invoke it I will have C1 do showard this has to be small C now when I hit on run you would see that I’m able to print out I am a car now we’ll see how to overwrite the inid method in the child class so in the previous example we had created a child class where we had only one method over here but what we’ll do is we’ll also have an init method in this this child class and this init method will take in four parameters the first two parameters will just be the two parameters for the parent class and since the vehicle class has mileage and cost parameters I’ll have them over here I’ll also have the self parameter and I will add two new parameters for the car class itself so I’ll have tires and HP now to pass in the values for the super class or the parent class I would need the super method so I will write down super dot in it which would basically mean that I am invoking the init method of the super class or I am invoking the init method of the parent class and inside this I am passing in mileage and cost so these are just values of the parent class which I’m passing in and after passing in the values of the parent class I’ll go ahead and assign the values for the child class as well so here as you see self. tires is equal to tires I am assigning the value of tires over here to the attribute of the car class similarly I am assigning the values of HP over here to the attribute of the car class and once I assign these values I would have to show them out so here I will have def of show car details and I will print out I am a car number of tires are self. tires and value of horsepower is this and after I create the template of this child class I can go ahead and create an object of this so here as you see I will have C1 is equal to car and I given four values over here the first value will be for the mileage of the vehicle class the second will be the cost of the vehicle class so here as you see I’m a vehicle and when I invoke C1 do show details so here even though show details is part of the parent class I’m able to invoke this because car class is inheriting from the vehicle class and here I have mileage of vehicle is 20 and cost of vehicle is $122,000 and I also have 4 and 300 and as you see when I invoke C1 do show car details I have the result I’m a car number of tires are four and value of horsepower s 300 so I’ll go ahead and create the parent class again and child class again over here so I will have class of vehicle and this will takeen this will have in it method so I’ll write down def over here I will write down in it and this will definitely have the self parameter over here and this has two values which are mileage and cost now I would have to assign these values so it will be self dot mileage is equal to mileage over here then I will have self do cost is equal to cost and this is how I am assigning the values for mileage and cost once I do this I would have to go ahead and print out the values so I will have a new method for it I will have def of show car details over here and this will only have one parameter which is self and I will start off by printing ier vehicle and after this we would have to print out the mileage of the vehicle is the mileage of the vehicle is here it will be self do mileage then I’d have to also print out the cost the cost of the wle S sure it will be self. cost and this is how we have created this template for the vehicle class now i’ have to create the template for the child class as well so here it will be class of car and since this is inheriting from the vehicle class I’d have to pass the vehicle as the parameter inside this and after that I would have to override the init method and since I have to override I need to create an init method of the car class itself and I’ll start off by giving the self parameter then I this will have mileage and cost for the parent class then it will have ties and HP which are exclusive to the car class itself and after this I will invoke the super method so this is with the help of this I’ll be able to invoke the init method of the super class so I will have super do init and inside this I will just just pass in mileage and cost and once I do this I would have to assign the values for tires and HP so it’ll be self. tires is equal to tires and self. HP is equal to HP and now that I have created this init method or overridden this init method I would need an explicit method for the car class itself let me give a space over here and this time it will be F of show car details and I’ll have self over here and after this this will actually only have self and nothing else and I’d have to go ahead and print out I am a car and after this i’ have to print out the number of tires are here it will be self DOT tires and after that I’ll have to print out the horsepower as well so here it will be the horsepower is and the value will be equal to self. HP and now I have created the parent class and the child class as well I’d have to create an object of it here it will be equal to C1 is equal to car and I’d have to give the value of mileage and cost let’s say the value of mileage is around 30 so it would give around 30 m per gallon and the cost I would see this is $5,000 and after that let’s see this car would have four tires and the horsepower of this would be equal to $499 and we have created the object of this now that we have also assigned the values I can go ahead and invoke the methods of the parent class and the child class I will have C1 Dosh show car details over here and you would see that I have printed out I’m a car the number of tars are four and the horse par is 499 so these are the details of the child class or the car class now I’ll print out the details of the parent class so here I will have C1 dot show w vle details and when I print this out this is so seems like I’ve overridden this I will keep the name as show vehicle details over here so this method in the parent class will be show vehicle details and this method in the child class will be equal to show car details and once I have done this you would see that I have this result I’m a vehicle the mileage of the vehicle is and the cost of the vehicle is equal to 5,000 going ahead we’ll look at the different types of inheritance so we have work with single inheritance now we’ll see what is multiple inheritance and what is multi-level inheritance so we’ll start off with multiple inheritance and then multiple inheritance will have a child which inherits from more than one parent class so let’s say if you have a mother and a father obviously you will have a mother and a father and you would be inheriting some of the features from your mother and some of the features from your father and thus what is happening over here is known as multiple inheritance so as you see if there’s a child class this child class will be inheriting some features from parent one and some features from parent two and this is what is known as multiple inheritance and let’s have a look at this over here so we are starting off by creating the first parent class class of parent one I have two methods over here in the first method I am assigning the value for string one so assign string one I have self and St str1 and with the help of this I am assigning the value for this attribute of Str str1 in this parent one class then once I assign the value for this Str str1 I’ll go ahead and show out this value or return this value with show string one so in parent class one I’m assigning the value for string one then I have parent Class 2 and with the help of parent Class 2 I am assigning the value of Str str2 first then I will go ahead and return the value of s str2 then I will have a child class I will name this child class as a derived class and this over here takes in two parameters or in other words this is inheriting from parent 1 and parent 2 and this again has two methods over here the first method is assign string three and I am assigning the value for string three over here then I will go ahead and show it out as you see I am returning or I am printing out self. st3 so parent class 1 parent Class 2 and child class and after that what I’m doing is I am creating an object of the derived class or of the child class and here I have b1. assign string 1 so even though assign string 1 and assign string 2 belong to the parent class I’m able to invoke them because child class is deriving from both of the parent classes so here I am assigning the value of one to string one I am assigning the value of two to string two and I am assigning the value of three to string three once I given the values I go ahead and show out the values over here so D1 do show string one I get 1 D1 do show string two I get two and D1 do show string 3 I get three now this is a bit confusing let’s go to jupyter notebook over here and let’s create our two parent classes and one child class so for this purpose I’d have to given this keyword class and I’d have to given the name of the first parent class which is parent one and after this I will create a method Def and I will name this method as assign St str1 this will have two parameters the first parameter will be self next will be S str1 over here and I’ll just write down self. St str1 is equal to St str1 over here and once I assigned the value I have to print out this value or show out this value so for that purpose I would need another method here it will be show St Str 1 and what I’ll do inside this is this will only have the self attribute and I would have to return the value of string one so this will be equal to return of self. sr1 and you would see that I have created the first class first parent class similarly I’ll go ahead and create the second parent class this time it will be equal to class of parent 2 and and here I will have def of assign St str2 it will be self I will have Str str2 over here and i’ have to assign the value this will be equal to self. str2 is equal to St str2 over here and I’ll go ahead and create the next method I will have show St str2 I’ll have self over here and i’ have to return s Str to and I have also created the second parent class now that both of my parent classes are ready I can go ahead and create the child class so here class of I’ll just name this child class as child because that is more intuitive and inside this I will be passing in both of the parent classes I’ll have parent one as well as parent 2 and now that I pass in both of the parents I’ll create one method exclusive for the child class itself and inside the parent class I’ll be assigning the string three assign s str3 over here this will have the self parameter and I’ll have S str3 over here and this is how I’ll be assigning the value self. St str3 is equal to S str3 and once I assign the value I would have to go ahead and print it out so here it will be show std3 it will be self over here and I will go ahead and I will return so again here I’d have to keep in mind that this is self of St str2 and here again it will be equal to self of sdr3 and as you see I have created all of the three classes two parent classes and one child class which is inheriting from from these two parent classes now I can go ahead and create an object of this so here I will have C1 is equal to child once I have created this object I can go ahead and invoke the methods so I’ll start off by invoking the method of the first parent class so C1 do assign Str 1 inside this I will pass in the value of one over here then I will go ahead and invoke the method of second parent class this will be equal to assign St str2 inside this I will pass in the value two then I will go ahead and invoke the method of the child class itself assign St str3 and inside this I will pass in the value three once I invoke all of this then I can go ahead and print the out so I will have show St str1 and you would see that I have printed out one then I will have C1 do show str2 then I would have we have an error over here so let’s check this properly self. s str2 we have we are assigning the value over here and we are returning this over here C1 do show St str2 name s str2 is not defined so what I’ll do is I’ll run all of these again because I had added the self parameters and this time we need to get the result and this time as you see when I have C1 do showst str2 I get two over here now similarly I’ll go ahead and invoke the third string so I will have C1 do show sdr3 and this time when I hit on run you would see that I get the result three so this is how we can Implement multiple inheritance going ahead we have something known as a multi-level inheritance and you can consider multi-level inheritance to be grandfather father child relationship and as a grandchild inherits his or her features from maybe his parents and those parents inherit their features from their grandparents so here you have multiple levels and this is what is known as a multi level inheritance so here we have three classes we start off by creating the parent class first and in the parent class we are assigning the name of this person and then we are showing out the name of the person then in the child class we are assigning the age of the person and we are showing out the age and as you see this child class is inheriting from the parent class then we have the grandchild class where we are assigning the gender and we are showing of the gender and here you see that the grandchild class is inheriting from the child class so here there are three levels child class is inheriting from the parent class and the grandchild class is inheriting from the child class now let’s go to jupyter notebook and implement this we have to start off by creating the parent class I will have class I’ll have parent over here and inside this I will create a new method called as assign name this will have self and then we will have name over here and inside this I’ll just write down self. name is equal to name this is how I’m assigning the name then i’ have to show out the name and for that purpose I will have show name this will only have self over here and I need to return self. name and I have created the parent class now after this I would have to create the child class so here I will have class of child I will create a new method over here and I will name this method as assign age I will have self I’ll have age over here and I need to assign this AG so here it will be equal to self. AG is equal to age then I would have to show out the age I’ll have to create a new method this will be equal to show age I’m writing down self over here and I would have to return this so this will be equal to return self. Ag and this child class is inheriting from the parent class that is why I’ll pass in the parent class as a parameter to the child class then finally I will create the grandchild class here I will have class of grandchild and this grandchild class will be inheriting from the child class this again will have two methods the first method will be assign gender and this is how I am passing in the two parameters I’ll have self and gender and here I would have to set self. gender is equal to gender then I will create a new method over here show gender and here I will only have self and I would have to return this it’ll be equal to return self. gendo and now that I have created these three classes over here I have my parent class the child class and the grandchild class I can go ahead and create the object of the grandchild class I’ll call it GC and I will invoke it like this and once I create this grandchild class I can assign the name age and gender so I will have GC do assign let me write it down again so here it is GC do assign name and the name which I’m setting or giving to this person is Bob then I’d have to give him some each so here it’ll be GC do assign age and let’s say Bob is 54 years old and I’ll also assign the gender this will be equal to GC do assign gender and the gender is male I have assigned these three things now i’ have to go ahead and show them out so here it will be GC do show name and I am setting the name to be equal to I don’t have to give anything over here I just have to invoke it and as you see I get the name of this person as Bob now let me also invoke the age over here gc. show AG you would see that the age of this person is 54 then I will have GC do show gender and here as you see the gender of this person is male so let me take you to the next slide with the introduction to the file handling okay so what do we mean from file handling so whenever I just talk about the file handling topics so we say that dealing up with a text files is completely known as file handling text files you all know right do the files which we have extension that do txt right that particular files are known as the text files so let’s say you wrote out some uh text onto a file and just save that particular text file now how to deal that with that particular text file with the help of Python Programming like let’s say if you just want to write some things into that file you want to read out that what’s written into that particular file or or any particular operation you want to perform onto that particular file so how you can do that particular thing in the with the help of Python Programming that’s completely known as file handling right hope you are very much Clear first of all that what file handling means so as mentioned the definition as well that deal with the text files is called as file handling right even in Python Programming we have one another name for the file handling and that goes as IO functions that is the input output functions so whenever I see file handling or IO functions they both actually mean the same thing that’s dealing with that text files do not cut confused into these things okay next so as I as well mentioned out that what are the places what are the things that uh come under the file handling what are the operations that you could perform so in the file handling we already have many functions in buil functions which helps us to operate out and do out the steps like opening of the file reading the text whatever is written uh writing something into the file appending the text basically altering out the text deleting out some text and all these operations you could completely perform form with the help of python right so as I mentioned that there are many different functions that are particularly involved up here now after that basically I have one more thing here and that is basically that what’s the IDE that I’m going to use and what’s the python version that I’m going to use up here to for doing out the Practical for the file handling see one very important thing to let you know that basically what are the online idees you are having that do not support out the file handling technique and the reason is that with the help of the py file that pypy is basically your python file into which you write out your coding stuff so any of the online ID if that particular ID is supporting the py and the dxt file at the same time then absolutely you could use out that IDE for writing out your W start online ID otherwise I would recommend you to download out a offline ID now there are many different idas which you can go ahead with like you can use out the uh py Jam you could use out the vs code you could use Jupiter notebooks whatever you feel like you could use let me tell you my particular specifications that I’m going to use so I’m going to use about the pyam IDE and the python version which I am using is 3.9.1 right if you have the same configurations well and good and even if you have some newer version of python then also it’s absolutely fine uh do not take out the python versions below than 3.7 okay some functions work there some functions do not work so I would recommend you to upgrade your python version above 3.7 hope you are very much clear with this particular that uh what’s are dealing with the text and what are the functions or operations which you could perform and basically what’s the IDE that I’m going to use up here for doing out the stuffs right so now basically I’ll be taking you to the next slide and there we are going to discuss about the open read and the write modes which we have in the file handling so let me take you to the brief discussion of these three particular topics that’s open read and write modes okay as the name suggest for the open mode so into this particular mode what you could do you could open out any text file with the help of this particular function that’s open so this particular open mode is used whenever you just want to open out a text file for reading or for writing for altering or for doing anything so you use out the open function at the very first point now one more thing uh which comes up here is that let me take a very a live example of this particular uh do not assume it as a text file let’s say I’m having out a book okay I want to read out a book so how can I read out the book I’ll be taking taking out that particular book I would be first of all opening that then reading out the stuffs whatever I just want right same particular case applies here onto the text file as well you will be saving out your text file onto the same folder where your python file has been saved out after that the very first step that comes is the opening of file writing reading altering all these things are the secondary part that you need to do like if you are not opening the file without opening your file how you could perform out any of the operations right so that’s the reason whenever you we do the file handling whenever we just deal out with the text files so the very first method but the very first step thatp users opening our text file so that particular thing is performed by the open mode which we have here in the Python programming language hope I just made this thing very crystal clear that what is this open mode and why we just use that here in the file handling right now next I’ll be taking you to the read mode after you have opened up your file let’s say you just want to read out some text from that file let me take the again example of the book when I have opened out my book so there can be two cases for opening out my book first can be I want to read out something from that book or even I just want to write out something onto that book right only two cases could be there so so whenever is your first case that you want to read out something from your book in the same case whenever you just want to read out something from your text file so into that particular case what we do we use out the read mode right so this is our mode which is used whenever you just want to read out the text which is already stored in your text file so we use out this read mode right hope I made this thing as well very much Clear regarding the read mode as well next your second case could be that instead of reading anything you want to write out something onto that book so same case goes for the file handling as well that instead of reading out your file you want to write something you want to add some more text onto your file so in that case the write mode actually comes in place so whenever you are willing to write out anything to add some more extra stuffs onto your text file so in that case we use out this WR modes this is used whenever you want to write the text in your txt file right so hope I made this right mode as well very much clear to you that what it is used for what’s the case when we use this out and why we just use out this right mode as well right so hope these particular three modes are very much clear that what are these how we perform out the functions how we go ahead with the operations now I’ll be taking you to my IDE that’s my Pam IDE and there I’ll be letting you know that basically how we could perform out the Practical how we can read write and open up the files using the Python programming language so this is the pyam IDE that we actually are having right um I’ll be giving you a quick overview regarding this particular IDE then I’ll be uh going ahead with the Practical so uh here basically let’s I just make out one of the folders this is the folder which I’m having so what I would just for making out a python file into which I’ll be writing out my code so for doing out this particular thing I’ll be clicking on this file okay and now here I’ll be doing out the right click so as soon as I do out the right click this particular box would appear now I would just go on to the very first option that’s new okay from this new Option I’ll be going on to the number fourth option that’s python file I’ll be clicking on that particular here you need to save out your file with any particular name let’s say I’m going to give out the name as file and that’s the let’s say file handling Okay click enter so yeah this is how your notebook actually appears out here whenever you have U made out any py file that’s your py file that’s a completely python file okay hope I’m very much Clear next so here we are dealing out with the text files so it’s necessary to make out one text file see now the two cases apply up here either you make make out a text file or basically you uh you basically uh like take out one part where you already have one of the text files and put on that particular part here so what I’m going to do is that I’m going to make out one new text file here okay so for that again the same procedure go onto your project do out to right click go on the new Option and now in this case go on to the very first option that’s file so whenever you just see out this file option take this as it’s TX file and let’s say my text file name is um text only and hit enter right so click on this and click on okay so my text file has been made and that is having the extension that’s txt this file okay so hope you are able to see this particular file right now what I’ll be doing here is that I would be putting okay let me do one thing yeah I’ll be putting on the uh things and writing out my fold the proof so I’ll be making out a variable L that’s if before that okay not here the text F before that I’ll be putting on some text into this file so I would just put on the text that let’s say uh this is the topic this is the topic of file handling now one more thing to notice out here that this is a text file into which you are writing so you do need not to put out any comment any hash sign or any um double inverted quotations or single inverted quotations nothing like that is at all needed because this is a text file if you were doing out the same thing onto the py file then it would have been a problem it would have shown you errors but as you had made out a text file so it doesn’t matters at all right hope I’m very much Clear let me take you to the file where we have the python file and let’s start writing up the code let’s say I just make out one of the variables now this is known as a file pointer okay make this as a file pointer f is equal to open now open is basically my function the very first function that we are going to see let me put on a hash here and let me wrote out here the first mode that’s the open mode okay so here we use out the open in uh inside this we putting out the double inverted commas okay now into that double inverted commas you’re going to write out the text file name so my text file name is text t. txt okay let me just do out one thing because I just need to rename this out so okay one second that is okay rename file let’s do that not right here so input okay let’s do the cancel F okay let’s go ahead with this particular thing only let’s see what is going to happen out so open text.txt okay that’s my file name come to the new line and this is how you open out your particular text file simply you need to write out a variable that this we just I just wrote out here as if because we call that as a file pointer that’s the reason I mentioned out of if other than that it’s not compulsory you could put on any variables of your choice we put on the assignment operator and after that we use out the open function for opening out this particular file right so as soon as the open file has been done next thing comes is that in which mode you want to open it out you want to open in the read mode or you want to open in the right mode so whenever you are willing to open the read mode in that case we write out here R and whenever you are willing to open it in the right mode so in that case we write out okay so we write out R for the read mode and W to the new let come on to the new come on to the new come on to the new line here and write out here if above f is equal to here goes that open into the bracket my file comes that what file you want to open so that is text txt okay putting out the comma here again double inverted commas quotations come out now here you mention out that uh what’s the mode in which you want to open let’s say I want to go on with the read mode so I just simply wrote out here R so it will automatically understand out that now you want to go ahead with the read mode it means that you are you want to read out your file you are opening your file for reading that let’s come to a new new line here and I’ll be making up a variable that what we will be do that particular variable will be reading out the text for me so let’s say my variable is content a t n content is equal to and my f is the variable in which I have opened out my file in the read mode and now here comes my read function content is equal to F do read come to a new line and simply be writing out here print and into the bracket I’ll be writing out here the variable that’s content because content is only the variable into which my file is being read right it is being read and it is being stored see okay before that let me quickly run out the program then I would let you know what I was just like trying to convey out from here okay no such file or directory I would just willing that it would be happening let me make out a new file click on new uh go on to the file write out here the name let’s say that’s demo hit enter yes now I want out the txt file and click on okay okay right here so let me just close out the file from here now click onto this particular write out here something like uh uh okay that’s demo and let me quickly do out one thing let me make out uh one more right here so that’s file demo. txt click enter so yeah now this is the complete correct file which has been made out please yeah one more thing to notice out here do not miss out the extension that you want to put on fine so as soon as you put on txt now this is your correct file which has been made out so I would just once again put on a text that this is um this is a okay this is a file handling topic let’s say this is my text okay topic now let come to the back here now I would just change on the name for my file that’s demo Dot and that’s txt and I would comment out the first line because now that’s not needed at all let’s run out our file here for a while so okay it’s indexing basically it’s setting up whatever you have written out here so it’s setting up all of that all those particular things so this is one of the things which comes here onto the like uh this P charm ID okay I would just click on the Run button Above So now let me just take you above so right now you are having your output that this is a file handling topic this was the text that we have written in the demo. txt file right this was the same text which we have written out and with the help of the read function we are able to display out this particular text here in this particular context in the console of my pyam ID I’m able to get out this particular text so this is how we perform out the read mode this is how you read out the text with the help of the file handling techniques right hope you’re are very much clear with the first fall read function right now what I’ll be doing is that I’ll be taking you to the next mode and that’s my right mode so what I would just do is that I would comment out all the above three lines because now I want out my file uh to be opened out in the W mode that’s my right mode so let’s say f is equal to here goes the open function my okay one second let me come out to this particular place my file name is demo. txt Right putting out your comma here and I want to open that in the W mode now after opening that into W mode I’ll be using out the right function that what is the text which you want to write into your ta text file so let’s say I just want to uh like write on the topics that write on the T at I’m learning file handling right let me come down once okay the text which I just want to write out so yeah that’s completed now one thing to mention here very importantly which I did not mention up above right I’m mentioning out that whenever you are opening out a file it’s important to close out that particular file as well okay it’s a good practice I would say see when I relate this to the example which I have taken for explaining you about the book so in that case what we were doing in that particular particular case we were having a book so we opened it for you want to read or you want to write inside that books that depends so whenever you have open that out after doing whatever the operations you want to do you’ll be closing out that particular book as well right same case applies here onto the text files as well that whenever you have opened out any text file so you would be closing that as well right so that’s the reason I have used up here f. close file now I’ll be running out my file here now here I would not be getting out any answer into the console file into the console of my Pym ID the reason is that i’ be directly getting out the text onto my demo. txt and here goes that I am learning file handling right I’m learning file handling this is the text right that we have written up right this was a correct sentence so I’m getting out that particular sentence written up here onto my demo. txt file right so hope you are very much clear with this particular function as well that how does this right function works so I hope that you are very much Crystal Clear regarding the open function how does that work about the read function and even about the write function right so uh now we have some more further topics some more further modes to learn about so I’ll be taking you to the presentation right away and then let’s discuss about the rest of the particular topics now let’s discuss about that how we can add the text onto that text file and even how we could count out that what are the number of characters that we have added onto that particular text file so let me take you to the next slide here and here we have the adding the text and Counting characters so let’s first of all discuss about adding that text so whenever I just want to add out any text onto that txt file so in that case we have a function named that’s append a p e n d so this is the particular append function which we use for adding out some data some uh text onto your text files right so basically whenever is your case that you want to add on these lines or you want to add on that particular lines so we use out the upend function so the mode which we write here is double inverted commas and a small a as for the read and write we use to write R and W so for the upend function we used to write here as a small a right so a small a whenever you see that small a written so quickly understand that out that this is the place where anything is being added or written something onto the text file now uh let’s say you have one particular case that whatever the text you are adding on you just want to transfer out or add on that particular text onto a new line so for adding the text in a new line we use out the operator that’s back sln so back sln is one of the other operators that’s used for changing your line to a new line and then adding whatever the text is required right so for the upend function it basically helps us to add the text in your txt file as I mentioned it is used for adding your text in the txt files next the mode used is a for appending means adding or writing some text to the file so whenever I just use out the a so it means that I’m using out my append mode it means that adding or writing out some text to the file then I have that for adding the text to the file in a new line we use back slash and before writing the sentence to be added so yeah this is one more case that comes up I have already told that but one thing I was left here that whenever you just want that whatever you have written up that comes onto a new line I mean to say that uh like a new sentence is being appeared in a new line you want to append the things onto a new line so in that case use out that back slash n in the starting of the sentence not at the last okay use that in the starting of the sentence then it will particularly take you to a new line and display your sentence in a fresh new line like right so hope I’m very much clear with the upend function that what it is used for and how we use that out what are the specifications and what is the mode that we used up here then we have the next topic that’s counting the characters now we have that how you can count out the characters so it comes with the help of the Len function l e n okay so Len is the function which is basic typically used for counting out the characters right that what are the total number of characters which you are having into your file so that particular uh operation that particular thing can be added can performed with the help of the Lin function so what do you do basically first of all you open up your file and you just read out your file using some function that we already have open and read functions after reading out the file and that what takes to written onto the file you just apply out the Len function okay you just simply apply out a len function and that particular Len function is being applied in a variable I mean to say that you put on a variable use assignment operator and the variable in which you have opened your file in the read mode with the help of that particular variable you use out the Len function and as soon as all the things are done up here we simply get out the total count of the characters which you have in your text file right so hope I am very much Clear regarding Len function as well let me go once again that it’s completely used for calculating for finding out the total number of characters whatever you have used in your text file right so first of all you open out your file then you use out whatever the operation you you want to use and after that you simply use out your length function so hope I’m very much Clear regarding the upend and the Len function that what are these two particular functions what are they used for and basically how to use them out so hope you are very much clear with these things now I’ll be taking you to the py charm IDE and they will be seeing a practical for the upend and for the Len function so now let’s see that basically how we can Implement out the upend mode and the lint function so upend mode is basically used for adding on some characters onto your file and the length one is used for calculating that basically how many characters you are happen here right so okay so okay what I would just do is that I would already add out first of all some text onto my demo file because that has been it is because I have commented everything so let’s say I’m going to write out here that I am I am learning I’m learning and here goes like let’s say file handling file handling okay fine this is one of the Tes that I already have out here so I’m going to use out now my append mode to add on some more text onto this particular place so the like the short form that we use is a the very first procedure that I’m going to do is that I’m going to open out my relevant file into which I want to append out that text so that’s for me demo. txt putting out a comma putting out a double inverted commas what’s the mode and mode is a so I’m going to put that out coming to the new line uh okay now here you have I could just take on one variable let’s say that’s um addore text one variable of mine here I’m going to use out F dot write function to write or to add anything onto my notebook onto my file inside this I’m going to write out that okay above what we have written that um what is already written I’m learning file handling okay let’s write out that this is a pin mode like this right let’s come on to a new line print out the addcore text here and at last I’m going to close out my file so F do close putting out the brackets like this uh what I would do is that I would add one back slash in here as well so that whatever comes comes into a new line and here it’s time for running out the program so okay this is basically coming because I have written out your addore T so it’s basically counting out the number of simple characters that I have added so yeah that’s actually okay let’s go on to the demo. txt and see what has come here that this is a pend mode basically here what I’m getting I’m getting a new line added here that this is aend mode and which I have added through the a function using this a mode I have added out that particular thing right so hope I’m very much careful that how the sus function actually works out right so I’m going to do one thing simply I’m going to remove out these relevant things from here so the houseful great and if I again run this out so again it would be basically it will run out here now downside I not got any option any answer but here this again the sentence has been added so the number of times you gun you are going to run this statement out you’re going to run this program out so it will basically add that much number of the statements onto your relevant text file right now this was how the append function actually works out now I’ll be showing you a like for the Len function so here goes the Len function let’s come down here I would again open my file but this time my file would be opened in the uh one second uh this time my file will be opened in the read mode because I want to um uh that that I want to just add on or count on some of the relevant things right I do not want to write or rep anything like that so I simply want to count the total number of characters that’s reason my file will be opening in the read mode okay so here I’m going to write out let’s my variable is data is equal to if dot read and in the bracket I’m going to write out the variable that we are having as if okay not this if I’m simply going to write out if do rone like this next I’m having total underscore count as one of my new variables and into that I’m going to put on first of all the function that we are having Len and the variable into which I have read out my data which I have into my file so that’s the variable is only data okay I will just read on dataor read let that be and here as well goes dataor read so inside the length function you need to write out that particular variable in which you have used out that read function which I have written up here okay and at last you are going to print out here the variable in which you have counted so that’s total count and I write out like this and simply last go here the closing of my file right so what I’m going to do is that I’m going to run out this relevant program here so my total characters the total number of characters which I am having into this file is 87 right I’m to toally having 887 characters onto this demo. txt file right and why I just G get out one more statement like this because I haven’t commented out this particular line that’s that’s the reason one more line has came here right so yeah hope I’m again very much clear that how to use out the append function for adding some takes and basically how to use out the Len function for calculating for giving you account that total how many number of characters are present into your file right I hope I’m very much clear with these things so let’s move on to the next topic and see out the next functions now we’ll be seeing a one another function here in this file handling and that’s the read line function now I’ll be telling you that what read line function actually is and how is that useful here fine now let’s see we had seen about how to read out the taste how to write out the text how how to add on some things onto that particular text right we had seen how we can append and all these things are absolutely clear now there could be one case that let’s say whatever text file you are having into that text file you want to read out the text line by line like in the first line whatever the text is written first all read that out then secondly comes out in the second line whatever the text is written read out the second text in the third line whatever text is written read out the so this can be a particular case that could be here that whatever the text are here you need to read down all of the Tes line by line right so for performing out this particular function we have a readline function in the file handling read line as from the name only suggest that it helps you to read out the text read out the lines or you TT whatever is present in the line line by line right hope I’m very much clear now next basically what we are having so how to use out this particular function so for using out this function firstly you need to open out the file in whatever you mode you just want read mode or write mode whatever you just wish out you could open out the file after that you need to use out that read line function so to read out the lines accordingly we use out the read line function that is mentioned and it will basically display the line uh lines in the form of like it willb the text in the form of line by line now uh let’s say into your first uh take first line it’s written uh learning file handling into the second it is written read write and open mode into the third it is written upend mode so whenever you are going to use our read line function so first of all it is going to display you the very first T that learning file handling okay next basically it is going to dis give you out the out uh like again you going to use out the read line function so it will be giving you the next output and that will be your very second line that is read write and open functions open modes right now then will be after again if you use read line then it is going to display you the third line so this is how this particular read line function actually works this is how these functions uh play a role and help us to read out the text line by line so after writing up the things and after let’s say I just said you that okay read out this file line by line so once we had seen about that read function right that is as one function that is used to read out the text which you are having but it defers that onto that particular function you read out your text uh in a one complete goal like if you use all the read function so at one complete time it will display you all the text which is written up into your F the case where you just want to read out your text line by line one single line by line so into that particular time you use out the readline function right so hope I am very much clear with these two particular things that we have about the read line function and basically how to read out the text line by line now what I’ll be doing is that I’ll be taking you to the pyam IDE and they will be seeing up the Practical for this read line function okay so here we are onto the pyam IDE and now I’ll be using up the read line function okay but before that I’ll be writing one or one or more two more sentences onto my uh file so f. write let’s say I’m learning file handling okay uh topics I would just write that topics are open read and write mode okay L okay that’s not open it’s open like this right and let me come to the new line I would just write F do write once again and let’s say I would write here that uh let’s say next is aend function right let’s say this these are three text which are written I would just run out this particular file up here but before that what I would just do is that I’ll be commenting out this particular place right so comment that out and now let’s come to the downside and run out our program so here we go okay so nothing would be displayed here as I told you because we have written onto the file and this is my file now here I haven’t used out the back slash in that’s why it is coming like that let me just quickly use out the back slash in in the starting back slash oh okay not like this like this and back slash in in the starting and now let me quickly run that out once again here so let me go on to demo. txt and yes now it’s coming up right so I’m learning text F I’m learning file handling topics are open read and write mode and next comes the upend function and one more thing if you just want to remove out these spaces so do not give any space between the back slash n and between the sentences now it comes appears to be absolutely correct right great now what I’ll be doing up here is that I want to read out the text line by line okay what is the thing that we perform so I would simply write first of all the variable name with the help of which I have opened out my F in whatever the mode it doesn’t matters out so let’s say here I have opened in the right mode so it doesn’t matters that what is the mode that you are opening using out Simply it matters that uh what is the variable that you have taken right so you have opened out your file and the variable is f Dot and now here basically use the read line function like this and this whole particular thing would go inside the print statement like this right now I would just run out this program here for a while okay one second it’s not readable where is my text file gone one second guys um where is that particular folder uh for the great learning let me just quickly open that out so here it is not neither here it is right here so demo. txt right these are the files now let’s quickly run out our program here for a while okay not readable let’s let’s check out that what is the thing that we are making up error as and why it’s basically not displaying as that thing okay so it goes print if do readline and after that bracket is completely done before that let me comment out these three lines and let me open it in the read mode first of all now it’s the time for running out the program once again so here we done and now here I got out my very first output that’s I am learning file handing so this particular output came because uh first of all that okay one another thing that um simply the opening of the file can be done in the read mode or the write mode but you could not use any functions like this so at that particular moment I need to comment out this these lines first of all because at the same time I cannot write and I cannot use the readline function at one particular point I could not use out these two functions together right that was the reason I needed to comment out these three particular lines so read out the very first line of my text file which I’m having and that was I am learning file handling yes this was the very first thing now let me come down here what if I again use out one of the printer statement right here if do read line and put on the bracket like this now if once again I run out my program see now what output I’m getting up here uh so that output which I’m getting is topics are open read and write mode so let me just just uh do it like this right here so when I used out my first read line function I was getting my very first line displayed next case when I just used out the SEC read line function second time so this particular line was getting displayed right so hope you all got the idea regarding this now let’s see if I just once again use out this print uh read line function so F do read line and the brackets now what will happen this particular will be displayed third time means my third line would be displayed up here for the upend function so verify as these are the only three lines I’m learning file handling topics are open read and write mode and the next and the last one comes here is as the upend function right so hope I’m very much clear about these uh these three readline functions that how we just read out the line read out the text line by line now what if I just once again use out my read line function as I was having only three lines into my uh text file but what if I just once again use out my readline function now basically it would not display you any other text because there was no other line in my text file in my demo. txt I was having only three particular lines neither it will display you the error nor it will display you the text simply it will keep that particular thing as blank I would remove out now this particular thing and at last my file is getting closed because we all know that whenever we just open out a file it’s basically we need to close that particular file as well right so hope you got out this particular idea as well regarding the readline function that what is this readline function how we use this out basically how we will be able to read out the text which is present in one single line and that is completely line by line right hope you’re very much clear now we’ll be seeing up the next topics now let’s discuss about the try and accept functions so this is a particular point from where we start dealing out with the take with the exception handling right so from here I’ll be letting you know about how to deal with the exceptions so the very first topic that comes under this particular one is try and accept so let me take you to the next slide here and here goes the try and accept statement now see whatever the block of code whatever the like code you are going to write inside the tri block that gets executed whenever your code is completely error free and if you have any error into your code then basically your except part gets executed see take it in a way let’s say you’re writing out any particular code so you just put on your main logic of the program inside the try function right after that you add on one exception as well that if basically there’s such some or error into your code which you have written out so just display out that particular exception to you in the form of an error it’s not an error in the form but I would say that it’s a form of exception that would completely occur out so in that particular case you are required to put on those particular um that particular print statement or anything inside the except so if you’re is not having any errors then basically your try function would run and it will display you the relevant output whatever is the required one but if your code whatever you have written out that is having some issues that is having some errors so in that case the control of your program will go inside the accept function and then your accept block will basically execute whatever the exception would be occurring that would come or if you have written any print statement inside that that would come whatever the things you have written inside the accept part that would be displayed as an output to you in the form of an exception right hope I am very much Clear first of all regarding the try and accept the statements after that one more thing comes here is that with one single try you could use any n number of accept functions except the statements actually let me elaborate this a little bit let’s say you are uh you are have on you had put on one try and accept statement okay you put on one try statement and one accept statement now the case is that let’s say you just want to put on more than one except statements so yes basically you are completely allowed to put on that particular part here as an output right so now with one single try it’s uh okay with one excepted stateements it’s compulsory to put one try function okay it’s it’s compuls ready to put a pair of try and accept other than that with one single try statement you could use any n number of statements according to your choice whatever you just wish out you could use that much n number of statements that is the accept statements with one single try right so hope I am very much clear with the usage of the try and accept the statements so whenever you are having no error into your program so you trying block actually gets executed and when you are having any error in your program so your accept statement gets executed if basically after that when the accepted statement gets executed so whatever the printer statement you have used either that will get executed or if you haven’t used out any printer statement so in that case you would be getting an exception as a form of a result okay now the other thing as possible which I mentioned is that a single Tri statement can have more than one except statements so it’s not compulsory to always put out a pair of try and except with one single try you could use 10 except 20 except 30 except whatever the except functions except the statements you want to use out with one single try you are always allowed to do out that particular thing right hope I made this thing very much clear to you regarding the usage of the try and accept functions as well that how to use them out now we have a syntax so how to use out what’s a Syntax for try and accept so first of all you put on your try keyboard right you put that out put out the colon come to the new line so as soon as you would be coming to the new line you would automatically be getting out some tab spaces so that spaces you’ll be getting out so as to confirm that yes you are inside the tri block right after that you put on your relevant Logics you put on your statements you just write out your complete code whatever you just want to write onto that particular place right after that come out of the trial statement and then put out your except now you could simply print out ex write out except and inside that print a statement or you could write out except exception as e now these two cases occur up here what are they Ed for so this except the exception as e it it is basically used whenever you want that whatever is your relevant error or exception that is occurring you want to see out that exception as an output so in that case we use out except exception as e and whenever is the case that basically you want that whatever the exception you are actually putting on after that you want out a print statement to be getting printed as an output so in that case you simply use out accept keyword and after that you just use out your relevant print statement right so as we have learned about the try and accept Theory now let’s move on to the Practical let’s see that how it’s completely used out how to implement that out so what I’m going to do here is that first of all I am going to take out two inputs let’s say a is equal to I would simply mention out here as input and inside that I’m going to write out a statement let’s say that enter the number okay come to the new line let’s TR just take out the second one I just write out here as let’s say input enter the uh number two let’s say this is number two and let’s say this is number one so here again comes out the colon and like this right now let’s say I’m writing out the program for addition of two numbers so here goes now my triy function coming inside my triy function what do I have here so I’ll be starting up here with the things that let’s say I declare a variable let say that c is equal to now above I had simply use out the input functions only what I want to write out the program for I want to write out the program for adding of two numbers but uh at none of the places I have declared that I want the inte I want the input to be in the integer format right this is the case which is not declared so now I have declared I would declare a new variable let’s say that is C here and after that basically what I’m going to do is that now as I mentioned that we will be writing out a program for the addition of two numbers let’s say i’ be taking up the two numbers from the in from the user here right now uh when I talk about taking the input from the users in the number format so in that case uh at none of the places I have mentioned that I want the input to be the in the integer format and if I haven’t mentioned out that particular thing so in that case it will automatically take in the string format when I use out the plus sign so it would not give me the addition it would simply do the concatenation of both of those numbers right this is the case which actually happens out what I could do here simply I could just do out the relevant type casting I could write it like this and simply I would write it out like this coming to the new line I would be using out one of the printer statements and inside that I’ll be printing here as C okay after this I’ll be using out my except exception as e right this is my first sentence which I just told you right away that we could use out this particular statement that is except exception as e and here I would be simply printing out e what I’m going to get out result you all as know out that I’ll be getting out some exception here the reason is that I haven’t mentioned out any data type here in the starting and I have mentioned here so it would say that we cannot add integer and a string either it shall be integer integer or it shall be string a string right let me run out the program and so show you how these things appear okay I need to give out the number one let’s say that’s two and here goes the six so what I got here unsupported operant type for int and St Str so it basically means that the operate type The Operators which you have used out here like the variables which you have taken that are not supported one is the integer and another one is the S Str right now this is the kind of exception it occurs when you had made out any error in your program the first way to get out the exception okay now second way is that you could simply write out out here accept and inside this you could add on a printer statement that uh error error in your tribe block you could print out one simple sentence like this as well when I run this out so here let’s say I enter out my number let’s say that’s three then five so what I got error in your Tri block but it’s not that much specific that it was giving me with the previous one that was except exception as e it’s not that much specific so in that case we always try to prefer write down except exception as if we always prefer to use that only right so hope you got out the idea how exception occurs now I would type c this thing as well and now let’s write out our program in the correct Manner and I would be running this at this particular place so what I got As in first all output that into number one let say that’s four six and now I got out my resultant output that’s 10 the reason is that I wasn’t having any errors so my tri block executed and if my tri block executed my exted block will not get executed because I wasn’t having any of the errors into my program which I have written out right hope I am very much clear with this particular try and accept statements to you that how we use this try and accept what’s the syntax that we use um and what’s the correct way actually for generating out the exception so the correct way is except exception as e right hope I’m very much clear now let’s move towards forward with the some other topics of the try and except function Sol that’s in the exception handling now let’s understand about the try with the else Clause so I just told you about the try and accept right away away some minutes before now let’s see that with the try and except how you could use out the else Clause at what particular time it would get executed and all the things let’s move forward okay so first thing is that you could use out the first of all try first of all the else Clause with the try and accept the statement yes that’s allowed what is the set of instructions what are things that you need to follow up here so whenever let’s say you use out the else Clause with the tri statement so when you want to execute a set of instructions whenever you do uh let’s say the case is that whenever you do not have any exception into your program after that uh after execution of the tri block you want one more statement to get printed as an output for you so in that case we simply use out this else Clause let me give you an idea let’s say you wrote out a program for multiplication of two numbers you add on your accept statements after that you use on the else Clause inside the else Clause whatever the printer statement you are going to use so in that particular case if you do not have any exception in your program if you do not have any error in your program then after the execution of the tri block that particular elsea statement will take place for the execution hope I very much clear with this particular thing right but that will only and only be executed when you do not have any error into your uh program when you when you your exception does not actually work then in that case only that else Clause will work the syntax is that you could simply write out first of all your try statement your accept statement after that put on the else keyboard after putting that out put on the col in and come to a new line automatically some spaces you will be detected and after that you could add your relevant print statement your relevant block of code whatever you just want to be get executed if your exception hasn’t been occurred so in that particular case you could use any of the things relevant to you right there is no such restriction that you would only use printer statement or you would only use the uh like write out some logical things nothing like that you could write out anything in that P particular case right so hope I am very much clear with the use of try with the S Clause that how you could use this out and what are the cases where it is particularly used out now let’s see out the Practical that how we can use out the try and accept the statements with the else Clause so I’ll be writing out first of all two inputs from the user so a is equal to int input and I would be writing out here let’s say that into the number okay into the number one let’s coming to the new line I’ll be taking another input and that’s in here comes the input and goes that uh enter the number two okay so here I go with the small n now I’m going to write out a program for finding out that a number is even or odd okay so I do not need the second statement right if I write out the program for finding that a number is even or odd so I do not need out the second number right it only works with the one so let’s go ahead and write that out so I put on my trial statement come inside my condition goes that if a person two is equally equal to zero basically if the number is divided by two and the remainder is zero so in that case print out with the help of f strings that um I would write out the number first that a is an even number right and if this is not the case in that case print out the S part. print F strings a is an odd number right these these can be two statements two cases which could appear that if the number is even it means that the remainder is zero in that case write out that this particular number is even otherwise print out it’s OD after that here goes the except I would write out except exception as e put on the colon come to the new line print out the small e that is my exception now after this try and accept here you use out the else Clause so like this it goes inside this you could write out anything I would simply put on a printer statement that uh that else Clause got ex uh execute Ed like this I could print on one of the statements at the SSE Clause got executed right so okay now what I would just do is that I would run out this particular program so it’s asking me to enter the number one let’s say that’s four see what it got me it gave me that four is an even number and else Clause got executed now why did my else Clause got executed because my tri block got executed completely in a complete manner because there was no error or exception in my program that’s what he saying this else part got executed now what I would do let’s say I just make out any error into my program let’s say if I just uh put on one single uh this okay now if I run out my program okay so it okay it is syntax ER 1 second is equal to and here let’s say I just make on B because B is one of the variables which we haven’t defined let say I made out B run that out to you asking me to enter the number one let’s say my number is three see what it is giving me name B is not defined this is my exception that is occurring right and my else Clause even did not got executed the reason I have already told you that whenever your Tri block will get executed whenever the portion whenever the logic which you have written ins the tri block that would get execute after that only your else part will get executed if you are getting any error or exception then your else Clause will not at all get executed right so I would again make out the relevant changes so it’s a and again it’s a and now if I just again run out my program so now in that case I would not be uh getting any error any exception like that let’s say it’s right so 45 is an odd number and here I got the statement executed that else Clause got executed right hope I am very much clear with the statement for like how does the TR except and else Clause work together hope I’m very much clear with this that which part will basically execute when right so we’ll see up the next topics now let’s discuss about the finally keyword so now we be seeing up that this is finally keyword in the exception handle let’s go ahead so yeah here we have um okay I told you about the try and accept functions in a very much detail even we had done out the Practical as well right that was completely over then we then I introduced you to the else part as right that the how to use out the else Clause with the trial statement so that particular condition was applied at that particular case whenever you just wanted to like uh like let’s say you are writing out any particular logic or particular code inside the tri blog and whenever you do not have any particular error into your program it means that your accept part doesn’t works out it doesn’t executes at all in that case the else part was getting executed now what happens with the finally keyword here see finally is a keyword that would execute either you are having exception in your program or you are not having exception in your program it does doesn’t at all matters for the finally keyword it means that finally keyword has to execute no matters you are having any exception or you are not having exception right you could use the finally uh keyword directly with the try and accept or either if you just want to add on the uh that else Clause so in that case as well you could just add on your else clause and your finally keyword after that no matters that you’re using it with the else Clause your reading with the try andex whatever you just wish out but one complete case actually takes place here and that’s compulsory that whatever you’re going to use out like whatever the program or whatever the code you’re going to write inside the try and accept no matters try r or except Rons finally keyword will should be run out right now let’s quickly pay a little attention to what’s WR up which I have written out here so finally a keyword which shortly executes after to the execution of the try and accept block of statement so it means that finally is one of the keywords that is shortly going to execute after the execution of the try and the except block of the statement as I told you that particular thing as well right now when I move towards the talking of the syntax that how to use that out so syntax is super easy and even the same as we have followed from the previous uh like topics simply first for you put on your trial statement put out your relevant code or the logic whatever you just want to put inside the tri block after that put on your except so I would always recommend you to put on your except statement as except exception as e it makes a relevant exception for you it generates out a relevant exception so if you have any exception into your program so it comes to you as a completely defined one so that you could got out a clear idea that okay this was the exception that was occurring so now I won’t make out this particular exception into my program right this is what actually happens out then after that we have the El part that exceptional if you just want to add you could otherwise it’s not at all compulsory to add out right and after using out whatever the relevant is condition you want to use or do not next statement comes about the finally keyword so at this particular place you use out your finally keyword inside the finally keyword you put out your relevant code or you just want to put out a printer statement or you just want to put out some logic whatever you just want to wish you could just put that inside the finally keyword after that you execute out your program so whatever runs either try or accept that doesn’t matters but you will finally be getting the answer the finally getting the output with either our either with a try or accept and the finally keyword will surely come at the last it means whatever you have written in the finally that will surely be executed and given to you after the uh after the uh run of try or accept right so hope I am very much clear for of all regarding the finally keyword that what is this finally keyword how we just execute that out and what’s the syntax what it is used for what conditions are applied and what not are applied right so hope this thetical part is very much clear now let me take you to the Pam IDE and let’s Implement out the Practical for the sake so now let’s execute out some practical for the try and accept part right so I’ll be using up the finally keyword here with the try and accept so let’s get started up here and okay let me just come down at this particular place what I’m going to do is that uh I’m going to write out a program first of all uh to find out which is the greater number among the two okay let’s say ass simple program so I’ll be taking up the int and here goes the input and here goes my enter the number right my post number goes here next coming to the new line what I’ll be doing is that I’ll be using second variable and into that again as well I’ll be taking out the input from the user so here goes that into the num CL and giving out a space like this right so num a and num num one and num two have been taken the input from the user then comes my try function so try my condition goes that if a is greater than b right so in that case I could print out an statement print I could write out with the if strings print if I could put on that a is a is uh that’s greater than and here goes the B right a is greater than b coming back adding on my is condition is what we could print is that print uh okay let me go above add this particular place go adding the F strings in the bracket it goes like okay F will be out not inside like this right so yeah I would write here B is greater let me come down at a place right here B is 1 second so B is greater than and here here as a okay so B is greater than a that conditions are satisfied coming out and using out my except function so except exception as e putting on the col in and printing out here as e right this much code you absolutely understood because we already have dealt with these types of code previously right now coming down onto a place here I’ll be using on my S Clause as well let’s say that is as well getting executed okay let’s first of all simply add on the finally after that I would add that as class so here goes my printer statement and I would just write that um finally uh keyword uh W keyword U let’s say this is my printer statement okay fine so I don’t think that we have any of the relevant exceptions into our program because we haven’t made out any of these so my output will be first of all I’d be getting whether this any of the conditions from here and at last this particular statement will be printed let me show you how so let’s run it out here so as you remember for doing running out weekly uh on the blank space we do all the right click click on the Run option and here we go so the number one I would enter let’s say 21 okay okay above one is as well not commented one second I’m so sorry let me terminate this out from here okay yeah remember the previous program as well we have written out so let me just quickly here as well let’s comment that out right now it’s the correct time for running out the program so click on run into the number one so let’s say that’s 21 here um that’s 34 so what show me 34 is greater than 21 because my second condition was getting satisfied it means the value for the B is greater than a right and at last a statement came here that finally keyword used right because this finally statement got executed now what I’m going to do is that i’ be making out some um changes into the program leter let see here okay okay yeah let’s run this out now okay so I’ll be entering out the number one let’s say that’s 34 and number is let’s say the let’s one okay I got my relevant exception that name c is not defined other than that my finally keyword again got executed at this particular place so it showed me finally keyword used so I as will mentioned you when we were discussing about the Tory that uh finally keyboard always gets EX uted no matters that what are we using no matters that trap block is running or the except block is running the finally keyw will surely run at the particular place right hope I am very much clear with this particular thing let me close it out here and now I would be making it again the same here and let me as well show you how to use out the L CL simply after the accept you could put on the SSE condition um and one second go back hit out genter and write out your relevant print statement so print or whatever logic you want to put anything works out here so I will just write out here print um else part got executed so here goes the executed right so here else part as well I have added on here the finally and now let’s run that out so let’s say my n one is 67 and num to say 32 and here goes that 67 is written on 32 after the try we have used our the else part so that’s the reason else part got executed fast then we were having the finally keyword and then basically my finally statement was present there so this particular statement got executed that’s finally keyword used right hope I am very much clear with the complete detailed explanation for the program as well that how to add on the finally keyboard how to add on the else conditions and all the things are very much Clear hope right fine so let’s see the other things as well uh so now basically I’ll be discussing about the summary of this particular module that we have discuss so let’s take uh let me just uh take you to that particular presentation as well now let’s take out a quick summary of whatever we have learned in this exception and file handling module so let me take you to the very starting from where we had started out and there will be seeing up all the things so we had started out with the in ction that what is uh file handling so file handling basically deals with the uh text files it means that uh this is completely known as when you are dealing with the text files means you are opening you reading writing appending all these operations are done onto a text file and this particular procedure is known as file handling the another name for file handling is python file input output functions file IO functions or file in input output functions whatever you just want you could use that out right so particularly we have different uh functions here like read write upend alter many other functions we are having okay let’s move forward and here we described out the open read and write modes so open was one of the mode that was basically helping us to open out a file as we been read out a book so first of all the first um procedure that we do is that we open out that relevant book same here whatever the file you are going to uh particularly operate first of all you’re going to open out that file so that particular thing is done with the open mode then we have the read mode so read was a mode which allows you to read out whatever is written into your program into your file into your text file and write was one of the modes which basically allows you to write out anything to write anything onto your text files so these were the three modes that we had seen we had seen the Practical for these that how to implement them out then we were having adding text and the counting characters so for adding out some text onto your text file we were having that function that’s append function so append was a function that basically helps you to add on uh the text onto your file right that as well we had seen out next we were having a function that was used for counting out the characters that total how many number of characters you are having into your text file so that function was Len function right now let’s come then we had seen about the readline function so this was one of the functions which basically allows you to print out your uh relevant written out text line by line whichever text you have written into your um like into your text file so it allows you to print out all the text line by line as an output for you right then we had moved on towards the exception handling we had seen about the try and accept functions so we had seen about the try and accept statements whatever the code written inside the tri blocks gets uh it will only and only get executed when there is no such error or no such exception occurred if you are having any exception then basically the tribe block will not get executed and you will be getting out your relevant exception we had seen two methods for writing out the exception first for accept simply write out the accept and inside the print statement write out your relevant statement and the second one was you could use except exception as e and you could print out e so it will automatically give you a relevant uh and the meaningful exception right so we had seen about the try and accept we had seen one one more thing here that with one single try you could use any n number number of except functions right then we had gone ahead with the try and the else Clause so I told you that how to use out the try with the else Clause so the part uh the block of code written inside the else Clause only and only gets executed when you do not have any exceptions into your program if you are having any exceptions then your s Clause will not at all get executed right this was what we had seen in the try with else clause and at last we had seen about the finally keyword that what’s the finally keyword how we just execute uh like um in the finally whenever you do not have any uh like uh if you’re using out the tri block or if you are using out the except function either your Tri blocks executes or your except block executes it doesn’t matters but what matters is that your finally keyword will surely get executed no matters you are having any exception or you are not at all having ex any exception in your program but your finally keyword will as well get executed right so hope I am very much clear with whatever I have just told you regarding this module of exception handling and the file handling right so hope you’re very much clear with all of the topics which I had shown even what practicals we have performed hope you all are very much clear with advanced concepts in hand let’s tackle data structures and algorithms we will explore arrays stacks qes and dinker lists and dive into essential searching and sorting algorithms to enhance your problem solving skills now let’s talk about our first linear data structure that is array so what is an array it is a linear data structure that means elements will be stored in a linear fashion right linear fashion now if you talk about array let’s take an example now let’s consider that this is how you represent an array in the form of a row right and let’s suppose it contains elements 1 2 3 and four right now with every memory location there will be some address right so let’s suppose these are the four elements right 1 2 3 and four and these are some addresses let’s suppose this is 100 and this is 104 this is 108 and this is 112 now if you talk about memory obviously these addresses will be are decimal and when you talk about this this particular array it will be somewhere in the memory with four uh or you can say four bytes of memory for each integer now if I take if I consider this integer and let’s suppose integer takes four bytes now these four bytes are available for each integer now this is an integer right now it takes four bytes now the second interest will start from 104 right because now again this will take four bytes then 108 again it it will take four bytes and 101 112 right so in memory it will be somewhere around but the thing that obviously you might be thinking okay sir let’s suppose this is our memory and now if we have four and four bytes that means 8 bytes here and 8 bytes here but they are available in chunks right this is

    one chunk and this is second chunk and rest of the memory is occupied can we store this array in your memory in the memory no because it needs contigous memory allocation that means when this is the scenario where in you have memory locations or memory locations available in a one big chunk right that means if you talk about this array it requires four into 4 that is 16 bytes are available but and they are available in a in a continuous memory fashion right or they are available in in such a way that it is a one single chunk of 16 bytes okay so then only you can store the elements at that location now obviously for Simplicity I’m taking this addresses as a integer number but in reality those are hexadecimal numbers okay so it is easier for me okay so now one more thing is that the elements are stored in a linear fashion right but can we access elements randomly yes with the help of indexes so if you talk about this array right 1 2 3 and 4 obviously this there will be a name associated with this array right now we have index 0 1 2 3 now why indexing starts with zero or why there is a zero and indexing always starts with zero now the question is that right now let’s try to demystify this fact that why indexing starts from zero why not it starts from one now if you remember right I told you that there will be a name associated with this array that is ARR now this ARR is nothing but name of the array and name of the array represents right it represents its Base address right now The Base address of this was earlier we spoke about it so it is 100 this is 104 this is 108 and this is 112 right so now this is 100 now let’s talk about how you access uh uh we will talk about in the coming slides we will see how to declare and initialize our array but let’s suppose if we talk about how to access this we use array and then the subscript and then the index okay the index is one now I told you name of this array represents the Base address so Base address is 100 now plus one now this one represents four bytes okay so the four bytes then what internally happens it will be it boils down to 10 100 + 4 that means 104 now 104 is not the first location it is the second location okay now similarly if you talk about accessing the second element or third element in the array it boils down to what array of two which is nothing but 100 + 2 now this two is nothing but 8 right 108 so you will be accessing the third element in the array now how can you access the first element so AR of zero now it boils down to 100 plus 0 because there are no bytes right so it boils down to this that array indexing starts from zero and now you know why and this is how you can access elements randomly so with the help of these indexes okay so now you might be thinking okay now we have an are can we store different elements right can we store let’s suppose this is can we store in this we will store integer then we will store a floating Point number then we can we store a character no if you talk about any particular array let’s talk about this array now the data type or the type of data that you can store in this array will be homogeneous that means you can only store similar elements okay so these are some facts and this is how array works and what are the addresses what are the indexes can you store different elements no you can only store similar elements in the array now let’s talk about the applications of array now you might be thinking so why do we need this array what is the uh what is the reason that we are using this array so basically when you talk about arrays now obviously when you have a scenario wherein you want to store your elements in a linear fashion right and that to you want to store them in a continuous memory locations right so that you can use your CPU or you can use your memory efficiently right not the CPU can use your memory and you can utilize your memory to the maximum right so you want to utilize your memory efficiently at that time you can use this but obviously it will have some drawbacks right it will have some drawbacks that is why we have different different data structures right so if you want to store your data in a linear fashion you can use arrays okay now it is also suitable for for the scenarios wherein you require frequent searching right if you want to search an element in an array you can directly go and access these indexes one by one right so in a linear fashion you will access okay is this the element that you’re looking for no is 20 the element that you’re looking for no is 30 the element that you’re looking for no is 40 the element that you’re looking for yes one by one you can access all those elements and try to search for the element that you are looking for okay so it is suitable for applications which require frequent searching now let’s talk about one dimensional so if you talk about 1D array it is can be related to a row like we saw in the example right so that is what is a onedimensional array it is represented in the form of row and we have addresses like 104 104 108 112 and 116 and indexing will be obviously 0 1 2 3 4 and then there will be a name associated with this array which is ARR and then you can store the elements in this array let’s suppose here the it is an integer array okay you can store only integer elements and the size of this array is five and you have stored the elements one 2 3 4 5 so now it can be related to a row wherein elements are stored one after the other like you see you have one then you have two then you have three and there those all of these numbers are in a continuous memory are available in a con location okay now when you talk about 1D array there is only one index used right when you try to declare and initialize your area at that time you will use one subscript okay so how you can use that let’s suppose if I if I talk about this special array that I that I have defined here right you will Define it a RR and then the sub or the index is that the number of elements that are present here which is five so only one subscript will be there or one index will be used okay so this is how you uh declare your array so now let’s talk about the Declaration and initialization of this array so obviously when you talk about the array there will be a name associated with the array and then the data type are you going to store integer values in that array then the one uh that one subscript or one index that we use and then definitely the size of the array so this is how you declare your 1D array now how can you initialize it there are different way you can initialize it obviously here you are declaring it then you might use a for Loop to initialize all the elements or you can declare or initialize your array at once so how do you do that so you will write let’s suppose this is the integer array and you don’t have to specify the size you can directly write the elements right and those elements let’s suppose those are 1 2 3 4 and 5 in this case when you’re declaring and initializing your array at once at that time this size becomes optional you don’t have to specify explicitly the size of the array but obviously the size of this array will be five okay now since you are declaring and initializing it at once so this is optional but in the case where wherein you are not initializing it at that time the size becomes very important and you have to mention this size explicitly okay now let’s talk about two dimensional are so also it is known as 2D so it can be related to a table like this or you can also say a matrix wherein you have rows and columns right now in this elements are stored one after the other in such a way that you can think of it as a 1D array now this is what 1D array right as we have already seen it right and inside this 1 and D array you have another 1D array right now this is known as 2D are so now how it works right let’s suppose you have numbers over here and you have four numbers 1 2 3 4 then you have 5 6 7 8 then you have 9 10 and 11 and 12 so this is a 2d array of having or and this will be similar to what of having three rows right you have you will have three rows not four rows you will have three rows and in that in those three rows right you will have what four columns 1 2 and so numbers will be like this 1 2 3 4 5 6 7 8 9 10 11 and 12 okay done so now obviously this will have let’s suppose this is 0 based indexing and this will have a zero index here one index here and one now internally what is happening it will be a 0 0 and it will be a 01 then 02 03 then 1 0 1 1 1 2 1 3 then 2 0 2 1 22 and 23 indexing right so similar to that we will have this index will be 0 0 this will be like this and this will be like this so if you want to access the element that is present at this location what you will do you will run two for Loops right one will be starting with from let’s suppose one will start from IAL to0 to the length of this outer array that is uh three less than three right so and the another from zero to the number of rows that are there okay so this one will be the outer loop this one will be the outer loop and this one will be the inner loop that means the number of columns that are there so this is for row and this will be for column that will start from 0o to less than four okay so this is how you iterate and it will be similar to this and now what about the addressing right what about the addresses that will be there so this will be let’s suppose if this is 100 now this will be 104 this will be 108 this will be 112 this will be 116 because internally it is treated as if they are again in a continuous memory location but this time around you have a 1D array and inside that 1D array you have another 1D array so for declaring it you will use two subscripts right so it will be something the name of the then two subscripts and now this will represent the number of rows and this will represent the number of columns so in this case the number of rows will be three and in this uh and the number of columns is four right so this is how you declare your what a 2d array so Dimension depends upon the number of subscripts you are using so this time around we are using two subscripts now let’s suppose you are using three subscripts right so similar to like this three three and three okay so this time around this is the 3D array and similarly you can have multi-dimensional array right and you just need to keep on adding the subscripts that’s it okay uh now we should learn regarding array implementation right we are solving three different problem statements here the first one is we are creating onedimensional array it is very simple and people can understand it in very easy way the second one we are concentrating on creating two dimensional array that means usually we use it for Matrix which includes rows and columns also we call it as M and N or M cross n all these three are the names which you can give it for two-dimensional array and also two dimensional array is used for different purposes at the last we are trying to sort search and insert delete the elements inside an array only which is having integers so these are the problem statements we are solving for arrays in Python so let’s quickly hop into the ID and check out the first problem statement that is how to create onedimensional array and insert elements inside that also put up the output whatever the input is given by the user on the screen so let’s hop into the ID now here I’m using Google collab in order to put up the first program right so we’ll rename this I’m naming this as one dimensional array so now we’ll come to this ID and we’ll type one dimension array example where you are including array size and you are asking the user what are the different inputs and then we are presenting the same inputs received by the user on the output screen so to quickly save the time I’m just putting up the code now so this is the python code where we’ll be using for one dimensional array I’ll explain what is happening here the first thing is we are asking how many elements to store inside the array for example it might be 5 6 10 so whatever the integer number is the whole number we can give it right so again we are asking assigning a variable for input so whatever the input is given by the user will be assigned to the variable called num right then we are assigning an empty array why because whatever the size has been defined by the user is put up here so if it is five it can take only five elements if it is six it can take only six elements that’s how it goes and immediately we’ll ask to enter the elements inside the array then we’ll be pushing through a for Loop and we’ll be using one important piece of code here that is ARR do upend upend in the sense will be assigning the elements one after the other at the back of the array we are not putting up the elements which is inserted by the user in middle or in the front or somewhere right so upend will always ensure the elements which is given by the user is put up at the back of the array one after the other right so next we’ll display whatever the array elements are so the array elements are again you have to push through for Loop because it has to uh just print the elements one after the other so let’s quickly run this program and check out how does this output look right so it is asking how many elements do you want to insert into array so I’m just putting up three as of now so enter then it will ask you for first number I’m putting up four and then the second number that is five then it is I’m giving seven okay so it will display 4 5 7 also you can modify this outputs by giving commas by giving uh spaces between those if not it can generally display this way four five and 7 so this is about onedimensional array in Python let’s see the second problem statement in arrays for python right so we are going to create two dimensional integer array where you can insert row number and column number and it will fill up the elements inside the array accordingly so let’s quickly switch on to the ID that’s Google collab and check out how does 2D array work in Python so here I’ve have named this particular file as 2D array and you can name it whatever you want and I’m putting up the code here so explaining the code for you that we have asked for row row numbers so how much the row should be in your Matrix I’ll take it as Matrix only because usually rows and columns will be using in Matrix so number of rows should be given by the user and we’ll store that number in our underscore that is row number again we’ll ask the user uh input number of columns right so whatever the number is given integer value whole numbers is stored in C num that means column number you can accordingly put up the variables as per the problem statements so here to keep it relatable I have used R num and C num next we are going to assign whatever the values we have right that is given by the user that is it might be a row number or it might be a column number we’ll assign that with the elements so to assign we’ll be using for Lo because one after the other it has to be printed right at last we’ll be printing the final array and final Matrix two dimensional array in 2D array I I just put up a abbreviation here so it’s understandable for you guys so T W2 D is dimension underscore array AR RR I not put up completely array it’s just ARR so this is how we initialize and the variables declaration and this is how we execute the program let’s quickly see the output of this so I’m running it is asking for the first time that is input number of rows so the number of rows I’m giving here is uh two and again I’ll enter it will ask for number of columns so then it is three here I’m entering that and it is giving you two rows and three columns also if you want you can arrange it as per Matrix so one after the other but here I’m showing it for you guys just with see you can count three columns you have and two rows right the bracket defines the rows here right the first bracket set of brackets is for first row and second set of bracket is second rowes so this is how 2D array Works in Python so we are going for the third problem statement which we are solving for array in Python so it says Implement search sort and delete operations on array of integers right so I’m breaking these three operations that is search sort and delete into three different programs to make it simpler rather than combining everything and making it to one huge program so first I’m concentrating on deleting elements inside an array of uh integers in Python so quickly we shall hop in to the IDE and see the program here Google collab is ready and the page is empty I’m just pasting this particular code in order to use time efficiently so explaining this code the first line it says enter the size of an array right we are first accessing an array size for example example it might be 10 5 8 as per the user command and then we are inserting so many elements in into that particular array say for example it is five right so we are inserting five different elements which we have already seen by now so next it is asking which element to delete right so we are telling an element a integer to delete then it will display the new array for you so fall Loops are there in order to keep the array in sequence and it might be printing or it might be taking input from the user both we are using for Loop only and upend is for putting up the elements into the back of an array right we are not inserting element in middle or somewhere in the front abruptly the insertion should not happen so one after the other sequentially in order to upend in order to insert the elements we use AR rr. upend so let’s quickly see what is the output of it so if you have entered any element which is not there in this particular array right so it will give you element does not exist in an array so this is how the program will work so let’s quickly see the output now so it is asking for aray size I’m giving three I’ll enter Then entering all the three numbers what I want to give okay it will ask you which value to be deleted right I’m giving value five so the new array is without five that is four and six so this is how it will work and immediately I’ll show you if you give any element which is out of the array bound how it will give you an error so I’m taking three elements again 5 7 and 8 right so it will ask you which value to be deleted I’ll say one one is not there in the array it is just 5 7 and 8 right so if you put that it will say element does not exist in an array right so this is how deletion will work in Python arrays after knowing how to delete element in an array so we have to see next how do you sort elements inside an array in Python so let’s quickly hop into the ID and check out how do you sort elements inside an array right so here we’ll start coding just putting up the code here so array is already defined the elements are 10 22 38 27 11 so on right so we have five elements here to be sorted in ascending order and you can also make it descending as well I’m showing you for ascending order so what is happening here I’ve just put up a comment for better understanding displaying elements of original array original array in the sense whatever it is here is displayed first right so next it is sorting by using for Loop right so so every element it will Chuck and it will try to compare with the next element if it is greater it will push up that particular element to the back and whatever it is lesser will come in front so this kind of exchange will happen and it will sort in ascending order so ascending in the sense from smaller to higher number so quickly it will display after sorting the elements of array sorted in ascending order are so and so so let’s quickly see what is the output of this particular code right so we have original array which we have given that is 10 22 38 27 11 and then we have the sorted array so in ascending order it is 10 11 22 27 38 so this is how it will sort the major function where it will be sorting is we are using this particular lines of code which I’m just highlighting in this particular ID where it will compare each and every element inside the array to the next one if it is greater it will push it to back if it is lesser than the compared array I mean array element it will push it to front so this operation will happen in this particular lines of code right you can also sort by using sort function directly as well so this is a simple example to know how sorting will happen in Python now we shall see how how do you search an element inside an array so here I’ve tried to put up occurrence as well so let’s quickly search and see elements in an array in Python ID okay so this is the code in order to search the element also find the occurrence of it right so here this is the array set so I’m giving the number 1 2 3 1 2 5 so you can see one two is been repeated those two integers are repeated so first it is showing up the created array whatever the array which is been given is put up in the first place and next what it is doing it is trying to find the occurrences of it so with the help of Index right so the element two the number two so where it is present and how many times right so first where it is present it will show that the second time will not be counted first occurrence will be counted so let’s quickly see the output of of this particular code right so here uh the new created array is so whatever the given array by the user is been put up in the first line and the second line it it is saying the first occurrence of two at position one why this is 0 1 2 3 4 5 right so two at the first time is present in the index value array one right again next it is searching for one where it is the first occurrence of one in Array is at Index point0 right so it is showing the output zero again you have one here that is 0 1 2 3 also you have second two in fourth position but still wherever it is available at the first is being uh demonstrated in this particular program right so this is how the occurrence is counted also the elements are searched in Python now let’s talk about advantage of arrays so obviously when you have indexes associated with the array right we have indexes so is it is easy for us to access any element right with the help of this index so if you want to access the third element we can directly go ahead and say a r of two and the 1D right so we can directly access elements with the help of indexing similarly it is easy for us to iterate through it right with the help of one for Loop we can iterate through all the elements right one by one that is there okay that are there in the array and similarly if you want to do the Sorting we can go ahead and easily iterate through one uh these elements one by one and look for an element if we are trying to search an element in the array let’s suppose uh we are searching for three so 1 by one we will search okay is this element three is this element three is this element three is this element three is this element three right and if this element is three we we can easily search and also for sorting right let’s suppose we want to sort this array what would it be it will be simply what if you have four here three here two here one here and let’s suppose you have zero here okay so now you want to sort this in the ascending order so what you will do you will use two Loops one will uh one will focus on this first element and then the second uh the second one will compare all the elements okay and then at the end of this thing you will have the largest element at the end of the array so sorting iteration searching it is easy and array you just have iterate through all the elements one by one now it is a replacement of multiple variables now what you mean by this thing let’s suppose you have an integer or let’s suppose you want to store uh the r number of 10 students right so what you have you would have done earlier prior to what when you don’t know the arrays what you would have done you would have said RO number one and then it’s or you can say S1 S2 S3 S4 and one by one you can store the role numbers in these integer variables right so as soon as our students increase now let’s suppose we are talking about here 10 students now as we talk about 100 now what happens if we talk about 500 are you going to uh write 500 variables integer variables S1 starting from S1 to S500 no it is a very inefficient way of doing so right so instead what you can do you can create an array and you can create an integer array and name it student student and and there in you will have the size which which obviously represents the number of students that are there and in this case it will be 500 now if you want to change it to uh tomorrow if you want to change it to 600 you can go ahead and easily change it to 600 right so it is the replacement of multiple variables so this is what it means now let’s clear the screen and now let’s talk about disadvantages there is one disadvantage that can be easily noticed is the size now obviously when you’re talking about 1D array right the size or any array right the size is there right so you you cannot exceed this size the elements cannot exceed this so let’s suppose you have size is five you can only store five elements right you cannot go more than that or beyond that now if you have a size 100 and now you’re trying to store only two elements anyway the 100 memory locations will be there for this array that means you are was ing your memory you are not utilizing it efficiently okay so this is what it means that size is fixed and you cannot store more Elms and if the capacity is more than occupancy most of the array gets wasted okay so these are two things apart from this you need a contigous memory allocation that means if chunks of memory are available here and there you cannot store an array which is let’s suppose here you have 16 bytes and here you have 16 bytes only if you have an array which is of 16 bytes that means if you have an array of size four that array can be stored here but if you have an area of let’s suppose size eight you cannot store four elements here and four elements here that will not be happening okay that cannot happen rather okay because it needs continuous memory allocation so there is one more disadvantage and the last but not the least is that insertion and deletion is difficult now why do you say that let suppose you have an array and you are having in this array 1 2 3 4 now let’s suppose you want to insert a value zero at this location now what you need to do you insert the zero and rest of the elements every element will be swapped so swapping is required right swapping is required plus there should be Memory available so that you can store that element else if uh there are only four elements and now you want to store zero and the size is also four and that time around what happens you will store one and rest of the elements will be swapped and you will be losing this value so it is very difficult to insert the value now same thing will happen when you’re trying to delete but at that time you will not be losing data but yes swapping is required right so let’s suppose you are you want to delete this location so what you will do or delete this number what you will do you will overwrite this with three you’ll overwrite this with four and let’s suppose if there is six you will over write this with six so at the end you will have 1 3 4 6 right 1 3 4 6 and one memory location is there and it will contain the same element that is six so next time around you will just override this so again the swapping is required so it is very difficult to insert and delete an element in the array now let’s see the concept of Stack now coming to the stack stack is a linear data structure which follows last in first out order that means the element which are inserted at last will be removed first that is Le order last in first out now insertion and removal of the element has done at one end I will explain you now so let’s see an example of a stack so here if I’m having 23 45 67 89 11 and let’s suppose I’m having 50 so these are the elements that has to be inserted in this stack so now what I will do so this is my empty stack let’s suppose that and inside this stack I will insert these elements by one so first I will insert 23 after 23 I will insert 45 then I will insert 67 after 67 89 11 and 15 so this is my stack now as I told you the element which is inserted at the last will be removed first that means last in first out or Leo order so you have seen here 15 is the last element that has been inserted here so now if you want to remove the element then 15 will be the first element that will be removed so for insertion we are using push so push was used to insert the element and pop will be using to remove an element from the stack so 15 is the last element that was inserted so now I will be using pop to remove this 15 so once 15 has been removed then I’m having element 23 45 67 89 and then 11 right so once again if I want to remove the element then my 11 will be removed so once again I will write here pop so always remember that push operation will be used for the insertion and pop operation will be used for the removal so whatever the elements I was inserting here 23 45 67 89 11 15 I was using push operation so if I’m writing push 23 then 23 was inserted then after that if I’m writing push 45 then 45 was in inserted and after that if I’m writing push 67 then 67 was inserted and in this way I can use the push function to insert the element now as I written here insertion and removal of the element has done at one end why if you see this was my stack right so this is my stack so whatever the element I was inserting in an empty stack I was inserting it through one end right and I was doing insertion through push operation now if I’m doing the pop operation then also I’m doing the pop operation through one end so that’s why you can see that here it is written that insertion and removal of the element has done at one end so this was the basic concept of Stack now let’s see the example of Stack so you can see here this is my pile of coin right so this can be considered as the example of Stack why because the last coin is removing first here so this follows last in first out so I’ll remove one coin one coin so if I’m reviewing step by step that means the last coin will remove first and in this way if I will follow then you can see that I can remove one coin one after other one after other and in this way this will be the example of Stack similarly the same example goes for the DVD if I am removing One dvd after other then this can be example of Stack so the DVD which was inserted at last will be removed first the same goes for the books the book which is on the top will remove first and after that if I’m going one by one from the top so you can see that the last book that was kept will removed first and in this way this can be the example of Stack so this was the basic example of Stack now let’s see some functions associated with stack so we are having push function so as I told you that if I’m writing here push 23 and let’s suppose this is my stack so this is an empty stack so it will insert 23 here so here you can see that it is used to insert the element X at the end of Stack so here instead of x if I’m writing 23 then it will insert 23 similarly pop function as I told you that pop will remove remove the element from the stack so it is used to remove the topmost or last element of the stack so if there is only one element in the stack 23 and if I’m writing pop then it will remove 23 right and also please remember that it will remove the topmost or last element in case of this stack we are having only one element so this will be the last element so if I’m writing pop then 23 will be removed but what if I’m writing here push let’s suppose that 25 then 25 will be inserted here and once again if I’m writing pop so this will be the last element so 25 will be removed so this was the basic idea about push and pop function now coming to the size so size function will give me the size or you can say the length of the stack next we are having top so it will give the reference of the last element present in the stack so let’s suppose that this is my stack and I having 23 25 and let’s suppose 27 so this is my last element here so top fun fun will give me the reference of this last element now coming to the empty function so empty function returns true for an empty stack so if this is a stack and if this stack is empty then the empty function will return us true right so this was the basic idea about functions in stack and what will be the time complexity for each function so here the time complexity for each functions will be bigo of one for push pop size STP and EMB so for for every function time complexity will be big of one so this was the basic idea about the functions now let’s see the stack implementation so there are several ways to implement stack in Python we can use list we can use collection module from where we can provide DQ class and we can also Implement through Q module so these are some ways from which we can Implement stack in Python so now let’s see the implementation using list so in implementation using list list in Python can be used as a stack so we can use list as a stack in Python so in Python we are having append and P function we don’t have any push function in Python so if you want to insert the element we need some function right so we can use the append function which is used to insert the element now coming to the PO function yeah we are having po function in Python and pop removes the element in the Leo order that means last in first out and as we know that our stack also follow the Leo order the elements which are inserted at last will be removed first so these two are the functions that we will be using here in list now let’s see the logic of this as I told you that list in Python can be used as a stack right so here I’m using list as a stack so this is my stack variable and this is an empty list and now as I told you that if you want to insert the element then you can use append so this was my UT list that is Tack and as we know that in Python list is denoted by square brackets so now what I will do I will write here stack. append and inside this happend if I’m writing X so X will be inserted in my list now now coming to the pop function if I’m writing here stack.pop and if I’m writing print and inside that if I’m putting it then whatever the element I’m having it will remove so let’s suppose that this is my stack and in this if I’m having X element so if I’m writing stack. popop so it will remove this x element right because I’m having only one element here so the last element will be removed from the stack so this is the basic idea from where stack can can be implemented using list now let’s see the Practical example so now for practical implementation I will be using jupyter notebook so I will click on here new and then I will go for Python 3 and if I’m writing here I’ll give the name here stack and let me comment it down first here I will write here hashtag and I will write here implementation using list so as I told you that stack can be implemented using list so I’ll create a stack variable and this will contain list this is an Mt list and after that I will write here stack do append and inside this if I’m writing here welcome and after that once again I’m writing stack. append and I will write here now [Music] two once again I will write this tag. append I’ll WR great learning so you can see that this is my append now if I’m printing my stack so I will click on run button so you can see that this is my list and earlier my list was EMP but now through append function I have inserted welcome to Great learning so now this is my list now what I will do here from this stack I want to remove the element so for that I will be using pop function so I will write here stack. pop and I will put this stack.pop inside a print function so I’ll write print and now let me execute this so on executing you can see that I am getting great learning so that means the element which was inserted at the last has removed first right and as I told you that PO will always follow the Leo order last in first out so if I’m printing my stack you can see that I am getting welcome to because great learning has been removed through for function if once again I’m writing here let me copy and paste this contrl C control V so once again I’m performing here stack.pop and if I’m printing stack then you can see that I will be getting welcome only so you can see that welcome I’m getting and here stack. pop if I’m doing then two has been removed right so clearly we can see that we can Implement stack using list through aen and po function so this was the basic idea about stack implementation using list so the another way the stack can be implementation using DQ so we’ll see the concept of implementation using correction. DQ so here Stacks in Python are created by the collection module which provides DQ class so now let’s understand this is a collection module so in Python I will write here from collections so from collections module I will import my DQ class right so I will write from Collections and then I will write here import DQ so DQ here is double-ended q and here append and pop operations are faster as compared to list why because the time complexity of DQ is Big of one whereas the time complexity of list is Big of N and also in list if you are inserting more element then the list will grow and it will go out of a block of memory so python have to allocate some memory so that’s why on inserting more element in a list the list will become slow so that’s why we come with the another way from The Collection module we import DQ and then so I will create my stack variable and inside that I will assign my DQ right so now I will perform the same operation that I was performing in list I will write here append and pop so always remember that DQ will be preferred more as compared to list because the append and pop operations are faster here right and rest all the concept is same so let me execute it so now let’s see the implementation with DQ so let me comment it down here I will write here implementation using DQ now after this as I told you that if I want to implement DQ then is a class right so I have to import it from The Collection modules so for that I’m writing here from collections import DQ and I will write stack variable and inside this I will assign the DQ now after this I will write here stack. end and let me write the value as XU and if I’m printing my stack so on execution you can see that I’m getting my DQ as X now let me append some more value so I will write here stack do append Y and after that I will write here stack do append let’s suppose Zed and once again if I’m executing so I will write here print stack and on execution you can see that I’m getting XY Z now let’s perform pop operation so I’ll write here stack dot pop and let me put inside this into the pin function so as we know that if I’m writing here stack. pop so the last element which was inserted will remove first so Z will be removed here so you can see that it’s Zed has been removed now if I’m printing my stack so I’m getting here only X and Y so you can see that list and DQ are the same the only difference is that DQ is faster because the append and PFF operations are faster in DQ so this was the basic idea about the stack implementation using DQ now let’s see the stack implementation using Q so here in implementation using q q module contains the Leo q that means last in first out so here basically what happens here it works same as the stack but it is having some additional functions so it is having some additional functions and work same as a stack right now we have seen that in list as well as in DQ we were using pop as well as append operation right but here to insert the element we will be using put operation so if I’m writing here put of three then that means it will insert three in my stack so similarly if I’m writing here get function so it will remove the element and as I told you that it works same as the stack so the last element will be removed first here now we are having some functions available in the Q module so the first function that is get so as I already told you in get function it is used to remove the element now coming to the max size so here Max size means the number of Maximum elements that are present in the Q coming to the next function we are having empty function so if a q is empty then it will return true or else in other case it will return false next full so whenever the Q is full it will give us true similarly put I have already discussed about the put that if you are inserting any element so you can write the put and suppose if I am inserting here two so it will insert two in a q now now Q size so Q size will give me the size of a q so let’s suppose that if you are having a three elements that are inserted in Q 3 2 4 so what will the size of the Q Q size will be three now coming to the logic so how can I import Leo Q through the Q module so I will write here from q and then I will write here import and I will write here leao and then I will write here Q after that as I told you that stack can be implemented through the Q module so I will create a stack variable here and I will assign here Leo Q so I write here Leo q and now if I’m writing here stack dot put and if I’m writing two so this means I’m inserting the value two in a stack similarly if I’m writing here stack dot get so that means I’m removing the value from the TX so this is the basic idea now we will see all these functions in the Practical coding example so let’s start with the coding part I will write here comment and inside this comment I will write here implementation using Q now after this what I have to do I have to import Leo Q from the Q module so what I will write here I will write from Q import Leo q and I will create a variable stack and I will write now Leo Q so after creating stack variable as I told you that if I want to insert the element in a queue then I have to use the put function right so I will write here stack dot put and I will insert here let’s suppose two so you have seen that I’ve already inserted a two element now let me insert some more elements so I will write stack. putut and I will insert three here and after this I will write stack. putut 4 so this is all about the put function right so we have seen several functions in Q so let me write here function so here I will write print and if I’m writing here stack do Q size so as I told you that Q size will give you the number of elements that are present present in the Q and I have inserted three elements so the Q size must come as three so on execution you can see that I am getting the Q size is three right now I’ve also told you about the max size function right so inside this if I’m writing here Max size Max size is equal to three and if I’m writing here once again print and if I’m writing stack Dot full so as I told you that full function will return true if my stack is full so here I have allocated the max size as three and I’ve inserted three elements that means my stack is full so on execution you can see that I’m getting true right because my stack is full now if I want to remove the element from the stack then which function I can use I can use here stack dot get and now if I’m once again writing print stack dot full will I get True Value no because I have removed one element so if I’m running it so on execution you can see that I’m getting a false value so here you can see that we have used the put function get function full function Q size function Max size so this is the basic idea about the stack implementation using Q now let’s try to understand Q linear data structure what is q q is a linear data structure that means all the elements in the queue are stored in linear fashion now it follows a principle of V4 that means there’s a restriction that whatever is the first item in is the first item that is to be out okay so now let’s try to make a cube let’s suppose you are in a cube and you’re waiting for a movie you’re waiting for movie ticket to buy okay so there is one person then there is another person right these are few persons here right and you’re waiting in a queue so now the first person who is in the queue will be the first person who will get his ticket right makes sense right so he will be the guy who will get his movie ticket first and he will be out of the queue then the next person who is in the queue is the next person who will get his tickets right and let’s suppose a new person comes in he’s not going to go ahead from this person rather is going to go behind this person then the next person comes he will go after this person and in the same same way so this is nothing but a P4 principle okay the first person in is the first person out okay now insertion will always take place from the rear end okay and if you talk about deletion it will always take place from the front end okay so this is our front end and this is our RAR cool so for examples buying a tickets from the counter or it can be a movie ticket or can be a bus station you are in front of a bus station trying to get tickets for your uh bus right these are some examples now there are four major operations when you talk about Q what are those major operations Let Me Clear My screen so NQ so you are going to insert an element in the cube this is what you mean by NQ theq you’re are going to delete an element okay from the cube then Peak first that you’re going to Peak the first element that is in the in the cube and Peak last means that you’re going to Peak the last element that is in the cube so you will have two pointers one is front and another is where and with the help of these pointers you’re going to NQ DQ Peak first Peak last you’re going to perform these operations now one major advantage of these operations these four operations is that all of these operations are performed in a constant amount of time that means time complexity of Performing these operations is before of one so that is why when you talk about competative programming Q is most commonly used data structure because of these things right because of its time complexity right you are able to perform your uh operations in a constant amount of time now let’s talk about applications of Q so it is used in scheduling algorithms of the operating system like first in first out scheduling algorithm is there round robin is there and we have multi-level q that is there in all these algorithms Q is used okay for storing the data or the processes it’s also used in maintaining playlists like when you have a playlist let’s suppose you have 10 songs in a queue right and after one song the next song which is in the que will be played and it goes on for like this right so for Main a playlist again a que is used it’s also used in interrupt handling uh let me take an example here you know the process State diagram of operating system so it is also used at that time so uh when you have an interrupt and therein if your process is is being executed at that time that Pro process is printed out and it is stored in a queue now the next time when this priority or this interrupt is handled once it is done then it starts picking up the process C which was in the queue and starts executing that in the meanwhile if there are some other processes that those processes will also be in the que so a queue is maintained and once the interrupt is handled they will start taking out that process that is that was being executed earlier and executes it and completes its execution and terminates the process so it is also used in interrupt handling after learning what is Q in Python theoretically let’s know how to implement lement that into practicality so Q will be having two different basic operations that is NQ and DQ so these things will be shown in with a simple example in Python so let’s quickly hop on to python ID that is Google collab for the reason I’m using it is visible for everybody to access because it’s online availability and it is open source so let’s quickly start the simple program for Q displaying two different functions that is NQ and DQ so here is the Google collab environment where you’ll be working so what we are doing in this particular code is we are creating a class called Q right we are also giving different functions for NQ and DQ NQ is nothing but entering or inserting values to the Q and DQ is deleting values from the Q right as you all know Q will follow F4 that is first in first out so wherever you want to buy a ticket for example in your Railway stations or anywhere you will stand in a queue right so whoever in the first will get the ticket first and he or she will move out of the queue it’s same in here as well but the elements are not humans it’s all integer numbers so whatever the number you put in first is the first number to get out right so let’s quickly see here we have two different fractions as I mentioned that is NQ and DQ and later you will display we are seeing three different functions displaying NQ and DQ so what happens here is we are using self. q. appen so here whatever the item whatever the uh number you give right it will be inserted to the back of the Q right it is maintaining the sequential process of inserting the numbers or the integers or the values you give in order to insert into the queue and while deleting you can use pop right is it upend for insert and PO for deleting and display is nothing but it’s normal print statement you will display whatever the Quee it is accordingly so let’s quickly run this program here I’ve just used certain numbers 1 2 3 4 five five numbers and the after deqing right what it should display it should remove one first and 2 3 4 5 should be displayed so let’s quickly see how it is right okay so as you can see whatever the uh Q is given is printed at the first place that is 1 2 3 4 5 and then after removing the first element right so the first person will be removed because it is ff4 so 2 3 4 5 is there so this is how a simple basic Q will work in Python so after knowing a basic Q implementation right let’s see one of the type of q that is circular Q implementation there are many types of cues but still I’m taking circular Q as an example and showing you the same operations of inserting and deleting elements from the queue so let’s quickly hop into the Google collab ID and check out the program how can we build a circular Q in Python here is the program for circular q and what are the different elements we have inside this program let me tell you the first part is class declaration so here my circular Q is the class right so class can be named accordingly or whatever you feel right so keep it very program oriented rather than keeping which is off topic so here it is my circular q and then again we have two different initialization that is for NQ as well as DQ so whatever the elements we use here right whatever the items we try to insert in the que we have to ensure whether the Q is full or the Q is empty and there is still space or not so all the conditions should be checked so let’s hop into NQ and check out what are the different conditions you have to check so the first thing is the Q is full or not so before inserting something say for example the Q size is five and the element six has been inserted then it has to show an error message that is there are only five spaces they are inserting Sixth Element it is not allowed hence the cube is filled so in order to print that we use this the circular Q’s Bui statement so the next part is you have to know how when it is empty right in order to have the DQ the main condition is whenever the uh elements are out of the Q then it has to be declared as the Q is empty so nothing to delete from the que it’s every all the elements or items are deleted already so the error message or the statement the user will be the circular Q is empty now there is nothing to pop out or delete or DQ so apart from that also you can also uh find if you are trying to print something right if it is mtq it does not have anything then you have to show up the no element in the circular Q found statement why because if there is no elements there is nothing to show our display the display function does not work the print does not happen so this is a basic idea of this particular code and accordingly we have used the iterations and the Declarations so next you have to look at the inputs what we are giving I’m trying to give 12 22 31 44 and 57 right so the five elements for the Q is being given and what you have to do is you have to check the initial values first you have to display the initial values what is the exact Q which you have given with the elements to the user and then which is deleted so the first element is deleted obviously but yes how the circular Q is different from the basic Q right so let’s quickly run the program in order to see the output okay if you could see the output here right so initial Q values so is whatever we have given here that is 12 22 31 44 and 57 so after removing an element so obviously the first in first out process the first element will be removed so it is 22 31 44 and 57 what is difference between a normal Q and A circular Q if you could see here right in the last space after 57 you have a space allocated so in normal Q it is not connected here the front and rear is being connected forming a circle right if one the first element for example 12 goes out the 22 will take the first place and 31 followed by 44 followed by 57 the last place will be empty right so it is in circular motion so whatever you want to insert again right so that will for example if you want to insert six right six will sit in the fifth position that is after 57 right this this will be connected circular motion that is front will be connected to the rear part so this is the difference between the normal basic q and the circular Q now let’s talk about advantages and disadvantage ages of Q first we are talking about advantages so it follows a principle of fif or the elements are stored in fif manner that means let’s suppose this is a Q and in this Q you have elements so the deletion will take place from the front right and the insertion will take place from the rear side so this is known as DQ the deletion and insertion is known as and Q operation and both these operation are performed in a constant amount of time so that is one of the advantages right and the insertion from beginning and delation from end takes a constant amount of time plus if we want to do Peak first Peak last all these operations are performed in a constant amount of time and this is most widely used data structure when we talk about CP that is competive programming when we talk about competive programming this data structure is most commonly used because of these features that all the operations that are performed like insertion deletion Peak first Peak class NQ DQ all these operations are performed in a constant amount of time now let’s talk about disadvantages since we are only able to delete or insert from the front and the rear that means deletion from front and insertion from the rear so the Restriction of insertion or any manipulation right we have a rest restriction over these right what these operations insertion and deletion so this restriction is always there and so this sta structure that is the cube is not is not much flexible right we are fixed we can delete and insert element in a fixed pattern or in the fif manner because it’s not much flexible so now let’s start with the Ling list so Ling list is a collection of group of nodes now what is node here so here you can see that this is a node so a node will contain a data as well as reference so each node contains data and reference which contains the address of the next node so this is a node and as I told you that node will contain a data as well as reference so let’s suppose I’m inserting the data here 20 and this is nothing but a reference or you can say that pointer so this pointer will contain the address of the next node right so as I told you that link list is a collection of nodes so this is nothing but a single node so let’s suppose if I’m having more than one node and if I’m connecting them then it will form a link list so we will see the linked list representation in the next slide now so link list is a linear data structure now coming to the last point we know that in Array as well as in list elements are stored at the continuous memory whereas in link list elements are stored randomly now let’s see the representation of Link list so as I told you that link list is a collection of nodes so let’s suppose that this is my N1 node this is my N2 node and this is my N3 node so each node will contain data as well as reference or you can say pointer so this is data and this is reference so now I will give the address of this N1 node so let me write the address of this N1 nodes at 20110 I will give the address of this as 2020 and I will give the address of N3 node as 2030 so these are the addresses so as I told you that each node will contain a data so let me assign here data let’s suppose 10 is here and a reference or you can say a pointer so I told you about Pointer that pointer will contain the address of the next node so what’s the address of next node the address of next node Is 2020 so I will write here 2020 so this pointer or this reference or you can say this link will contain the address of my next node and what’s the address of my next node Is 2020 now again this will be a data and this will be a reference of my N2 node so let me assign here data as 20 and what will be the reference the reference will contain the address of the next node so here it will be 2030 now again this N3 will also contain data so I will assign here 30 so now you might have a question that what should be reference here so now are you seeing any node after this N3 node do we have node N4 or N5 not right so this reference will be assigned to null so I can write here five because there is no next node is present there right now coming to head what is head so head will contain the address of my n node that means 20110 right so this is my linked list representation now the question arises that why Ling list so now why do we need Ling list because Ling list is having more efficiency for performing the operations as compared to list so what are the operations that we are performing in Ling list we can perform the operations like insertion deletion as well as traversal so it is having more efficiency in performing the operation so moving to the next Point as I already told you that in link list elements are stored randomly whereas in list or you can say in Array elements are stored at continuous memory now moving next accessing the elements in linked list will be slower as compared to list so if you want to access the element in link list it will be slower as compared to list why I will tell you the reason now let’s see this slide link list representation so here this is my N3 node right and if I want to access the data elements of this N3 node then I have to go from N1 N2 and N3 then only I can access the elements whereas in case of list we can access the element through indexing but in linked list it’s not possible so you have to go traversy right here traversal means that you have to go through each node so if you want to access the elements of N3 then you have to start with N1 then you will go to N2 then you can go to N3 so that’s why accessing the elements in linked list will be slower as compared to list now coming to the last Point here in link list utilization of memory will be more as compared to list so let’s start with the singly Ling list so Ive already showed you the representation of Ling list which is same as the singly Ling list so in singl Ling list I’m having here a data and reference in a node so let’s suppose that this is my N1 node this is my N2 node and this is my N3 node so as I told you that each node will contain data as well as reference so I will give here data let’s suppose 10 in node two I will give as 20 and here I will give as 30 and each node is having an address so let’s suppose the address of this N1 node is 1,000 it’s having 1100 and it’s having 1200 so this reference or you can say that link or pointer this will contain the address of the next node so this will contain 1100 similarly my this reference or this link will contain the address of N3 node so I’ll write here 1200 and here after N3 node do you see any node we are not having any node so here this link or this reference will null now coming to here what is head here so head will contain the address of my first node that is 1,000 so in singly Ling list the traversal is done only in One Direction so what do you mean by traversal traversal means that you are going through each node so let’s suppose that if you want to go to the N3 node first go to N1 then N2 then only you come to N3 you can’t directly jump to N3 you have to go through N1 and N2 then only you come to N3 now let’s see some operations in singly Ling list so we are having several operations in Ling list we are having insertion deletion traversal so insertion as well as deletion can be done at beginning at any specified node as well as end now coming to the Traverse I have already told you that traversal means you have to go through each node so going through each node of the link list is a traversal now let’s see the pseudo code of single link list so if you want to create a node in a single link list then what should be the code here so I will write first here class node so here I have created a class whose name is node so this class node will also be having a object right I will create object later on but let’s see let’s suppose this is my N1 node as I told you that a node will contain data as well as reference right so instead of reference I’m writing here next I’m taking a small word here so that it will be easy for coding now so this is my node creation Now what I will do here so in this class node you have seen that I am creating a init method or you can say a Constructor so to create it for first I will write a reserved word that is DF and then I will write in it method so I will write first DF and then underscore underscore init and then I will write underscore underscore then I will write self and then comma comma data so why I written here self I will tell you later on and I’ve also passed data as a parameter here so inside this I have written self. data is equal to data and self do reference is equal to none so why I have written this because my node will contain data as well as reference so I will write here in this method self do data is equal to data and self do reference I have written here next so I will take here next is equal to none so when you are creating a node let’s say this is a node N1 so initially it will be having a data and because I’m just creating a node as of now no I’m not linking this node so the link or you can say the reference will be none right so this is my initial node I have written here self. data is equal to data and self do next is equal to none right now this is a class whose name is node I can create the object so how to create a object I will write here N1 and then I will write here class name node and inside this class I will pass the parameter 7 so here now what will happen instead of self my object will pass here so my N1 will pass here instead of self so now it will be N1 do data is equal to and what’s my data data is seven now the next step we are having the self do reference is equal to none right let’s see here self do next is equal to none so instead of self my N1 is there so N1 will be pass here and N1 do next I will be having a none so this is nothing but a creation of my node now if you want to check then we can write print function and when you will write here node one data inside a print function you will see that you are getting the value as 7 similarly if you’re writing node one. reference inside a print method then you will be getting none so now this is the idea about how to create a node now let’s see this into a coding so I will be using here Jupiter notebook so I will go on here new and then I will click on Python 3 and here you can see that I’m getting a name Untitled 21 let me change it I will write here link list link list and I will write here python now let’s create a node so I will comment it down creating a node so first I will create a class and I will give the name as node and inside this class node I’ll create my edit method so I will write here DF which is a reserved word and then I will write here in it but before that I will write underscore underscore then again I will write underscore underscore and then I will write here self comma data so so why I have written here self so when I’m creating a class object that is N1 I’ve already showed you in the example so instead of self N1 is passed so as we know that we can create a multiple object of a class so if I’m writing here N2 or N3 then instead of self I can pass N2 and N3 also so now let’s create a node so I will write here self dot data is equal to data and I will write here self dot next I will write here none so this is my node creation so whenever I’m having a node it will contain a data and it will be having a reference so initially it is not linked so the reference is none so this is my class now I will create a object of node so I’ll write here N1 and I will write class name and I will pass data as let’s suppose 8 value here so if I’m executing it so on executing this N1 will go to self and this 8 will go into the data so my N1 do data is equal to 8 and my N1 do next is equal to none let me print it so if I’m writing here print and inside that if I’m writing my N1 do data once again if I’m writing print function and inside that if I’m writing N1 do next then you can see that I’m getting the data as eight and the next that is a reference I’m getting as none because I did didn’t link this node to any other node so this is the basic idea how to create a node now let’s see how to create a class of singly Link list so when will my singly link list will be empty so as I told you that if this is a node let’s suppose N1 this is another node N2 so N1 and N2 are connected with each other so we are having a head pointer which always points to the first node right so if there is no no head if head is none then my link list will be empty so now what I will do here so I will create a class and I will give the class name as let’s say singly ling list and inside this class once again I will write init method so I’ll write here def underscore underscore in it underscore and I will write here self now here I will write self dot head is equal to none so this is my condition to create a class so if the head is pointing to none that means it is not pointing to any node and it shows that link list is empy so now let’s see the creation of singly Ling list yeah so let me remove this now I will create a class so creating a ling list so if I want to create a link list I will create a class of Link list so I will write here class class singly Ling list so this is my class and inside this class I will once again write init method inside the singl Ling list I will create an init method so I’ll write def underscore uncore init underscore underscore and then I will write here self and when my link list will be empty so when self dot head is equal to none so this is the simple way to create a single Ling list class now so after creating a class now let’s create a object of this link list so I’ll write here SL single Ling list this object name and now I will write the class name so class name is singly and then Capital LL is there right so on execution always remember whenever you are creating an object and if you are executing it so inside this class in it method will always run I will show you the example if inside this init method let’s suppose if I’m writing here print gorov so I created the object here SL and right now if I’m executing then you can see that gorov is executing here right so always remember whenever I’m creating a object of class and whenever I’m executing it so whatever the statements are inside the init method it will execute so on execution what will happen here I will get here SL do head is equal to none right so SL is my object so instead of self SL will assign here so SL do head is equal to none right so this is my basic concept of creating a node and creating a ling list let’s talk about searching algorithms and the first searching algorithm that we are going to talk about is linear search algorithm so what is linear search it helps us to search an element in a linear data structure now let’s talk about one example wherein we will be searching some element inside the array so let’s suppose this is an array and the elements are 10 20 30 40 and 50 now if we trying to search an element that is 50 inside this array how linear search works is that it checks each and every element that is to be search right that is there in the element array right let’s talk about this example here 50 now 50 will be compared right we’ll check is this 10 equal to 50 no is this 20 equal to 50 know is this 50 equal to 30 is this equal to 40 is this equal to 50 yes so here we were able to do a linear search right we were searching for this element inside this array one by one we compareed first with 10 then 20 then 30 and then 40 and finally then with 50 at the end we were able to find this element in the array in a linear fashion now this is what is termed as linear search now let’s talk about linear search algorithm since it is a very straightforward or you can say a Brute Force algorithm right it’s a Brute Force algorithm of finding the element in the array so this is how it works right we have one for Loop wherein we will be what iterating through all the elements that is from 0 to n and inside that what are we doing we looking for the item that is that element that we want to search right let’s suppose This Is 50 right this 50 will be we were checking if this 50 is equal to the element that is a of I right and then if that is the case if we find out the element in the entire array we will return its Index right that is Index right that I we will we will return this I now there might be the case as well if we are at the end of the array and we have exhausted the last element as well and we were not able to find the 50 right let’s suppose this is 10 20 30 and 40 now the 50 is not present in the entire array at that time what we are going to return is minus1 so we will say that okay we will not able to find this element whenever we are returning this minus1 in this array and this minus1 indicates that we were not able to find that element now we shall see how to implement linear search in Python so linear search will work with the help of an array here so what we are doing is we are searching one single element in throughout an array in sequential manner so this is how linear search will work so here if you could see we have array we have number which one you have to search for and you have the starting position variable so in iterations Array will Move On and On by searching from one place to another place the first place to second second to Third and so on in total we have five different elements in an array that means four different places because array starts from zero 0 1 2 3 4 so index is of four and the elements are of five so we have to first take the key search element and we have to compare that particular element to all the elements inside the array right so if it is not matching the array is not matching with the number you are searching it will throw up an error called element not found if it is found it will show you index value where it is which place of an array it is there so let me quickly run the program for you so I’m trying to search the element one right so the element one is in index position three 0 1 2 and 3 so X is the variable which is used in order to find which number it it will just act as a key X will act as a key you can change this and check if you want to search for eight for example it is not at all there in the array so it will say element not found if you want to search two for example the answer should be zero right let’s check right so index value is zero it is sited in the first place of an array if you want to search for nine it is at the last place so it’s at four right so this is how the value which you want to search is always compared with all the elements sequentially one after the other so for example 9 is compared with two it’s not matching then it will go to the next one N9 is compared with four it is not matching and zero again compared with one not matching it will go to the N ninth place where it is situated right it will compare the elements sequentially so this is about linear search in Python now let’s talk about the time complexity of linear search now if You observe carefully let’s try to understand this best case right so now if you are looking for the element and let’s suppose these are the elements in the array now let’s suppose in best case what can happen you’re looking for 10 and 10 is the first element in the array now how many iteration did you require did it require to find you the 10 none right the constant time right only one single unit operation was done and you were able to find this 10 so this is the best case time complexity where the element that you’re trying to find is the first element that you search right in this case you you looking for 10 and 10 is the first element so this is your best case now what about the average case and the worst case now let’s suppose average case is that you were looking for an element which is at the middle point right let me just 0 1 2 3 4 now or we can put another another and looking for 60 now in this case or you can just skip it okay no need to add one more okay so now you’re looking for an element which is somewhere around in the middle okay in this case you’re looking for 30 okay so now if You observe you are only iterating half of the elements that is 5×2 which is nothing by n by2 since constant doesn’t play do not play any role when you’re talking about time complexity that is why average case still boils down to bigo of n now what what happens in worst case you’re looking for an element that is 50 and which is present at the end of the array or in the worst case you’re looking for something that is not present in the array that is 60 let’s suppose and in that case you will still iterate through the entire area and that is why the worst case time complexity in that case will be biger of n because you are iterating through the entire array and that element was not found you’re looking for 60 and that is not present there so you’re iterating through the entire area that is n operations are done so that is why it boils down to Big of n now let’s talk about the space complexity of linear search when we are trying to find the element in the array that is 10 20 30 and 40 and 50 we were not using any extra memory right we were not using any auxiliary memory that is auxilary memory or extra memory in order to find that element we were just looping around these elements one by one and we were doing it on this particular on the same array that we were given right since we are not using any auxiliary memory that can be in the form of what a stack a link list or an array or a string or a q we are not using these auxiliary memories because they don’t they are not required right we are searching for an element in this particular array that we given to us that was given to us right so the space complexity of linear search is constant right with we were find we were able to find it in a constant amount of space okay we are not using any extra space now let’s try to understand binary search algorithm what is binary search so binary search is one of the searching techniques right like we saw in linear search where in the time complexity of linear search was big of n right we were iterating through all the elements and and now this is a much more efficient algorithm as compared to linear search now again why do we need searching is the thing that let’s suppose if you have a given set of elements and you want to search if that element is present in your array or not that time right we can use either linear search or binary search now binary search is much more efficient and it is used on a sorted array or it can be used on an array wherein some order is maintained because based on that order we will divide our array right it is a searching algorithm which is or which follows the divide and conquer strategy right let’s suppose this is our array and now since it will be divided in such a way that we can neglect one part of it it right we will be dividing and then conquering that means we will be then searching for our element now let’s suppose we are looking for something that is now let’s take an example where in this array is written or the elements contained in this array are in such a way that we if we skip this part or the uh leftand side will be skipped or the right hand sides can be skipped in such a way that they don’t affect our output so every time in linear search our search space is reduced unless and until we find that element or the array is exhausted okay so our search space is redu to half in every iteration so this is what a binary search is we’ll look for an element in such a way that every time we are neglecting half portion of the array and let’s take an example when we have this entire array so first half that means if four elements if there are eight elements four on this side four on this side these four will be neglected then we have two on this side two on this side these two will be neglected then one on this side one on this side then this one will be neglected until unless and until we find that element or the entire array is exhausted right so this is how your binary search works now let’s try to understand B search algorithm so first we are going to understand the iterative approach and then we are going to understand the recursive approach so iterative as the name suggests we are going to use for Loops right we will start with a for Loop and it will iterate and we will iterate unless and until the beginning is less than the end right so because we will be updating our both beginning in some cases and in some cases we’ll update our end now what happens now since we know that in this iterative approach or in this binary search it doesn’t depend whether we are using iterative approach or recursive approach the logic will remain same right so we will be having this array and it will be in some order so that we can neglect some part of it it doesn’t have to be sorted always we can still apply binary search even if the array is not sorted but still some order is there so that we can neglect some part of it because again keeping this thing in mind that it follows the Paradigm of divide and conquer so now we have this beginning and end at place and we uh we will always iterate when beginning is less than end right so now what happens after that now we have this array and now what we will be able what we will do let me take new pointers so this is your big beginning and this is your end so this is your beginning and this is your end now you will be taking a new middle Index right M let’s call it m and now let’s name these things 0 1 2 3 4 so you will do what beginning plus n / by two so that some part of it can be neglected right so it will be two so your mid is at this position now you will see okay the element that I’m looking for is uh let’s suppose is 50 and the element that I am currently at is 30 so obviously it will be never from this side there is no chance that we will be able to find 50 from this side that is the left hand side right first we will check okay is this 30 equal to 50 no so this will never be executed right then we will check is my item that is there is this 30 less than or greater than 50 if it is greater than 50 right if it is if the element that is if item that is 50 is greater than 30 right which is in this case our 50 that is the element that we are looking for the item item is this point is greater than 30 so there is no point that it will be on this side so we will skip or we will neglect this half portion of the array so that is why our new beginning is updated it will be new it will be middle index + one that is middle index was 2 + 1 that is this will be our new beginning so we have smartly skipped the half portion of the array so now let’s rub all of these things and now let’s see what happens in the next iteration now we’ll keep this thing in mind that we are not looping or we are not exceeding this limit that is beginning should be always less than it should be always less than or equal to okay so this this condition should be maintained and similarly we’ll again divide our array and then look for the same things right first we’ll look for the element then we’ll skip some part of it so this is the iterative approach for binary search right now let’s look at the recursive approach or recursive algorithm for the same so again beginning the ground rule will remain same we will always iterate or we will always cursively call binary search unless and until this beginning is less than end done now what happens we’ll again find middle index that is beginning plus end divided by two then we will look for the element these three steps will remain same even if you’re using recursive approaches now what happens in recursive recursion right we again call the function again and again that is what is recursion so in this uh in this entire tutorial we will be covering ing recursion as well but in the later part part of the course here you can get a good intuition or let me give you a brief intuition about how recursion works so let’s suppose this is your activation record every time when a recursion uh is there an activation record is called so let’s suppose you have these three statements let’s suppose in your algorithm you have statement P1 P2 and P3 right and at P2 you are calling the function again right you’re calling this function again so now what happens an activation record is called he will check okay is this statement executed yes so one will be executed is second executed yes so second is executed but at second you calling this function again so at that time again a new activation record is created now this third step is left behind right now this will be covered when we come back or return from this function call that we called here so let’s suppose this function was here now in here you are returning right this function called let’s suppose this is not less than beginning uh beginning is not less than end so this will be some somewhat this case is relatable right this is similar to what we are looking for right let’s Suppose there is some s similar situation where in beginning is not less than and at that time you will be returning from this right now once you have returned you will be then calling this function again but this time around for this and let’s suppose this time around you will you are calling this one is executed Step One is executed now again this activation is record as called this activation report is one and then again this is called right this is executed again this two is called again a new activation record will be created and these three three steps the step third will be still left for execution so now here you return right then it will go back to this step right and then once you are done with this now there are two positions or two possible scenarios where you can return either you are returning from this function just like we have executed this condition and we return right another is that once you are done with this entire activation record at that time you will also return okay so these are two scenarios now you have executed this there is no step to be executed it will return now this left this was left behind this will be executed now nothing is to be executed it will go to the caller which was this and finally it will go to the main method wherein we call this at the first place this function okay so this is how an activation record is created a stack is maintained okay even if uh you might be thinking we are not using any extra space but whenever recursion is there an extra space that is in the form of Stack that stack is maintained so you need to keep this thing in mind while you are playing around with space complexity at the time when you’re using recursion okay so now with that being said let’s clear our screen and let’s see how recursion is called here so again now recursively what we will doing if now we have this mid right and let’s take an example of an array 0 1 2 3 and 4 10 20 30 40 and 50 so middle index will be 0 + 4/ 2 that is 2 so this is our middle Index right so this is zero uh this is our beginning and this is our end right so now we are hit hit right so we again check the 50 that we are looking this is our item that we are looking for okay so is 50 and this is our middle index is 30 greater than 50 no it is not in this case so this will never be executed this is not executed as well right now what about this condition the else part now what we will be doing we’ll be skipping since this 30 is less than we’ll be skipping this part and we will focus on middle index + one which is nothing but this so this will be our new beginning and our process will start moving right so now again then the same thing will happen unless and until this condition is false okay so this is how your binary search works when you’re using recursion so now let’s try to understand binary search and let’s see its demonstration okay so we are looking for 20 and this is our array right 10 11 16 20 and 2 now this array is sorted right so we can apply binary search Okay since we can neglect some part of the array based on some conditions okay so now our beginning in the first iteration what is happening our beginning is zero our end is 4 and our middle is this element now what we be looking for is 16 equal to 20 no it is not but 16 is less than 20 so we will skip this part in the next iteration what happens we’ll be focusing on these three elements right that is 20 uh from we will be focusing on this part rather if we say we’ll focus on this part right focus on this part okay so now in the second iteration what will be happening our beginning is updated now our new beginning is this point our end will remain at its own position now we’ll find the middle index so it will be 4 + 3 that is 3 that is seven right and divided by two it is 3.5 right so since this will be truncated right the truncation will happen and the integer that is there the middle index will be three so this is our middle Index right so you can see middle index is three now is this element that we’re looking for yes so we’ll return the index so we found our element at index 3 and hence we return three because if You observe carefully it is returning if the element is found it is returning the index so this will be returned okay so this is how binary search works after knowing what is binary search we’ll implement the same in Python quickly switching up to the ID so the binary search has four different elements are important the first one is array the second one is which is the element to search for which is stored in X and L low and high why because every array in order to have the binary search will be divided into two parts right it will go accordingly if the key that means whatever the element you are searching is matching the middle element it will exit the binary search immediately if not it will try to proceed with the search of that particular element in halves of the array like it will divide the array into sub arrays the right and left part it it will try to see and search for that element accordingly as per the key element is right so mid is equal to low + High minus Low by 2 so this is the basic formula which will be using in order to split the binary array in order to have the search right so if array of middle that means middle element is equal to equal to that means it is equal to the key element which you’re searching then it will immediately give you the middle element as the searched element so if else what happens if the middle element is lesser than x what it will do it will go to the right side of an array if it is greater than x it will go to the left side of an array right so it will try to search in halves like sub arrays here if you could see the array that is 3 4 5 6 7 and 8 and N9 you have all these elements inside the array what you have to search is four so four is the second element immediately you can see but accordingly you have to search as per the binary search rules what it will do it will first cut this particular array into two halves by using this formula and then it will compare the key element which you are trying to search with the Elements which is already present in an array in order to find so let me quickly run this okay it is telling the element which you are searching is present in index number 1 that means it is having the count of array index not on the element so 0 1 2 3 and so on so four is present in index value one so this is how binary search will work work in Python now let’s talk about the time complexity of binary search now in the best case now what is the best case now let’s take an array and in that array 1 2 3 4 and five these are the elements now the best case is that not that if the element like we saw in linear search this element when we are looking to search for this same element at that time that was the uh best case scenario for linear search right but in this binary search the the best case scenario is when your middle index is at the at this location and you’re looking for you’re searching three in the entire array so at that time this will take a constant amount of time and this is the best case time complexity in that case okay now in average case what happens right if you talk about this algorithm let me just clear out my screen so it follows a paradigm of divide and conquer so let’s suppose you have eight elements first in the array it will be divided into four because these four either it can be on the left side or on the right side will be neglected and then we deal about these then we focus on these things okay these four elements again it will be divided into two and two then we will DCT two elements then one and one then again there will be one of the element can be neglected so there are one and one so we focus on this element so the entire operation will be done or entire searching will be done in three steps right now if you I take an example and if I do a log 8 to the base 2 what should be the value of this obviously when I do this this can be written as 2^ 3 right and this can be written as 3 into log 2 to the base 2 now this is 1 and now you get the answer as three so this three and this three are equal that means if I talk about the worst case time complexity of binary search it will be somewhere around log n as it Al as we saw in three steps we were able to find the element and the log n that means log 8 is the answer of that is also three so you get the point right so the worst case type complexity of binary search is log n and same goes for the average case wherein it will be somewhere around log n / by 2 neglecting log nide by 2 neglecting the constant terms it will be again or it boils down to bigo of login okay now let’s talk about space complexity of binary search now when you talk about space complexity right we only think of auxiliary memories or you can say that or you can say that what any extra memory that you guys have used since we did not use any extra memory that can be in the form of array or it can be in the form of stack or it can be in the form of Q or link list or even strings right since we never use these extra memories in our implementation so the space complexity of binary search is bigger of one that is it takes a constant amount of space what is insertion sort so the question is that what is sorting you might be thinking why do we need these sorting algorithms so if I told you that you have a bunch of students right you have bunch of students and they each have their role number they are not present in what in a numerical order or you can say they are not present in some order I want that order to be maintained let’s suppose you have 1 to 10 students in those bunch of students and each are having role numbers from this range from 1 to 10 now some of them are absent and some of them are some of the role numbers have left the school but the role numbers are not changed yet now what I told you I told you please sort them or arrange them in such a manner so that I can easily understand which role number is after which either in ascending or in descending order suppose one is there two is there then six is there then eight is there then 10 is there so rest of the RO numbers I can easily depict okay these are the ones which either are not there or are absent so in order to do so we have these sorting algorithms in picture and one of those sorting algorithm is insertion sort now it is the simplest easiest and a Brute Force sorting algorithm now what do what you mean by glute Force glute Force means straightforward right in a naive way it means straightforward that means you’re not keeping into uh you’re not considering any efficiency or you don’t cons you don’t care about time complexity or space complexity you just straight away sort it with the most simpler and naive approach okay in this root Force algorithm what happens that let’s suppose let me give you an example right obviously we can sort with the help of this insertion sort algorithm you can obviously sort either in ascending or in descending model right uh let’s take one example we all know about the card game right wherein you have a bunch of Cards Right suppose you have a single card that is in your hand right and you have bunch of cards available on the table now you start picking those cards one by one obviously the one that is in your head is sorted because if I told you to sort a number one obviously there is only one element in the array or anything right in the link list I told you to sort it but if you’re having only one element that is itself sorted right you don’t need to sort that similarly what happens now this card is in your hand right it’s just like playing cars right now you have this one card in your hand and it is obviously sorted now what you will do in the next turn you start picking up one by one from these set of cards that are available on the table now let’s suppose this is zero okay I’m considering these numerical values so that because so that you can understand and you can just connect the dots right so what happens you have the zero and now you start comparing it now we are considering the scenario where you are trying to sort in ascending order okay so now let’s try to erase these things so that it’s easier for you to understand things okay so now you have these two elements right and now we are considering the case wherein you are trying to sort in asset name so you check okay if 0 is less than one yes it is now you swap them okay now you have zero and one now these are the two cards that are present and both of these are sorted so now insertion sort Works in such a manner that you will always have two parts right one is the sorted part obviously which is in your hand and one is the unsorted part which is on the on this deck right so similarly you can you will start picking uh elements or you can start picking these cards one by one and keep sorting them okay now this is one simple scenario wherein you can apply what insertion sort right this is the most simpler way one can explain or one can understand you this insertion sort algorithm now it is simple right now you start picking these elements and you keep sorting them and the at the end when all of these elements are exhausted you will get your sorted areay now let’s try to understand insertion sort algorithm so in this algorithm what happens obviously now we know that we will have two parts right one is the sorted part and another is the unsorted part right so obviously the one element that is present in your hand or the element or the card that is in your hand and there’s only one element there right the one element in your hand obviously that is sorted right so we will not consider that first element and we will start our iteration from the second element right now we understand why we are doing this that we are starting from 2 to n minus one or 2 to n depending upon the array that we are starting from either we can start from zero index or we can start from one Index right so we always start from element number two right and then what we will do we’ll just store this value inside temporary variable and then we will check if that element is less than the element that we have in this sorted part if that is the case then we will shift their positions right and we will get both now we will have two elements in the picture that is 0o and one and both of these will be sorted in ascending order and then what we will do we’ll consider the rest of the cases that is starting from three to so on to n okay now you might be thinking okay how does this thing happen let me take an example and let me show you how let’s consider this array that we have over here that is index zero these are all the indexes that we have and this is our array that is 23 10 16 11 and 20 so in the first step we are making now we are making partitions now this is our sorted part that is the first element and this is our unsorted part now what we will do in the first iteration this is our iteration number one because this is the case wherein we will start moving from second index that is first index if we consider from zero right so we consider from second element and so on to end right so now in the first iteration what we will do we’ll compare these two values okay let me just erase everything so that it’s easier for you guys so now we will compare these two now obviously 10 is less than 23 what we will do we’ll shift their positions now this is your sorted part and this is your unsorted part again we will do the same thing right so in second iteration what we will do here comes 16 now what we will do we’ll compare it first with 23 okay we know now okay 16 is less than 23 so now what we will do we’ll swap their positions so this is 16 and this is 23 now what will happen now 16 will be compared with 10 obviously it is not less than 10 so it will remain as its at its own position that is its new position at index one right so this is the second iteration and after second iteration this will be your sorted part as you can see that I have bolded this text right bolded the borders of these two these two elements and bolded the same for these three elements because this is the sorted part that we have over here and this is the unsorted part now what will happen in the third iteration that it will check for this number that was there it is 11 so for 11 what we will do we’ll compare it with what read this thing now we’ll take 11 into consideration and now we’ll check it we’ll swap them then 11 is here 23 is here we’ll check them we’ll swap them 16 is here 11 is here we check them so since 10 is less than 11 so nothing will happen so in the third iteration what will happen we will have 10 11 16 and 23 these are all sorted and we are only left with one element which is unsorted right now in the final iteration what will happen that 23 now this 20 will be at its original position that is there and rest of the elements will be sorted now since we have exhausted all the elements all the elements have been exhausted and we add the final step that is in iteration four we will have this array that is sorted after learning what is insertion sort let’s quickly implement the same in Python language so I’m using Google collab whether it is easy for everybody to access Google collab so need not install anything it’s right available in the online so let’s quickly switch to that Google collab ID for python so here you can find insertion sort the name for the file in Python extension so with that we already have this particular program which is easy for me to explain to you so here so we are considering a function called insertion sort right so the function is called whenever the data is being passed in order to sort the elements inside the data in ascending order right so in order to do that we have to write a proper function accordingly as inent s will work so how does that work you have already learned about it so in order to implement you have to use a for Loop so for Loop has a range so it will be always checking for the elements in inside the array one by one for comparison with the key element right so whenever it is finding the key element it will which is greater than the key element or which is lesser than it will swap accordingly right so we are using Y Loop in order to do that same work so we are swapping from the current position where it is being found which is greater or which is smaller accordingly we’ll swap it right so then we have the data which is been given here so the data is present that is 52 178 so what happens in this particular data is when it passes through this function every element will be sorted with the help of incision sort function which we have written here so first it will compare the elements and it will try to sort in ascending order say for example if you want to do descending order then you have to change just one single element that is this key should be greater than array element that’s about it nothing else no change so after that incision sort uh is the function is having the data which is present here so all the functions will be completed then we’ll be printing the final output how do you print once the function has completed sorting immediately it will be stored in the variable data itself so that particular data is being printed after sort element will be viewed right so this is just a print statement sorted array in ascending order so if you’re doing for descending you can make it a sorted array in descending order so let’s quickly check how this output look like so here you have sorted array in ascending order so that is 1 2 5 7 8 right from smaller to the higher number so let’s quickly make a small change here so that it will give us the descending in order let’s try to work on it right if you could see here key is greater than array element then you will be getting the descending order that is 875 2 1 so you can change it likewise okay I didn’t change the printing statement so I’m just changing descending order right run the same that’s been declared so this is how insertion sort will work in Python and the code if you could see it is very small and quickly it is eliminating all the variable initializations we make anything and everything you just want to have the function pass the data get it sorted and the output is done so this is all about insertion sort in Python now let’s talk about insertions or time complexity so in the worst case when all the elements are in fard manner and we need to sort them one by one so obviously we are talking about first the outer loop which runs from one to n and then the inner loop which runs backwards and in the last first we consider in the first iteration we only consider the zero element then as we move along it will be running from n to zero element right we will be considering the whole n elements so in that case the time complexity the worst case will be order of n squares because we have two nested Loops that is one is for Loop and inside that for Loop we have that we have that y Loop right so this is the in the worst case and it happens also in the average case where some part or the sorted part is already there and it is let’s suppose we have 5 4 5 6 7 8 and then we have the unsorted part so half of the elements are sorted and half of the elements are not sorted so it will be n² by 2 so we not considering the case where we talk about constants and we are negotiating the constants and in that case the average time complexity will be n² right but the most important thing that is there in this time complexity is the best case that means when your elements that is 5 6 7 8 9 and 10 when the elements in the array are already sorted what happens in this case if You observe the war loop that runs from 1 to n will be always there n is always there the time complexity the Big O notation Big O of n will be always there but in this y Loop wherein we were checking for if J is greater than or equal to zero and if AR R of J is less than 10 right in that case this will never be executed because this AR of G will always be less than will always be greater than 10 why because we talking about this element and we’re checking if this 6 is less than five no it is not if this s is less than six no is it it is not so this condition will always be false for all the elements so in nutshell we are just checking these steps only once in every iteration so that is for the reason that the whole time complexity in the best case will be bigger of N and not Big O of n² in the best case okay now let’s talk about insertion sorts space complexity if you have observed in algorithms and in implementation we never talked about any auxiliary memory right we were not using any extra space either in the form of array link list stack Q or anything right so that is for the reason the space complexity of insertion sort is B of one that is constant amount of space now let’s talk about insertion sort analysis wherein we will be analyzing comparisons number of swaps stable or unstable in place or out place so first let’s talk about number of comparisons required in this we will talk about two scenarios wherein we will talk about worst case and average case in worst case the number of comparisons required is n² by 2 now if you talk about average each case scenario It Is n² by 4 which is twice as much as this right it is two times if you talk about number of swaps that are required in insertion sort in again we will talk about two scenarios average and worst case in average case it is n² by 8 and in worst case it is n² by four these are the number of swaps required and if you want to check those if these statements hold or not if these equations hold or not you can always take an example wherein you will be considering both the cases even as well as odd so take an example and run through it now if you talk about stability of insertion sort it is a stable algorithm what do you mean by stable so if you have an array which contains 1 3 1 d and five in this array the relative position of these two ones that is this one and this one let me change a color and let me show you the relative positions of this one and this one will remain intact what you mean by this thing that whenever you are sorting it you can sort it in two different ways right this is also sorted and this is also sorted that means you can either have one 1 D3 and 5 or you can have 1 d one and 3 and five this is obviously that this this number is repeated but this is the first number this this occurred here the first time and here it is the second occurrence now you want to keep their relative positions intact right so both of these are sorted right but if you talk about stability this is known as stable and this is unstable okay now insertion sort whenever you are trying to implement insertion sort it is stable that means the relative positions of both these ones will be intact okay so if someone asks you if insertion sort is stable or not you will say yes why because the relative positions of the number that are of the numbers that are repeated remains intact now what about this in place or outplaced since we are not using any auxiliary memory right we didn’t use any stack Q Link list or array that is the reason that whenever you are not using any extra memory it is supposed to be in place algorithm so if an algorithm is sorted within the array that was there earlier that means you’re not using any extra space that algorithm is known as in place algorithm which is evident now in insertion sort as we are not using any extra memory so insertion sort is an in place algorithm now let’s look at the example wherein we will implement insertion sort if you can see we have this example over here wherein we have 6 5 3 2 8 10 9 and 11 and we have been given this K what this K signif signifies that the maximum swaps or comparisons needed for this three either on the left side or on the right side right the number of positions that it this three needs to get to its original position is three so this is a question that is known as nearly sorted array or k sorted array we do not need to sort all the elements in the array but we are specifically looking for those Elements which are not at its original position and if we want to get them to their original position the maximum comparisons or swaps that we require is three so if you see this three the original position of this three is this five that means in the sorted array it will be here similarly if you talk about this two the number of swaps that it should do is 1 2 and then it will it will be at its original position or you can say that 1 2 and three so max it can go to three positions okay so similarly it will be the same for all the elements so at most three okay and at least it can be that it will have it doesn’t move need to move at any location that it will have its own original position just like in 11 you see 11 is at its own position in the original array as well as in the swapped array so at most you have three positions let’s try to understand what is sorting and why do we require sorting so sorting is a mechanism wherein we will be sorting or arranging our data either in ascending order or in descending order right so let’s suppose you have a student you have 10 students and all those students have role numbers allocated from 1 to 100 and you want to know which role numbers are present and which are absent and which have left the college or school right so in that scenario you can easily Implement sorting right and you can understand when you have that sorting uh arrangement in place you can easily detect which elements or which students are absent or not right so here in you can use sorting so in this tutorial we are going to understand quck sort algorithm it is one of the most widely used algorithm it follows a paradigm of divide and conquer what do you mean by divide and conquer basically we will be dividing our array in such a way that every time we will be dividing let’s suppose this is an array and now we will be dividing into two then further we will divide it into two then further we will divide it into two and so on right so we’ll see in the algorithm part how we can implement this divide and conquer Paradigm and in this tutorial we will be implementing this quick sort using recursion we’ll see how we will recursively call those functions based on some pivot element now in this recursive call we’ll choose a pivot element let’s suppose you have have this array and we were choosing this element as pivot obviously you can choose any element as pivot right so it can be first element it can be uh last element it can be any random element but once we have chosen those that pivot now what we will do in each iteration right in quick sort what happens in each iteration this pivot will have its original position that means this will be the position in the original array as well let’s suppose this is our pivot now this pivot will have its original position after one iteration after that iteration is over and all the elements that are less than this pivot are on the left hand side and all the elements that are greater than will be on the right hand side now then we will be choosing another pivot now what are those pivots we’ll see in the algorithm uh more extensively what are how we can choose that pivot now let’s suppose we choosen we chose this pivot and this pivot is here and and after the second iteration what happens this pivot this will be our next pivot and this will be our next pivot now we will be having two pivots so this is how we indued that we are implementing divide and conquer approach okay with each step our problem gets reduced to two which leads to Quick sorting quick sort right or quick sorting algorithm okay so now we’ll be dealing with this subar and we’ll be dealing with this sub AR and now we’ll be implementing the same procedure on this subarray that means this is the pivot and this is a pivot right now let’s try to understand the algorithm of Quake sort so now we have this first of the method that is there that is known as Quake sort in which we will be calling this quick sort recursively again and again but first time around what happens we will check okay now we have this array always we will check beginning should be less than end because that way we can keep keep the track of things that okay this is the part that is already sorted and this is the part that is unsorted right and now we will be checking and after checking that we will be calling this method we will see what this method is we’ll see the algorithm and we will see how this partition happens and we will get the index of the let’s suppose we pick this element as pivot and after partition what happens this pivot has its original position at index 3 right and that will be returned and that will will be contained in this pivot Index right and now what happens now we know that this is its original position in the original array wherein we will get the sorted array this will be its original position that means this element let’s suppose is 8 8 will be at index 3 and this will have its original position after each iteration now first time around what happens this partition is called next time around what happens this quick sort algorithm is called again recursively first time on the left left hand side that means this portion now in this portion this will be your pivot okay you see beginning is uh we are sending the arguments as beginning and pivot index minus one that means we are not including this element because this has been already sorted we are not including this element and we are calling this function on this subarray again and this time around this will be our pivit and same thing happens similarly when we are done on the left with the left hand side now we’ll be moving to the right hand side that is we will be implementing it on pivot index + one that means this element from this element that is there to the end of the array and this time around this will be our pivot okay now with that being said this is what happens when we are implementing quick s but now what about this partition method let’s see how that happens so in Partition what happens we will be setting up the PIV PIV element that is setting up the element which is our pivot obviously you can choose any element but in this tutorial what I’m going to use and what you should try first that we should try to pick pivot as the last element obviously you can pick any element and it’s time complexity depends on which pivot you will be choosing we’ll see that in the time complexity part okay now we have set this pivot as the last element and now what we are doing we are saying that okay the pivot Index this uh this step refers to what is this is the index from let’s suppose this is the pivot index and what happens this will be our pivot okay what happens this pivot index maintains that order okay from this index from this index everything on the left hand side is less than the pivate and everything on the right hand side is greater than the pivate so we’ll see when we we will see an example and there in I will show you how this pivit index is very important okay now what we will do obviously at start it is at this position that means we are not we have no such scenario wherein we have some elements that are less than pivot and we have some elements that are greater than pivot okay so now let’s suppose this is our array and this is our pivot right and this is our P index that is the index PIV index and it is minus one right now okay now these two steps are done now what happens in the third step now we will iterate from beginning that is this point and we will check if any element is less than pivot if that is the case then what we will do we will increment this and swap those elements that is the area the first element and the index that is present at that means now if you see this step now we have incremented it first right now let’s suppose if any element that is less than pivot we first increment the pivot index that means that pivot index will be here and we will be swapping with a r of I and a r of I is also at this location so this element will be swapped with itself now you might be thinking okay so why we are doing this right why we are doing why we are swapping this with its own uh with its own position you won’t get the intuition in this step but in the next step you will definitely get the intuition now let’s suppose this is the thing that happens in the for Loop now let’s try to reiterate this now if an element is not less than pivot let’s Suppose there was here we had five and here we had three so it was less than and we swapped it very yourself now let’s suppose we have this element six and it is not less than P right and what happens over here so we will not be we will not execute this if block right and then we’ll have this AR of I now I will be here now I will be incremented and this time around we have two and P index is still here right now this time around it is less than two right and now what we will do we’ll increment first the P index it will be pointing here here and then what we will do we’ll swap swap these two elements right these two elements will be swap so now you have two here and you have six over here right so you see this is the reason why we have this pivot index at in place and why we are swapping them so in the first step it was uh it was that it happened due to the fact that the element was less than pivot and if the element would wouldn’t have been less than the pivot then we have incremented the I pointer and P index would have remained on minus one now finally what happens now when Once the entire iteration is complete and let’s suppose we have eight over here and we have then 10 now once the iteration is completed now what we will do we’ll swap these two elements that means five and six will be swapped and we have five here we have six here we have eight here we have 10 here and we have three here and we have two here so you see after one iteration all the elements that are less than pivot will be on the left hand side and all the elements that are greater than will be on the right hand side and finally we will uh return pivot index uh that is p index + one that means we’ll be returning this index so that this element is not considered or will not participate in any further iterations or any further recursive calls because you see if You observe carefully that we we’re sending pivot index minus one that is without five all the elements on on the left hand side and plus one that means without this index all the elements on the right hand side okay this is how partition works now you might be confused a little bit now let’s try to demonstrate this with the help of example so you see we have an example over here right we have 5 10 9 6 and 7 these are the elements in the array and we have this pivot here the last element we have chosen last element to be the pivot and after that what we are doing we have this end pointer and we have this beginning pointer also we have that pivot index which will be somewhere around here right that pivot index which will be minus one now this seven will be checked okay is 5 less than 7 yes five is less than 7 so it will be swapped with itself and pivot index will be incremented first and then swapped with it itself now pivate index will be here next time around our a our I pointer will be here first it will be here then what it will be incremented now we’ll be again we’ll again check okay S7 is 7 less than 10 no it is not so our I will be incremented I will be now here at this position right now again it will be checked no again it will be checked yes so now what happens 7 and six uh the six will be replaced with what 10 so you have this six in here obviously PIV index will be incremented first and then we have the six over here and it will be swapped with 10 so 10 will be here right done and finally when we are the end once the entire iteration this is the step one once the entire iteration is completed we have 5 six and then seven will be the last swapping that we did the last swap that we did If You observe here carefully this swap that we are doing this is the the one that is responsible for swapping this seven with the pivot index that is Pivot index + one that is this location and we have this seven over here and it will be replaced with nine so that is why we have nine over here and 10 was here and this is the array after first iteration now you might be thinking okay now this element is fixed now we will not never talk about this element because this has its original position in the sorted array as well now what we will be dealing with we’ll be dealing with this left part and we be dealing with this right part so now what happens in this part right and what happens in this part you see now we have new this is our beginning and this is our pivot because this is the last element that we will be picking and this is our end similarly this is our beginning this will be our PIV the last element in the in this sub array and the end will be here now we’ll be again doing the same step and this time around we’ll be checking okay Pate is less than no nothing will happen and then we will be we will be swapping this thing with itself right and now once this entire subar is completed we’ll not go any further because this time around beginning is not less than end both elements are at zero and 0 is not less than zero and now if You observe carefully this is the condition that we were setting at the start of the of the function that is the quick sort function and we be checking we were checking if beginning is less than end right so this is the importance of that similarly the same thing will happen happen over from this this side and again beginning will not be less than index end part and we will not go any further so after two iterations our entire array is sorted right so this is the step one after step two our entire are is sorted after learning what is quick sort let’s quickly implement the same in Python so here we are using python ID that is Google collab one of the ID mean to say and then we’ll implement that particular program there so let’s quickly hop into the ID now so here is the program for quick sort in Python so let’s understand how this program works right the first part we need partition to be made right any array in quick sort to be broken into two halves and we will start sorting in that particular different pieces so partition positioning will be done with the the help of array low and high variables so at the rightmost always we’ll consider the element as pivote element rightmost element of the array is a peot element that is the consideration so in order to do that we’ll use p is equal to a RR of H right so then point of for greater element so whatever the element is greater in order to compare we’ll be using this point in order to Traverse from all the elements inside an array keeping one PE element in consideration with comparing with that particular element we use this for loop system right if smaller than element is present which is smaller than PE we’ll use this IAL to I + 1 and immediately we’ll swap the element in the position which is there in I with J right that will be done with the help of a r of I and J is equal to J and I we’ll exchange change if you could see here I J is being changed to J and I so we’re exchanging the elements if it is smaller than the P element then swap p with I if it’s greater than P right if any element which is greater than po element wherever the I is pointing to that element will be swapped between the element and PE right in order to do that we’ll be using this particular condition then we’ll get back to the initial position where we started the partitioning right where we broke that array into two parts the partitioning is done there we’ll go back and we’ll try to start initial position then the quick sort function will come right so here in quick sort again we need three different elements AR low and high if low is less than high that is smaller element than peot is present it will all go towards the left side if there is greater element than prior is present it will go to right side so partitioning is done accordingly so this is a recursive call which we follow for quick sort right we’ll be having again array low P minus one Pi is p minus one so again for the right of the P we have a recursive call function which is declared here once all these things are done we have to give data in in order to sort something right we are here presently concentrating on sorting the array which is given in the ascending order right so the data set here is mentioned and it is been assigned as d right so the set is been assigned as D 9A 8 7 2 10 20 and 1 so these are the elements which we are trying to sort right we are printing the unsorted array that means however the input is present here that is printed as it is unsorted is array is equal to so and so which is already there which we are not performing any functions then we have print D that means immediately it will print then size is equal to length of D we’ll consider in order to print while we are printing right we have to print element wise so again we have to print it nine first8 next seven next and then two followed by up to one so after that is done we will send this particular data raw data which is unsorted data to the function called quick sort which we have created here right so that is been sent once that is sent it will follow all the procedures which is mentioned here all the functions will be passed with the data and then finally we will print sorted array in ascending order which is uh sorted using quick sort right so let’s quickly run this program and check out out what is the output so it will take some time in order to take the output so let’s quickly see okay so that is what I mentioned unsorted array is nothing but the array which is been given by the user and sorted array is also given after performing all the functions assigned for the quick sort so if you could see it is in ascending order starting from one and ending at 20 so this is all about quick sort in Python now let’s try to understand the time complexity of quick sort algorithm in quick sort algorithm we have now seen that partitioning of elements takes place and we are partitioning all the elements that means all the N elements if there are eight elements all the eight elements will be we iterate through all the eight elements right so partitioning them takes end time that is order of end time and then quick sort problem divides it into the factor by the factor of two right every time we are divid dividing it by two so the entire process or the time complexity of quick sort in best case and in aage case takes order of end time that is bigo of log n and same thing happens when we are talking about the average case as well but why this is n s in worst case that is the question right so let me clear it out so the question is that why this thing happens if you are picking either the smallest element in the array or the largest element in the array as pivot in that case you are traversing through all the elements again that means this n is already there for partitioning them that means you will be iterating through the array but the extra n and that means inside that n you’re again traversing through all the elements and swapping them because you have picked your pivot in worst case you can either pick it is smallest or the largest element in the array in both these cases you are you will be swapping all those elements with itself that this element will be swapped right this is this is the largest element right this is let’s suppose this is eight so nothing will happen right so these are this is smallest then it will be swapped with itself this is smallest this is this will be swapped with itself this will be swapped with itself this will be swapped with itself so all the elements will be swapped and finally this element will have its original position at the end right so this thing will happen if you are picking your pivot as the smallest element or as the largest element in the array okay so in this in these two cases this is not the case you are picking your pivots as random you picking your pivots randomly okay in nutshell when you are picking your element that is your pivot element as smallest or or the largest element in the array in that case that will be your worst case time complexity and it will be B of n² now let’s talk about the space complexity of quak sort now you might be thinking okay we are not using any extra space right we are not using any auxiliary memory like in the form of array stack Q Link list or anything right but for calling this function that is the quick sort function we are using recursion right we are calling this quick sort again and again right to quick sort calls are there for maintaining the call stack we require order of n space that is the time complexity will be big off and when we are using this approach and in the worst case this will be the scenario that all the elements will be on the call stack okay so in worse case the space complexity will be bigger of and but if we modify this approach of of storing the elements and calling the call stack and maintaining the call stack we can reduce it to beo of login now let’s try to analyze quick sort algorithm let’s first try to understand the stability so let’s suppose if you have this array 1 3 1 dash and 4 now an algorithm is said to be stable if both these one and this one both these in the sorted array will maintain their relative positions now you have the sorted array right and both one this one and this one are maintaining their relative positions which were ear in the unsorted area right so if that thing is maintained right if that thing is maintained the algorithm is stable else it is not stable obviously you can have another way with which this is also sorted but this is not a stable this is unstable algorithm and if you are sorting in such a manner and you have these things placed this algorithm is unstable so if you talk about quick sort algorithm quick sort algorithm is an unstable algorithm although so we can do some modifications and we can stabilize it or we can add we can make this algorithm as stable but as of now if you talk about quick sort algorithm it is an unstable algorithm what about in place and out place since we are not using any auxiliary memory right we are not using any extra space explicitly right in the form of array or link list or stack right or even CU we’re not using any extra memory right so this algorithm quick sort algorithm although we are maintaining a call stack wherein we are you maintaining a call stack and we have a space complexity of big of and but since we are not explicitly mentioning this these uh uh these auxiliary memories this algorithm is an in place algorithm and these are the two analysis that can be done on quick sort so in nutshell if you talk about quick sort right it is unstable algorithm what is merge sort if we talk about merge sort let’s try to understand first sorting sorting is a mechanism of giving order to your values right so let’s suppose you have some values random values 10 30 and then you have 5 2 1 and so on right you have these values and now you want to maintain some order so in order to to visualize this data let’s suppose you want to see uh the ascending order of it or the descending order of it that is what you mean by sorting so let’s suppose you have a class and in that class you have several Ro numbers and some of the RO numbers are not present and then you want to sort those role numbers uh in terms of ascending or descending order that is when you require sorting so this is the basic intuition behind sorting trying to give order to some kind of values or some kind of a data set right so in this particular tutorial we are going to talk about M sort so M sort is a classical sorting algorithm in this sorting every time your problem is divided into sub problems so that your problem set is reduced and then you will be focusing on that sub problem similarly every time when you’re dividing your sub problems you will keep on dividing it unless and until there is only one element left right if you compare it with simpler sorting algorithms like bubble is there insertion is there selection is there Quake is there when you talk about its time complexity as compared to these algorithms this is very much efficient now it follows a paradigm of divide and conquer what does this mean this means that first you keep on dividing your sub problems and then you will conquer those problems and then you will combine those things okay so here in we will see when you are trying to divide your sub problems and then when you have your problem set and those problem sets are conquered that means those problems are further when you talk about in this example those sub problems are sorted in this case and then you have conquered them and then you will combine them that is your merge phase wherein you will be combining your problem again and then for forming again a single sub problem so every time you will be dividing that sub problem you will be conquering it and combining it so this is how this divide and conquer Paradigm works so basically when you’re dealing with merge sort you are focusing on two functions that is your merge function and your merge sort function so now let’s talk about this divide that means you’re dividing your sub problems which continues unless and until there is only one element left because one element in itself is sorted right now this is your divide phase what about conquer basically you are conquering those idual sets and then merging those two sub problems into a single problem and finally you will be doing it on each step and finally you have your original array which is sorted now let’s talk about M sortor so first let’s talk about merge sort method so in this method what we are doing we are dividing our array into further sub arrays how we are going to do that we have basically if we have this array right and this array let’s suppose this contains eight elements right this is our array and let’s suppose this is our left pointer and this is our right pointer and now what we are doing we are dividing it so we need some kind of a in iterator wherein we will store the sum of and we try to calculate the mid value how would you do it in simple words we calculate left plus right ID by two that’s it right so we have this Division and then we will divide this part because we are calling this function again right on the left hand side so this is going to call on this side that is we will be talking about now only three elements so this is let’s or let’s take four elements on this side and four elements on this side so our mid will be 3.5 so we’ll be talking about elements from 0 to three so we will be talking about four elements and then further these two steps are remained why because we are implementing this in recursive fashion so now let’s suppose this is our first function call and you have these three steps one let’s name it one 2 and three okay so in the first function call 1 2 and three so this is the first function call and in this we’ll call in again this is the second function call and we are calling again these two remain right and we are calling again 1 2 and three right so in this case again we are calling it on these four elements and it will be divided into further two elements 0 and one right and in this case again this this is called this will be called on this these two elements right here we are talking about only two elements so this is a third function called and again we will be dividing it these two and three steps are still remaining so in the fourth step what we are dealing with only single element right and in this case we’re talking about only this element right and further we will not be able to divide it and in that case our left is not greater than our left will be greater than or equal to right and in this case it will will be equal to so we will return so now it will be returned right and then whatever was the left over right now we talk about this single element the other element that was left behind we’ll talk about that so again that will be divided into one right and again this will the second option I’ll just erase it because it looks a little bit messy so now what happens let me just put it again in red so here we called this fourth time and this time it returned right so in this case now we will be on the second step now again it will be called on that single element and again left is not great will be greater than or equal to in this case it will be equal to and then we return so again we are returning so we have these two elements one and one that means not one and one element but there is only a single element in both these arrays right why I’m saying that in these two arrays we will be we will check when we talk about merge okay we’ll see how that is implemented okay so now these these two function calls are done and then we deal with merge now before going into the merge let me show you a demonstration of how things look so you have these elements and here you have how many elements you have five elements right and now you’re dividing it into three and two now this is your first step the second step will be this so now will you go ahead and create this as your third step that means you will move on to this no because we saw unless and until left is not there is no left left right we will not go to the right so this is your second step then this will be your third step this will be your fourth step now you will move on to your fifth step right and now once you don’t have anything on the left nothing on the right then what happens will this be your sixth step no your sixth step will be merge so let’s move on to merge now so in the merge function if you see the algorithm for that is simple that you create two sub arrays that is the one is your left array and another is your right sub array now in this you have obviously in the last case if you have seen we have a single element here and a single element here now once we have deduced out the length of these aray aray s what should be the length of these sub arrays and we have declared the length or declared these arrays and then we have initialized these arrays once these three steps are done with then what we are going to do we are going to create three iterators i j and k and those iterators deal with I iterator will deal with left array J iterator deal with right array and K with the original array which helps us to insert the elements so once we we have everything in place what we are going to do the next step is comparing the values right if this element that is the element in left array is less than the element in the right array we are going to insert that in the original array so now let suppose you have 10 here and 23 here so 10 is less than so we are going to insert this and we increment the K pointer and now also our I pointer pointer will be incremented it was earlier it was zero and it will go to one right and now what happens now our our I is pointing to one and our length is also one so now that in that case when one of the array is exhausted the next array whichever is the left whichever is Left Right it can be either the left array or the right array those elements will be directly inserted in the original array because we know for the fact that both of these left as well as right arrays will be sorted in itself okay so let’s see what is the next step in the demonstration so here we we had our steps right and this will be the sixth step wherein we are going to merge this thing now will we will this be your seventh step no your seventh step will not be this your seventh step will be here this will be your seventh step now six step is done now you will be dividing it and you will be creating all those arrays now once you have your right array and there is no right because this left is already done and now you had your right left now this is also done now your eighth step will be this that you will be merging it this will be your eighth step then you will be merging it now will this be your ninth step no you have your this array that is your left array in place but what about the right array is this in place no it is not so now let’s try to calculate that now what will be your ninth step this left is done this is your ninth step then what will be your 10th step this is your 10th step will now there there’s no left right now we’ll move on to this right so this is your 11th step because this is the right side of it right and now when you don’t have anything on the right now you will be merging these two steps and this will be your 12th step which is over here so this is your 12th step that means you will be merging these two and the final sorted array is this array and it you will get this array in the 12th step so you see 10 11 16 20 and 30 now if You observe carefully you have these individual arrays one and one so now while you are merging them you are also sorting them so the left array is sorted and same thing happens on the right hand side as well if you see three and four these two elements are sorted in this left array so this is the reason in the right array right not the left array so now when you’re are merging them you will get again an array which is sorted in itself you see 10 16 and 23 so if one of the array is exhausted the next array elements can be directly inserted in your original array let me erase this and you see you have your left array which is sorted and then you’re merging it with the right array which is also sorted now if one of the arrays is exhausted the next array either it can be left array or the right array the elements from that array can be directly inserted in the original array because we know the elements itself if in either of the arrays either the left or the right are sorted okay so this is how you execute your merge function so here is the program for mer sort in Python so how does this mer sort work generally one single array will be broken into two different pieces again those two different sub arrays will be broken into Sub sub arrays so after that whatever the answers we get at the last will be combined together in order to finish the Sorting of that particular array so we are merging all the answers which we got from the sub arrays to make a final result so quickly let’s see what do we do in order to have a merge s in Python so first we want an array which is being passed through this merge sort function so what happens inside this function first the length of the array is been calculated once that is calculated it is been divided by two so it gets left and right parts of an array right so after sorting the array into two different halves we have mer sorting left side of an array M sorting right side of an array right then we’ll perform the V operation um here with the help of the looping systems so we’ll first try to check out whether we have the right array less than the length of an array of the left and then again left array it is less than length of the right so we’ll try to merge and we try to solve the elements then and there itself so later we’ll go back to the left and right parts of while loop here we have length of an array towards the left side we are checking whether it is lesser than or greater than and accordingly we are deciding where we have to merge the answers what we have got from the subar right so then we’ll always have a printing option of this particular arrays we’ll do that in the last before that in order to merge all the answers we have got from all the sub arays we’ll be using for Loop here right so all the array answers will be submerged and we’ll get the final sorted array which is of uh so many elements which is there in the uh input given by the user say for example five different elements were there in an array so after combining all the sub arrays answers we’ll get the five sorted ascending order elements in the array by using M sort so let’s quickly have a look at it how does this particular M sort will work so uh this is set of an array with eight different elements inside that which is not sorted we have to sort that once this array is been passed through the merge sorting function it will perform all the operations finally it will merge all the sorted arrays and it will display in the print list right so let’s quickly run this program and check out even though if if it is we are mentioning the words array but we are using list here in Python in order to store it right so this is the sorted array which we get so here we could see we don’t have a sorted array but here it is sorted in ascending order that is smallest to the highest so so this is all about the M sort next we move to python form machine learning this is where you will learn to manipulate analyze and visualize data using powerful libraries like numai pandas matplot lib and cbon unlocking insights from complex data sets now we’ll start off with this Library called as numpy which stands for numerical Python and as it is stated over here it is the core library for numeric and scientific Computing so whatever numeric or scientific calculations you have to perform numpy should be a go-to language and this Library called as numpy consists of multi-dimensional array objects and a collection of routines for processing these arrays so let’s go ahead and create our first numpy array so you can have a single dimensional numpy array or a multi-dimensional numpy array now we’d have to start off by importing this Library so to import numai we’ll type in import numpy as NP this NP which you see over here is known as the alas so we are importing the library numai with this alas NP now this numpy library has a lot of methods and one method is called the array method and with the help of this we will be able to create the numpy array all we have to do is type in np. Array and inside this I am passing in the list of value starting from 10 going on till 40 and I’ll store it in this object called as N1 and when I print it out I get the result 10 20 30 40 similarly I go ahead and create a multi-dimensional array so here we are passing in a list of lists so here we had a single list here we are passing in a list of list so as you see we have a list over here and inside this we have two more lists the first list comprises of the elements 10 20 30 and 40 and the second list comprises of the elements 40 30 20 and 10 and when I print out this is how I get this multi-dimensional array the first list is present in the first row and the second list is present in the second row now let me go to jupyter notebook and Implement these two let me just add a comment over here I’ll name it as numai now I’d have to import the numai library so I’ll have import numpy as NP and let’s just wait till this library is loaded now now that this is loaded I can go ahead and create the numpy array so for this I’ll have to use np. array and inside this I’ll be passing in a list of values so I’ll pass in 10 20 30 and 40 and I’m storing it in this object called as N1 now let me print out N1 over here and as you guys see I have successfully created this numpy array which over here the values are 10 20 30 and 40 and just to be sure I’ll go ahead and check the the type of this numpy array so I’ll have type inside this I’ll pass in N1 and as you guys see we get the result numpy do ND array so ND array stands for n dimensional array now we’ll go ahead and create a multi-dimensional array over here so to create a multi-dimensional array we’d have to pass in a list of lists inside this np. array method so I’ll have this outer list inside this I will create two lists so the first list let’s say comprises of the elements 1 2 3 and 4 and the second list comprises of the elements 4 3 2 and 1 now I’ll just print out N2 over here and I have created this multi-dimensional array where all of the elements from the first list are present in the first row and all of the elements from the second list are present in the second row now that we have created these numpy arrays we’ll now see how to create or how to initialize a numpy array with different ways so now let’s say if I want to initialize a numpy array with only zeros then we have a method called as zeros it’s very intuitive isn’t it so here we are importing the numpy array then we are using np. Z and it takes in two parameters so these two parameters basically indicate the dimensions of the numpy array so if I want to create a 1 cross2 numpy array where all of the values are zeros then I can just go ahead and type in np. Z and inside this I’ll pass in the dimensions which is 1A 2 and I get a 1 cross two numpy array where the values are only zeros similarly over here I am creating a five cross 5 numpy array where all of the values are zeros so I’ll just use np. Z and inside this I’ll pass in 5 comma 5 now let me go ahead and implement this in jupyter Notebook here I’ll add the comment NP do Z now I’ll go ahead and uh let me just create create this in N1 and inside N1 I’d have to use the np. Z’s method and over here I’d have to pass in the dimensions so the dimensions would be 1 comma 2 and let me go ahead and print out n one over here so as you guys see I have successfully created this numpy array now if I want maybe a numpy array with a different dimension so the method would be the same I’ll have np. Zer over here and inside this let’s say I want to create a 3 cross3 numi array which consists of only zeros and this I’ll go ahead and store it in this object called as N2 now let me print out N2 over here and we have a 3 cross3 numpy array which comprises of only zeros now if I want to initialize a numpy array with the same number then we can go ahead and use the full method so here I am using np. full and this takes in two parameters the first parameter is the DI di menion of the numpy array the second parameter is the value which we want to insert into this numpy array so here we are creating a 2 cross2 numpy array where the value is filled with 10 so as you guys see it’s a 2 cross2 numpy array where we only have 10 so it’s time for np. full I’ll just type in np. full I’m adding a comment over here then let me add NP do full and I’d have to give in two parameters let’s say I want 4 cross 8 numi array and I want the value five inside this now I’ll store this in this object called as N3 and I’ll just print out N3 over here and as you guys see I have created a 4 cross 8 numi array where the value is only five now similarly if I want to initialize a numi array within a particular range then I can go ahead and use the a range method so here as you guys see I am using np. range and this again takes in two parameters the first parameter is the initial value from which the range has to start so here when I give 10 as you guys see the range starts from 10 and when I give 20 so here again you’d have to remember that 20 is exclusive or maybe the second parameter is exclusive and since this is exclusive we’ll only have value starting from 10 and going on till 19 and that is why 20 is not included in this result over here now we can go ahead and add another parameter so here the initial value is 10 the final value is 50 and we have the skip value so the skip value is five which would mean that after 10 we’ll have 15 so 15 + 5 becomes 20 20 + 5 becomes 25 and that is how this keeps on proceeding now when we reach 45 when you add five more to 45 that becomes 50 and since 50 is exclusive over here that is why we end at 45 but on the other hand if we had given the final value as 51 then we would also have The Element 50 over here so let’s go ahead and Implement a range method over here np. AR range and I’ll store this in N4 now I’d have to use np. a range and I’ll go ahead and give in the initial value as let’s say 100 then I’ll give the final value as 200 and I’ll print out N4 over here and as you guys see we have all of the numbers in sequence starting from 100 going on till 199 now if I actually want the value 200 to be included in this as well let me make the final value to be 2011 and as you guys see this time the range starts from 100 and also includes 200 over here and we can also add a skip value now let’s say if I given the skip value of 10 so here after 100 we have 110 then 120 and this goes on till 200 now instead of 2011 if I keep the final value as 200 we see that this numpy array ends at 190 because 200 is exclusive now we can also go ahead and initialize a numpy array with random numbers and to initialize numpy array with random numbers is we can use random. randint so here we are invoking np. random. randint and over here we have three parameters and over here we have three parameters the first parameter is basically and over here we have three parameters the first two parameters basically indicate the range from which we would want the random numbers so we would want the random numbers in this r range of 1 to 100 and this third parameter would tell the python interpreter how many random numbers do we need so in the range of 1 to 100 we would need five random numbers and as you guys see this is the result which you get over here so we have 95 88 26 22 and 76 which are five random numbers generated between the range of 1 and 100 I’ll add this comment random now let’s go ahead and initialize an ire with some random numbers so I’ll have np. random. Rand in because I want a random set of integers and this will take in three parameters let’s say I would need values between 50 and 100 and I would need 10 random values over here and let me store this in N5 let me go ahead and print out N5 over here and and as you guys see I have 10 random values which are generated between the range of 50 and 100 similarly if I go ahead and run this again I’ll get a different set of values as you guys see we have a different set of values again when I click this we again have a different set of values that was all about initializing a numpy array with different methods now you can also go ahead and check the shape of a numpy array and to check the shape of a numpy array we have the shape method which again is very intuitive so here we are creating a numpy array where we are passing in a list of lists so in the first list we have 1 2 and three in the second list we have four five and six so obviously we will have a numi array where we’ll have two rows and three columns and this is what the N1 do shape gives us now if we want to change the shape of this then we can use the same method so here what I’m doing is I’m typing in N1 do shape and I’m changing the shape from two comma 3 to 3 comma 2 that is instead of having two rows and three columns I will have three rows and two columns so this same shape method can be used to check the shape of the numpy array and also reshape the dimensions of the numpy array so let me create a numpy array over here so we would have to create a multi-dimensional numpy array so this will be n6 is equal to I’ll have np. array and inside this I’ll have to create a list of list so in the first list I’ll have values 10 20 and 30 and in the second list I’ll have values 40 50 and 60 and I’m storing this in n6 now once that is done let me just print out n6 over here so you guys can see this numpy array now I’ll also go ahead and check the shape of it so I’ll have n6 do shape and we get the result that this is a numpy array where we have two rows and three columns now I can also go ahead and change the shape of this so I’ll have n6 do shape and over here I am changing the shape to be equal to 3 comma 2 then I’ll go ahead and print out n6 and as you guys see we have converted this from a 2 cross 3 numi array to a 3 cross2 to numi array so you had 10 20 30 in the first row we’ve got 10 20 in the first row here so similarly this is how this has been changed then we have some stacking methods over here we have v stack head stack and column stack so let’s just start with v stack so we are creating a numpy array N1 where we have the values 10 20 and 30 then we are creating the numpy array N2 where we have the values 40 50 and 60 now when we use v stack over here this again takes in two parameters where we’ll just pass in two numai arrays inside this so as you guys see we are vertically stacking over here so when I say vertically stacking I have one numi array on top of another numai array so because I’m using N1 comma N2 N1 comes at the top N2 comes at the bottom so this is how vertical stacking works then we can also go ahead and horizontally stack two numpy arrays so N1 and N2 we’ve got the same numpy arrays over here and instead of using v stack I’m using the head stack method I’m passing in N1 and N2 and as you guys see 40 50 and 60 so N2 has been stagged horizontally to N1 then we have the column stack so if we want to Stack these numpy arrays into separate columns so we have N1 and N2 and when I’m using column stack over here as you guys see N1 goes into the First Column N2 goes into the second column and this is how we can work with these stacking methods so I’ll have to create these two numi arrays over here I’ll have N1 which will be NP do array and inside this I’ll have 1 2 and three then I’ll also go ahead and create N2 so this will be np. array and inside this I’ll have 4 five and six so I have my N1 and N2 ready now I’d have to I’ll start off with vertical stacking so I’ll use np. v stack and inside this I’m passing in N1 and N2 and let’s see what would be the result so we have vertically stagged N1 with N2 N1 is at the top N2 is at the bottom we can also change how these are stacked so instead of giving N1 N2 let’s see if I give N2 and N1 you guys would see that N2 is at the top and N1 is at the bottom now we can similarly work with the head stack method so here I’ll type in np. hstack and inside this again I’ll pass in N1 comma N2 and as you guys see I have stagged N2 at the back end of N1 now if I want N2 first and N1 second I just have to change the sequence so inside NP do hstack I’ll given N2 comma N1 and I have 456 first and N1 is attached at the back end of N2 then we have column stack so I’ll just have np. column stack over here and inside this I’ll pass in N1 comma N2 and as you guys see I have N1 in the First Column N2 in the second column similarly if I given N2 comma N1 you will see that I have N2 in the First Column and N1 in the second column so this is all about stacking the numpy arrays now we’ll also work with intersection and difference methods so here again we have two numpy arrays so in the first numpy array we have the values from 10 to 60 and in the second numpy array we have the values from 50 to 90 and if I want the common elements between these two numpy arrays then I can use the intersect 1D method so here in the intersect 1D method I would just have to pass in these two numpy arrays and as you see in the result we get a new numi array comprising of the common elements in these two numpy arrays then over here I have N1 and ns2 if I want to find out all the elements which are unique to N1 then I can use the set diff 1D method so here in N1 we have the elements starting from 10 going on till 60 in N2 we have elements starting from 50 going on till 90 so here as you guys see 50 and 60 are common in N1 then N2 and if I want the elements which are unique to only N1 then I would have to use set diff 1D and I’ll pass in N1 N2 as you guys see I get only 10 20 30 and 40 because 5050 and 60 are present in both the numpy arrays I can also change the sequence over here so instead of passing in N1 N2 when I pass in N2 N1 then this will give me all of the unique Elements which are present in N2 and since 50 and 60 are common in both the NPI aray the resultant will be 70 80 and 90 because these are the only unique elements in N2 so let’s go ahead and work with intersect 1D and set diff 1D I’ll just add a comment over here intersect 1D and I would have to uh create two new numi arrays I’ll have N1 over here so I’ll have np. array and inside this I’ll pass in 1 2 3 4 5 6 and I’ll have N2 and inside this I’ll go ahead and create a list of elements where the elements start from 5 6 7 8 and and N so I have these two set over here now that my two numpy arrays are ready if I want to find out the common elements which are present in these two numpy arrays i’ have to use intersect 1D so I’ll have NP do intersect 1D and inside this I’m passing in N1 comma N2 and when I hit on run we see that the common elements between N1 and N2 are five and six now if I want only the elements which are common to N1 then I can use the set diff 1D method so here I’ll have NP do set diff 1D and inside this again I’ll be passing in N1 comma N2 and as you guys see I have 1 2 3 and four which are common to only N1 now similarly if I want all of the elements which are only common to N2 then I can have NP do set diff 1D and I’ll just change the sequence over here instead of passing N1 comma N2 I’ll have N2 comma N1 and the only unique Elements which are there in N2 are 7 8 and 9 now we’ll go ahead and perform some simple numpy array mathematics so we’ll see how to add two numpy arrays so again over here we have two numpy arrays in N1 we have 10 and 20 in N2 we have 30 and 40 now if I want the total sum of all of the elements which are present in both of these two arrays I can just directly use the sum method so I’ll have NP do sum and inside this as a list I’ll pass in N1 comma N2 and you will see that the resultant value would be 100 because 40 + 30 + 20 + 10 is equivalent to 100 now if I want to find out the individual sum along the rows and along the columns then I can use the additional parameter called as axis so if I want to sum the values along the column then I’ll set the axis to be equal to zero so when I have the axis value to be equal to zero as you guys see I have 30 + 10 = to 40 and 40 + 20 = to 60 similarly if I want to sum these up along the rows then I’ll set the axis value to be = to 1 and over here I have 10 + 20 = 30 and 30 + 40 = 70 I’ll add a new comment over here addition of numpy arrays and let me create new N1 over here so I’ll have np. array and inside this I’ll have 10 and 20 then I’ll go ahead and create N2 and inside N2 I’ll again have np. array and over here I’ll have 30 and 40 I’d have to pass this on as a list of values so I’ll have 30 and 40 inside a list so I have created N1 and N2 now it’s time to find out the total sum which is present along all of these so I would have to use NP do sum and inside this I’ll just pass in N1 comma N2 and actually I’d have to pass this as a list so I’ll have N1 comma N2 over here and as you guys see the resultant comes out to be 100 if I want to add the values along the column so I’ll have NP do sum then I’ll have this list over here I’ll have N1 comma N2 then I’ll have this new attribute called as axis and I’ll set the axis value to be equal to 0 and I get the resultant 40 and 60 because 30 + 10 is equal to 40 and 40 + 20 is equal to 60 now going ahead if I want to add the values along the horizontal rows so here it will be NP do sum and over here I’ll have N1 comma N2 again and this time I’ll set the axis value to be equal to 1 and I have 30 and 70 because 20 + 10 is equal to 30 and 40 + 30 is equal 70 now we’ll see how to do some scalar operations on these numpy arrays so here we have a num array where we have values 10 20 and 30 and if I want to add the scalar value one to each individual element of the numpy array all I have to do is add this value one to this numpy array and as you guys see N1 + 1 becomes 11 21 and 31 similarly if I want to multiply each individual element of a numpy array with a particular value so here if I want to multiply it with two I’ll just write down N1 into 2 so 10 becomes 20 20 becomes 40 and 30 becomes 60 and if I want to subtract a value all I have to do is perform N1 – 1 so 10 becomes 9 20 becomes 19 and 30 becomes 29 and if I want to divide it I’ll just have N1 divided by 2 so 10 becomes 5 20 becomes 10 and 30 becomes 15 so this was some basic idea about numai now uh let me just see what is there in N1 over here let me actually add some more elements inside this so I’ll have N1 is equal to np. array and inside this I’ll have 10 20 30 and 40 let me also print out N1 over here for your reference so now that we have N1 what I can do is I will just go ahead and add some scalar values to it and let’s say if I want to add five more to each individual element of the Stumpy array so I’ll just write down N1 + 5 and as you guys see 10 becomes 15 20 becomes 25 30 becomes 35 and 40 becomes 45 similarly if I want to subtract a value I’ll just write down N1 – 5 over here and 10 becomes 5 20 becomes 15 30 becomes 25 and 40 becomes 35 we can also go ahead and multiply something to this so I’ll have let’s say N1 into 10 let me print this out and as you guys see we have multiplied these values with 10 similarly I can go ahead and divide this with something so if I have N1 ided 10 so we see 10 20 30 40 becomes 1 2 3 and 4 so this is some basic scaler operation on top of the numpy arrays and we can also go ahead and use some mathematical functions so we have this mean function over here which would give us the mean value of all of the elements which are present so the mean value of all of this elements comes out to be 35 similarly if you want to find out the median then all we have to do is use this median method we have to use np. median will pass in the nampi and we see that the median value comes out to be 55.5 and if you want to find out the standard deviation I’d have to use STD and I’m passing in N1 inside STD and the value becomes 36.5 n so we have N1 over here and if I want to find out the mean value I’ll just have NP do mean and inside this I’ll be passing in N1 and as you guys see the mean or the average value of all of the elements which are present in N1 comes out to be 25 let me go ahead and create another numpy over here so I’ll have np. array and inside this I’ll be passing in some random values so let’s say these are all of the values which are present in N2 and if I want to find out the median of all of the values which are present so I’ll just use np. median method and inside this I’ll be passing in N2 and the median of all of these values comes out to be five similarly if I want to find out the standard deviations so here I’ll have np. STD and if I want to find a standard deviation of this particular numpy array so I’ll pass in N2 and you would see that the standard deviation of all of the elements of N2 would be 2.39 7 so till now we’ve worked with some basic numi array now let’s go ahead and work with a numpy matrix so here we are creating a 3 cross 3 numpy Matrix and to do that you’ll again need a list of lists so over here we’ll have 1 2 3 4 5 6 and 7 8 9 so so this first list goes into the first row second list goes into the second row and third list goes into the third row now that we have created this numpy Matrix let’s see how can we access individual rows and columns from this entire numpy Matrix so here let’s say if we want to access the first row again You’ have to remember that the indexing in Python starts from zero if we want to extract the entire first row we’ll just have N1 and inside parenthesis will pass in zero and as you guys see over here I have successfully extracted the entire first row similarly if I want to extract the entire second row then the index value for second row will be one and I have extracted the second row and if I want to extract a column then I’d have to do something like this so in a column I would want all of the rows so here from this numpy Matrix I would want the second column and all of the rows from the second column so here since I would want all of the rows I’ll just put in a colon over here and since I want the second column I’ll give in the index value as one and as you guys see I have extracted the entire second column over here similarly if I want to extract the entire third column the index value will be two and I have extracted the entire third column let’s perform this in Jupiter notebook so I’ll just write in numpy metrics over here now that this is set I’ll have np. array and over here I’ll have a list of lists so in the first list I will have 10 20 and 30 in the second list I will have 40 50 and 60 in the third list I will have 70 80 and 90 and I will go ahead and store this in N1 again now I’ll go ahead and print out N1 and let’s see what would be the result so this is our numpy array which we have just created now if I want to access individual rows from this I’ll have to give in N1 and inside parenthesis let’s say if I want to extract the third row then the index for the third row will be two I’ll just have two over here and as you guys see I have successfully extracted the entire third row now similarly if I want to extract the entire third column then this time I would have to write N1 and over here since I would want all of the records from the third column so I’ll just have a colon over here then over here so here you’d have to understand whatever is given on the left side of the symbol would indicate rows and whatever is given on the right side of this comma would indicate all of the columns so I want all of the rows and all of these rows need to be from the third column and the index for the third column is two and I have successfully extracted all of the elements which are present in the third column now we’ll see how to transpose a matrix so what is transposing transposing b basically means when you’re interchanging the rows and columns so here as you guys see we have 1 2 3 4 5 6 and 7 8 9 now the rows should be interchanged with the columns so here 1 2 3 which is present in the first row comes into the First Column 4 5 6 which is present in the second row comes into the second column 789 which is present in the third row comes into the third column let’s go ahead and perform transpose as well so all I have to do is use NP do transpose go and inside this I’ll just pass in N1 over here so as you guys see initially I had 10 20 30 which was in row this became in column 40 50 60 was in second row became the second column 70 80 90 was the third row which became the third column over here now we’ll see how to perform two matrices so over here we have N1 where we have the elements starting from 1 going on till 9 then we have N2 where we have elements starting from 9 going on until one now if we perform the dot operator on this which is basically matrix multiplication this is how the multiplication happens so the multiplication is row by column which would basically mean so here we have 1 2 3 here we have 963 so it will be 1 into 9 + 2 into 6 + 3 into 3 which will give you a result of 30 then again we’ll have row by column so here it will be 1 into 8 + 2 into 5 + 3 into 2 which will give you a result of 24 then it will be 1 into 7 + 2 into 4 + 3 into 1 which will give you a result of 18 and this is how this progresses and finally we’ll get this result over here and the dotproduct of N1 into N2 and N2 into N1 will be different so as you guys see this is the dot product of N1 N2 and this is the dot product of N2 N1 both of these will be different so I already have N1 over here let me go ahead and also create N2 so here I’ll write N2 is equal to np. array and over here I’ll have the elements in reverse order so I’ll have 90 80 and then I’ll have 70 going ahead I’ll have 60 50 and 40 after this I’ll have 30 20 N1 and I am storing this in this object called as N2 let me also go ahead and print out N2 for you guys over here so this is what we have now if I want to perform the dot product so I’ll have N1 I’ll actually have if I want to perform the dot product here I’ll have N1 dot dot inside this I’ll pass in N2 and as you guys see this is the dot product of N1 cross N2 but we know that N1 cross N2 and N2 cross N1 is different so when I perform ns2 dot N1 the result will be different from N1 do N2 so this was about metrix multiplication now we’ll go ahead and see how can we actually save a numpy array and then load it from somewhere else so here we are creating this numpy array where we have elements from 10 to 60 then to save this numpy array we just have to use the save method and over here we are saving this numpy array with this name called as mycore numpy so this takes in two parameters first parameter is the name by which we’ want to save this num array second is the array which we’ want to save now once that we save this to load this numpy array we will have to use np. load and over here we’ have to given the name by which we Sav this numi array so we save this numpy array as mycore numi and we’ have to give the extension which is do npy which basically stands for numpy and we go ahead and store this in N2 and we print out N2 we see that we have successfully loaded this numpy array over here now I’ll go ahead and save this so I’ll have NP do save and this as we have seen takes in two parameters the first parameter is by which I save this so I’ll have save N1 and I would want to store N1 so I have saved this now if I want to load this I would have to use np. load and over here I’d have to give the name of the numpy array so it will be savecore N1 do npy let me actually remove this over here and I will store this in let’s say N9 let me click on run over here so we have an error over here we have this error because I’d have to give this inside single codes now if I click on run we’ll get the result now if I print 10 and N over here we finally get the result so Panda stands for panel data and it’s the core library for data manipulation and data analysis so if you want to perform any sort of data analytical task pandas should be your goto library and pandas provides single and multi-dimensional data structures for the purpose of data manipulation so the single dimensional data structure is known as the series object and the multi-dimensional data structure is known as the data frame we’ll start off by understanding about the series object so series object is a onedimensional labeled array so we have already worked with the numpy array so in numai Array we had no labels along with it it was just a simple blank array where we had stored some values but over here in a series object as you guys see we have labels or you can consider them to be index with labels over here for these so first we’ have to start off by importing pandas which is the library and we are giving this alas as PD so import pandas as PD then if we want to create a series object will have PD do series and inside this I am passing in the values 1 2 3 4 and 5 and when I print it out I get this series object so when I check the type of this type of S1 this gives me pandas doc. series. series now over here you’d have to keep in mind that s is capital over here so if you’re given a small s you will get an error so let’s go ahead and create our first series object so I’ll just add the comment pandas now our first task would be to import the pandas Library so I’ll go ahead and type in import pandas aspd let’s just wait wait for this to be loaded properly now that we have loaded the library I can go ahead and create the series object so I’ll type in pd. series where s is capital inside this I’ll pass in the list of values so let’s say I’ll just have 10 20 30 40 and 50 and I’ll go ahead and store it in this object called as S1 let me print out S1 over here and as you guys see I have created this series object let me also check the typee of this so inside the type method when I pass an S1 you guys would see that this is a series object and over here we have the labels so the labels are 0 to 4 so by default the label or the index starts with zero over here so 10 is present at label or index 0 20 is present at index 1 30 is present at index 2 and that is how it proceeds further now since we have labels in a series object we we can change the how the label of the index looks like so over here we just had numbers starting from zero but instead of numbers let’s say if I wanted alphabets over here then I can add a new attribute called as index so over here with this index attribute I am setting the values to be equal to a b c d e so here initially we had index 0 zero has been changed to a then we had one one has been changed to B we have 2 two has been changed to C and that is how it proceeds so now over here let me go ahead and change these index value so it is the same command over here and with this same command all I’m doing is adding a new attribute called as index and I’ll pass in a list of values for the indices so I’ll have a b c d let me have D over here and and I’ll have e now when I click on run and I print out S1 over here you guys would see that I have changed the indices from 0 to 4 to a to e now we can go ahead and see how to create a series object from a dictionary so we have already worked with dictionaries we know that the dictionary is a key value pair so here we’ll just given pd. series and over here we have three key value pairs a B20 C30 so here automatically the keys are taken as the labels and these values are taken as the series values over here let me create a new dictionary so I’ll have D1 and inside D1 let me have four key value pairs maybe I’ll have a and 10 then I’ll have B and 20 after that I’ll have C and 30 going ahead I’ll have D and 40 now I’ll just go ahead and print this out as you guys see I have successfully created this dictionary now I would have to create a series object out of this so I’ll just have PD do series and inside this I’ll pass in D1 and let’s see what would be the result so these four Keys which were present became the labels and these values over here in the dictionary became the series values as well now we can also go ahead and change change the index position so similarly as we had actually changed the index values from numerical to alphabetical so when I given the index values as b c d a this sequence is maintained so I have B and C first so for B I have the value 20 C I have the value 30 and D we had not created any key with this particular index so that is why we have n a n over here and then we have a for which we have the value 10 so this is how we can maybe add a new index position or change the existing index positions so this is what we had over here this was our series object and now what I want to do is so instead of a b c d I would want let’s say C B A and D and if I click on run you guys see that the sequence has changed over here now we also see how to extract individual elements from the series object so here we have all of these elements starting from one going on till 9 and again You’ have to keep in mind that the indexing starts from zero so if I want to extract this particular element over here so the index value for this would be three so 0 1 2 and 3 and when I given the index value as three I am able to extract this particular element and if I want to extract a sequence of elements over here so if I want the first four elements then I’ll have S1 colon 4 this would mean that I am extracting all of the elements starting from index number zero going on till index number four and since four is exclusive so that is why we will only have till index number three so we’ll have index number one going on till index number three and if you want to extract elements from the back side here we’ll have S1 and we’ll type in Min -3 over here so minus 3 basically means third element from the end third element from the end when I given colon this would mean third element from the end going on till the end so this is the third element from the end over here so that is why I’ll have 7 8 and n and this is how I’ll be able to extract a single element a sequence of elements from the beginning and a sequence of elements from the back let me just create a new series object over here so I’ll have S1 is equal Al to PD do series and inside this I’ll pass in a list of elements I’ll have 10 20 30 40 50 60 and 70 now that I have this let me extract this element which is presented index number three so I’ll have S1 I’ll have parenthesis then I’ll just go ahead and give the index value so index value will be three and as you guys see I have successfully extracted this particular element now if I

    want to extract the first four elements then I’ll just give in the colon over here and I’ll have four and as you guys see I have extracted the first four elements if I want the last three elements over here then I’ll have S1 then I’ll have colon and I’ll type in minus 3 which would mean the third element from the last going on until the last element over here and I have 50 60 and 70 which are the last three elements now we can also go ahead and perform some simple operations on top of the series object so if I want to add a scalar value so initially we had the series object where the number started from one went on till 9 and if I just wanted to add the scalar value five to all of the individual Elements which are present in the series object all I have to do is use plus 5 and as you guys see 1 becomes 5 2 becomes 7 3 becomes 8 and so on and we can also go ahead and add two series objects over here I have S1 where the elements are from 1 to 99 and S2 where the elements are from 10 to 90 and when I perform S1 + S2 this would add the elements which are present at the same index position so here we’ll have 10 + 1 11 20 + 2 22 30 + 3 33 and this goes on till the last index position over here so let’s go ahead and perform some basic operations on top of the series object so I I already have S1 over here and these are the original values which are present in S1 now I’d want to add 10 more to these existing values so I’ll just type in S1 + 10 and as you guys see the values all of the values which are present in the series object have been incremented by 10 now also I can add two series objects together so in the series object I have seven elements I go ahead and create S2 where I’ll have seven more elements over here so I would have to type pd. series and inside this let me just have 7 6 5 4 3 2 and 1 let me print out S2 for your sake over here so we have S1 and S2 and when I perform S1 + S2 this is the result which we get so 10 + 7 becomes 17 20 + 6 becomes 26 30 + 5 becomes 35 and this proceeds to the last index value so that was all about the series object which was a single dimensional labeled array now we’ll work with a data frame which forms the major part of all of the machine learning data science projects so what exactly is a data frame it is a two-dimensional label data structure and if you’d have work with SQL or maybe Excel you would have dealt with tabular data and a data frame helps you to deal with tabular data in Python seamlessly so data frame because this is a tabular data consists of rows and columns now let’s see how can we go ahead and create a data frame from a dictionary so to create a data frame we’d have to use this particular method over here we’d have to type in pd. data frame where D is capital and F is also Capital so by any chance if you give maybe D as small or f as small you’ll get an error so both of them have to be in capital case and over here I have two key value pairs so the first key is name and then we have a list of values which are Bob Sam and Annie then we have the next key which is marks then we have the list of values for Marks which are 76 25 and 92 so here as you see the keys become the column names and the values become the records over here so name and marks become the column names and these values over here the list of values op Sam and Annie which are the values for this key become the records of this particular column similarly these values are there for this particular key and these become the records for this particular column so let me go ahead and create a First Data frame over here so I’ll just go ahead and type in data frame Now to create a data frame I’d have to type pd. data frame and D and F both have to be capital and inside this I’ll create a dictionary so to create a dictionary I would need Calli braces so the first key would be name and I’ll go ahead and give in a list of names over here let’s say the first name is Sam then we have Annie going ahead we have Jennifer now once we have the first key value pair I’ll go ahead and also add their marks over here so the second key would be marks and I’ll have a list of values over here let’s say Sam has got 50 marks Mar Annie has got 60 marks and Jennifer has SC 70 marks and I’ll go ahead and store this in DF let me print out DF over here and we have created our first data frame where the column names are name and marks and the values are these over here and let me go ahead and also show you guys the type of this object which I’ve just created so inside this type method I’ll be passing in DF and as you guys see this is p. c.f frame. data frame which basically means this is a data frame object now that we have created our first data frame we’ll perform some basic functions on top of a data frame we’ve got head tail shape and describe so we’ll just Implement all of these now to implement this we will be performing them on a data set called as the iris data set now to read any CSV file we have a method called as pd. read CSV so here I’ll have pd. read CSV and inside this I’ll give single codes and given the name of the file so the name of the file will be iris.csv and I’ll go ahead and store this in a new object called as Iris now let me hit on run let me check the first five records which are present in this Iris data frame so if I want to check the first five records which are present in this Iris data frame I need to use the head method so iris. head as you guys see I have the first fire records so this Iris data frame comprises of five columns which are SLE length seel width petal length petal width and species and we’ll have three different species which would be setosa ver color and virginica so this is how we can work with the head method now similar to the Head method we would also have the tail method which would give us the last five rows which which are present in a data frame so here I’ll type iris. tail and when I click on run you guys would see the index value over here the index value starts from 145 and goes on until 149 because there are 150 records in this Iris data frame so we have extracted the last fire records and we have printed it onto the console then if you want to check the number of rows and number of columns which are present in this Iris data frame we can just use the shape method so here I’ll have iris. shape and as you guys see this gives us a dimension value of 150 comma 5 which means there are 150 records in five columns then we’ll have the described method so here I’ll have IRS do describe and now when I click on run we have all of these numerical quantities over here so let’s say if I want to find out what is the minimum value which is present in the seel length column the minimum value present in this Seer length column will be 4.3 similarly what is the maximum value in Seer length column it will be 7.9 what is the mean value it will be 5.84 so these are some interesting metrics which we can find out with the describe method so now that we know this let’s actually see how can we extract individual records or individual columns from a data frame so for that purpose we can use the do iock and lock methods so let’s start off with the DOT iock method so do iock method with the help of it we can extract rows and columns on the basis of index so here iock basically stands for index location and over here as you see I have a comma and on the left side of the comma that would indicate all of the rows and the right side of the comma that would indicate all of the columns so from this entire Iris data frame I am extracting the first three records so here the rows would be 0 to three and three is exclusive over over here that is why I’ll have the records where the index values are 0 1 and 2 and similarly The Columns would be 0 to2 which would mean the column which is present at index0 which will be SE length and the column which is present at index one which is SLE width two again over here is exclusive so let me go ahead and extract some rows and columns with this iock method so we already have this Iris data frame with us let me again print out out the head for you guys so that will be easier for you to have a glance at this now let’s see from this entire data frame I would want the records from index number 30 going on till index number 40 and I would want the columns which are present at maybe index number three and index number four so index number three will be 0 1 2 and 3 this is index number three this is index number four so here I’ll have index number three going on till the end because this is the last column let me print this out and show you guys the result as you guys see I have extracted all of the records starting from index number 30 going on till index number 39 and the columns which you see starts from index number three which is this particular columns index and goes on till the end over here so this is how we can extract individual rows and columns with the dot iock method now we have the Dot Lock method so instead of giving the column index if I want to extract columns on the basis of their names then I can go ahead and use the Dot Lock method and over here when it comes to rows you see that I have given 0 to three here when it comes to Dot Lock you’d have to keep in mind that three is inclusive this is the only case where maybe you will find that the final value over here is inclusive so when I given 0 to three you will get all of the records starting from index number zero going on till index number three which is also inclusive and over here I’m giving in the column names which are SE length and petal length and that is what I’m extracting over here so I have this Iris data frame then I’ll just go ahead and use this do lock method now from all of these records let’s say I’d want all the records starting from index number 10 going on till index number 20 and the columns which I want to extract are seel length and petal length I’ll just have seel do length over here and the next column which I want would be petal do length let me hit on run and as you guys see I have all the records starting from row number 10 going on till row number 20 and 20 is also inclusive over here and the columns which have extracted are seel length and petal length now we’ll see how to drop a particular column so many of times it would happen that not all columns which are present in a data frame are important so from this entire data frame if we want to drop a particular column then we can just go ahead and use the drop method so here I’ll have iris. drop and I am dropping or removing the SE length column from this entire data frame so here when I set the access value to be equal to 1 this would basically mean that I am dropping a column so if you want to drop a row then you would set the axis value to be equal to zero and if you want to drop a column then you would set the axis value to be equal to 1 so if I if from this entire Iris data sets again I’ll show you guys the head of this so that you guys can have a glance at all of the columns which are present over here so from all of the columns if I want to drop the species column all I have to do is type in iris. drop and inside this I’d have to give in the name of the column which would be species and I’d have to set the axis which will be equal to one because I’m dropping a column and as you guys see I have successfully dro the species column from this entire data frame now similarly if I want to drop some particular rows which are present in this data frame so here as you guys see the index value it starts from zero goes on till four over here but if I want to drop the row indexes of 1 2 and 3 here as you guys see I have two parameters first parameter I’ll given a list of all of the indices that I’d want to drop so I’d want to drop the index value one index value two and index value three and the resultant which you see over here after zero we directly jump on to the index number four so now from this entire dat data frame this what you see over here I’ll just use iris. drop and I would want to drop the index values of 1 2 and 3 and I’ll set the axis to be equal to zero and when I hit run you would see that after zero we are directly jumping onto index number four so this is a very simple example of how to drop some records and how to drop some columns from your data frame now we’ll go ahead and work with some simple pandas fun functions so from the iris data frame if I want to find out the mean values of all of the columns I can just go ahead and use the mean method similarly if I wanted the median values of the records of all of the columns then I’ll just go ahead and use the median method similarly if I wanted to find out the minimum value I’ll use the Min method and if I wanted to find out the maximum value I will use the max method over here so very basic operations so when I use iris. mean this would give me the average values of all of the columns so average SLE length of the entire data frame is 5.8 average SLE width is 3.05 average petal length is 3.75 and average petal width is 1.19 similarly if I want to find out the minimum value of all of the columns so I’ll have iris. mean and this will give me all of the minimum values and if I want to find out the maximum values I’ll just go ahead and type iris. Max and this would give me the maximum value of all of the columns over here so I’ve got the mean value the minimum value the maximum value and I can also find out the median value so I’ll just type in iris. median and when I click on run over here this would give me the median values with respect to all of the columns which are present now we will get on with this Library called as m lip which is mostly used for data visualization and with the help of this Library we can create stunning plots such as bar plots Scatter Plots histograms and a lot lot more so we’ll start off by creating our first plot which will be a line plot so we would require two libraries over here the first Library would be numpy because we would want to create our data with this numai library then we would import this pip plot sub module from this mat plot lip Library so we’d have to type in from matte plot lip import P plot as PLT and the Alias which I’m giving for pi plot is PLT then I’ll create two numpy arrays over here the first numi array will be X and I’m creating this numpy array with the help of this np. a range method and the range will be from 1 to 10 and then I’ll create the next numpy array which is basically 2 * of X so all I have to do is multiply x with two and then I’ll get y so here we have 1 we have two 2 becomes 4 four 3 becomes six and this is how it proceeds now once we create the data all we have to do to create a line plot is use this PLT do plot so we’ll have the plot method in this P plot module so this takes in two parameters which are X and Y so we have already created our data X and Y so X will be plotted on the x- axis y will be plotted on the Y AIS and as you guys see over here x goes from 0 to 10 and Y goes from 1 to 20 over here and we see that there is a linear relationship between X and Y or in other words as the value of X increases the value of y also correspondingly increases so let’s go to jupyter notebook and create our first line plot using M plot LEP so so i’ have to start off by importing the required libraries so I would need numpy here I’ll type import numpy as NP and after this I would also require matplot lib so I’ll type from Matt plot lib import pip plot as PLT let me write those spelling properly over here and once I’ve imported these two libraries I’d have to create the data so first I’ll have X and this I’ll be creating with np. a range and the range will be from 1 to 10 since I want the numbers from 1 to 10 I’d have to give the value 11 because 11 will be exclusive over here then let me just go ahead and print out X for you folks over here as you see we have the number starting from one going on till 10 now if I have to create y y will just be 2 * of X so here I’ll have 2 into X and then let me print out y for you folks over here and as you guys see this is all of the elements are just two times of the elements which are present in X now since I have to create a simple line plot I would have to use PLT dotplot and this would take in two parameters which are X and Y so this data would be plotted onto the xaxis this data would be plotted onto the Y AIS and I’ll just show this as a result so as you guys see we have this object X mapped on the x-axis this object y mapped on the Y AIS and this is the corresponding line plot now that we have created this we can also add the title X label and Y label so we’ have to use this title method so we’ll have PLT do title and inside this we’ll give the title as line plot similarly we can also add X label and Y Lael by using these two methods and as you guys see we have added these two labels over here so let me add the title X Lael and Y label PLT so I’ll copy this entire code over here and then I’ll paste it over here now after this I’d have to add the title so for that I’ll use PLT do title and I’ll just give the title as first line plot then I’ll have X label so here I’ll have PLT do X label and here I’ll give the X label as xaxis then I would have the Y Lael so PLT do y label and inside this I’ll give the Y Lael as y AIS let’s run this and wait for the results so as you guys see initially this was just a bland plot without the title and the X and Y AIS labels now with the help of these three methods we have added the title The the x-axis label and the y- AIS label now we can also go ahead and change some more attributes with respect to this line plots so we have color line style and line width so initially as you see over here the color of this line by default is blue but if I don’t want the blue color and if I want some other color then I can just use this color attribute and assign it a new color since I’m giving it a value of G which basically means green color and as you guys see this is a green color similarly we have this next attribute called as line style so initially we have a solid line but instead of a solid line if I want a dotted line then I can go ahead and use a colon over here and as you guys see we have a dotted line right now and by default also the line width is one so we can go ahead and increase or decrease the line width so here we are setting the line width to be equal to two and this is the final result which we get so let’s go ahead and add some color line plot and line width I have the same code over here now what I’d have to do is add in some color so I’ll have this attribute called as color and I’m setting let’s say I’ll give it orange color to this now I would have to change the line style so I would want a dotted line instead of this solid line so I’ll give in a colon over here and I’ll also change the line width so I’ll give the line width as three so as you guys see initially this was the line which we had but now I have changed it to this so from Blue we have converted it to Orange from a solid line we have converted it to a dotted line and also you see that this is a thin line and we have increased the width of this line by two points now we have only created one line in one plot but we can also have two lines in the same plot so for this purpose I’ll have two y variables so X variable will be the same which will be the number starting from one going on till 10 but I’ll have two y variables y1 and Y2 y1 is 2 * of X Y2 is 3 * of X so now that we have y1 and Y2 ready I’ll have to make two plots because I’d want two line plots in the same graph so first I’ll have PLT dotplot and this line will be between X and y1 so this first line which you’re making it’ll be between X and y1 and for this particular line I’m setting the color to be equal to Green the line style to be equal to so this will be a dotted line then we’ll set the line width to be equal to two then we’ll have have our next line which will be between X and Y2 and the color of this line will be red and this will be a dashed line and we are setting the line width to be equal to three then again we have the title X Lael and Y Lael and we also have this new method called as grid so in the earlier plot as you guys see we don’t have any grid over here but when we set PLT do grid to be equal to True we’ll have a grid as well well and this is the resultant line which we get so here we have the green line over here which is this dash line then we then we also have this next line over here which is between X and Y 2 and this is the line and since I’ve also set the grid to be equal to true we also have a grid over here in this particular graph so I’ll go back we already have X now let me just print out X for you guys over here this is these are all the numbers which are present in X now we I y1 I’ll set it as 2 * of X and then I’ll have Y2 which will be equal to 3 * of X so I have y1 and Y2 ready now after this I would have to make a plot between X and y1 so I’ll have PLT dotplot and onto the x axis I’ll obvious obviously have X then onto the Y AIS I’ll have y1 and the color for the first line I’ll have green and let’s say the line width I’ll set this to be equal to 2 then I’ll have the next line which will be then I’ll have the next line which will be between X and Y 2 so here I’ll just write down X comma Y2 and for this line I’ll set the color to be equal to red and I’ll change the line width over here again so I’ll set the line width to be equal to 5 and I would just have to print it out so it’ll be PLT do show and I would also want a grid over here so before this I’ll set PLT do grid and I will set this to be equal to True let’s hit run and as you guys see I have two lines in the same plot now in the earlier example we had two lines in the same plot but if we actually want two subplots itself that is as you guys see over here this is one subplot this is one subplot and this line is present in the first subplot this line is present in the second subplot so this is also something which we can create so first we have X y1 and Y2 so these would be the same variables once we have our variables ready we we would have to use the subplot method so we’ll have PLT do subplot and inside this I am passing in 1 2 1 so here one two basically means that I would have two plots over here and those two plots would be present in this way so I’ll have one row two columns as you guys see I have one row and two columns so this is column number one column number two which are present in the same row then I will given the index of this subplot so this is index number one and for this first Index this will be the plot which we’ll be creating so for the first index the plot will be between X and y1 color will be green line style will be dotted and line width will be two and as you guys see at index number one we have this green colored line between X and y1 then we’ll have PLT do subplot which is our next sub plot and the first two parameters will be the same the third parameter here will set the index value which is two so this is what we’ll be getting over here and the second index will have the line plot between X and Y2 and the color as you see is Red Line style is dotted and line width is equal to two then we’ll just go ahead and print it out so we already have X y1 and Y2 ready with us now after this we would have to start off by creating a subplot so here I I’ll have PLT do subplot and I’d have to given the and here I’d have to given the dimensions over here so I’ll have 1 2 comma 1 so I’m creating my first subplot over here PT do plot and this plot will be between X and y1 and I’ll set the color to be equal to Yellow then after this I’ll go ahead and create the second subplot and the first two parameters will be one and two because i’ want these two plots along the columns and I’ll set the index to be equal to two then I’ll have PLT do plot and the next plot will be between X and Y2 and over here I am setting the color to be equal to Orange then I can just go ahead and show you guys the result result so as you see I have two subplots over here the first subplot is between X and y1 and the color of this line is yellow the next subplot is between X and Y2 and the color of this line is orange now if I want the subplots along the row and not along the column that is also I can set so all I have to do is make this change over here I’ll set this to be equal to 2 comma 1 and similarly over here here I’ll make this to be 2 comma 1 which means that I will have the plots along the rows I’ll have two rows and only one column when I hit run as you guys see I have two rows and only one column this is the first subplot this is the second subplot so that was a line plot which helped us to understand the relationship between two numerical entities so whatever we mapped onto the xaxis was a numerical entity and whatever we mapped onto the y- axis was also a numerical entity now we’ll go ahead and work with something known as a bar plot which would help us to understand the distribution of a categorical column so for this we are creating a dictionary called as student and it compris of three key value pairs we have Bob 87 Matt 56 and Sam 27 now we’ll go ahead and extract the names and values individually so the names of these students are basically the keys so I’ll have student do Keys which will give me all of these keys and I’ll go ahead and convert these Keys into a list so I’ll pass this into this list method and I’ll store the result in this names object similarly I’ll extract all of the values I’ll convert all of the values into a list or I’ll store all the values into a list and I’ll store that list in this object called as values so I’ve got names I’ve got values and to create a bar plot all I have to do is use PLT dob bar and the takes in two parameters the first parameter will have the categorical values the second parameter will have the numerical values since the first parameter compris of the categorical values I’ll pass in names over here and the second parameter will be the values and as you guys see over here on the x-axis I have the names which are Bob Matt and Sam and on the y- axis I have the corresponding values so VC that Bob has scored the highest marks followed by Matt followed by Sam now since we are creating a bar plot I’ll just add this comment bar plot over here and I’d have to create a dictionary so that we get the data for this bar plot so I’ll name this dictionary as student and we can create a dictionary with these curly braces over here so I’ll have the first student who is Bob let’s say Bob has scored 45 marks then we we have the second student Sam and Sam has scored let’s say 97 marks then we’ll have Matt and let’s say Matts has scored only 23 marks so we’ve got three key value pairs now that this is done I’d have to extract the keys so I’ll type in student. keys and I will convert this into a list so I’ll cut this I’ll put this inside the list and I will store this in a new object called as names now that I have names of all of the students I’ll go ahead and also extract marks of all of the students so I’ll have I’ll store that in this object called as values I’ll have to convert the result into a list and inside this I would basically have to extract all of the values so it’ll be student. values I have names and values ready and to create the bar plot I would just have to use PLT do bar the first parameter will be names and the second parameter will be values then I can just go ahead and show out the result so we have Bob Sam and Matt mapped on the xaxis and their corresponding values and we see that Sam has the highest marks and Matt has the lowest marks and now the plot which we had created earlier was very Bland and we can go ahead and add the title X Lael and Y Lael to it and also assign a grid so we’ll be using the same methods to add the title we’ll have PLT do title and to add the X label and the Y label we’ll be using PLT dox Lael and PLT doy label and we’ll also set the grid to be equal to true I’ll copy these two set of commands over here and I would have to set the title so here I’ll have PLT do title and and I’ll set the title to be equal to marks of students then I’ll have something on the xais PLT dox label and I’ll just have names and the x-axis then I’ll have something on the Y AIS here I’ll just write down PLT doy label and on the Y AIS I’ll just write down marks and I would also have to set the G to be equal to true so it will be PLT do grid and here I’ll set the value to be equal to true and as you guys see I have names on the x-axis marks on the Y AIS and I’ve also set the grid to be true now after this we can also create a horizontal plot so the plot which we had created earlier was a vertical plot so here we are basically doing two things so if we have to create a bar plot we have to use bar hedge instead of using just bar and we are adding a color as well so by default we had the blue color and if I want to change the color from blue to green I’ll use this color attribute and I’ll map the green color to this rest everything will be the same let me add a new comment over here which will be horizontal bar plot now that I have added this comment let me go ahead and copy everything I’ll paste it over here and instead of just having bar I’ll have bar H and I’ll set the color to be red and we have this bar plot over here so it’s just that we have to Interchange the label so on the x axis now we have the marks so let me keep this as marks and on the Y AIS we’ll have names let me change this to names and as you guys see we have successfully created this horizontal bar plot now that we are done with the bar plot we’ll head on to the next geometry which will be a scatter plot a scatter plot again is used to understand the distribution between two numerical entities and these and these entities are represented in the form of data points so we’ll be creating two lists over here the first list will be storing in X which basically comprises of the elements starting from 10 going on till 90 then we’ll have the next list a which comprises of some random elements and here you’d have to keep in mind that both of the lists have same number of elements else there’ll be an error and to create a scatter plot we’ll just use PLT do scatter we’ll pass this over here we’ll pass this over here as a second parameter and then we’ll just show off the result let me go ahead and add a comment over here so this will be a scatter plot Now to create this scatter plot I’d have to create the data so I’d have to store something onto the x axis so in X I’ll just have 1 2 3 4 5 6 7 8 and 9 and then I’ll have y and then y I’ll just have nine Rand ROM numbers over here so let me just store some nine random numbers which is done now to create the scatter plot I’ll have PLT do scatter and I’ll just pass in X comma Y and I would have to show out the result PLT do show and as you guys see I have created this scatter plot let’s start off with this particular point over here this particular point in indicates these two so I have X Y which is basically 1 and 5 so this intersection between 1 and five is where we’ll be getting this point so I have X I have y and this is the point I have then I have 2 comma 2 so the intersection of 2 comma 2 I’ll get this particular point then we have this point over here which is the intersection between 9 and 7 so as you guys see I have 9 and 7 over here now we can also go ahead and add some athetics or change the athetics of the existing points so we had same X and A these are the same list which we have it’s just that we are adding new attributes over here the first attribute as marker initially we just had solid circles so instead of having solid circles if I wanted a star then with the help of this marker attribute I’ll add star over here so similarly to change the color I’ll just have C and I’ll assign green to this attribute C and also I can change the size of this and to change the size of this I’ll be using S let me copy this entire thing I’ll be pasting it over here so these two will be the same I’ll add this new attribute called as marker and I’ll set the marker to b equal to Star and I’ll change the color color will be let’s say I’ll have orange again and I’ll have size to be equal to 200 let me print it out and as you guys see this is the result just to show you guys what happens if we increase the size instead of 200 if I keep it to be 500 you guys see that the size has increased again now instead of 500 what happens if I keep it to be 50 you would see that the size of the Stars has decreased now as we did with the line plot where we had two lines in the same graph we can perform a similar sort of thing over here where we’ll have two different sets of points in the same plot so for this we would need a new list we already have X and A then we’ll create a new list called as B again we have to keep keep in mind that the elements which are present in this list or the number of elements which are present in this list should be equal to the number of elements which are present in a as well as X then we’ll go ahead and create our first scatter plot by using PLT do scatter and the first cat plot will be between X and A and the first cat plot here these dots will be represented with stars then we’ll go ahead and create the second scatter plot which will be between X and B and these will be represented with circles and also we have different colors for both of these cater plots and also the size of the different data points will be different I’ll copy this entire thing over here and I’ll paste it down I’ll change this to be equal to y1 then I’ll have a Y2 as well and then Y2 I would need uh some some bunch of elements over here random nine elements so let me just have some random N9 elements let me just check how many elements do we have so I have 1 2 3 4 5 6 7 8 and 9 so these three lists are ready after this I’d have to go ahead and create the first catter plot which will be between X and Y one then I’ll go ahead and create the second scatter plot which will be between X and Y2 and I’m not adding the marker because we have already added the marker for the first one I just change the color for this so the color for second one let’s just keep it to be blue so I don’t have to add the color as well and I’ll change the size of this so for this I’ll set the size to be equal to 500 so as you guys see I have two sets of points over here the first set of point is being denoted by the small Stars the second set of points is being determined by these solid circles now instead of having those set of points on the same plot we can go ahead and create two subplots as well so we’ll be using the subplot method as we had used during the case of line plots so here we have these three lists then I’ll have PLT do subplot then we’ll have the same three parameters and since I want these plots to be present column wise in not rowwise I’ll have 1 comma 2 which means that I’ll have one row two columns and then I’ll give the index so at index number one we’ll have this scatter plot which will be between X and A so this is the scatter plot between X and A then I’ll go ahead and create the next subplot and the next subplot will be between X and B I’ll copy this entire thing I’ll paste it over here it’s just that I’d have to create a subplot now so I’ll have PLT do subplot and I want these plots column byse so I’ll have 1 comma 2 comma 1 and the first subplot will be this then I’ll go ahead and create the second subplot so I’ll have PLT do subplot and here I’ll be writing 1 comma 2 comma 2 and this is our first subplot and this is our second subplot so that was all about the scatter plot for categorical column but when it comes to histogram we’ll be using that to understand the distribution of a continuous numerical column and we’ll be creating this continuous numerical column or continuous numerical data with just a list over here so this is a very basic example I’m just creating a random list which comprises of all of these numbers and I’m storing it in this object called as as data and to create a histogram all I have to do is use this hist method so inside PLT doist I’ll pass in this list and when I show out this is the result which I get so here let’s actually have a look at this particular bin so in a histogram these are known as bins so here for this bin for the value three we have this value four or for the value three on the x- axis we have this value 4 on the y axis which would mean that this number three is occurring four times similarly if I look at this one over here so for this one on the xaxis we also have the value one on Y which would mean that one is occurring only once similarly we have four so this number four is occurring two times then we have eight which is occurring three times so let’s go ahead and create a histogram in Jupiter notebook I’ll just add a comment over here histogram and let me go ahead and create a list so I’ll store this list in L1 and I’ll have some random numbers over here so I have created my list and now that this is ready I can just go ahead and build out the histogram by using this method called as PLT doist and inside this I’ll be passing in L1 then since I just have to show this out I’ll just have PLT do show and this is the result so as you guys see this number three is occurring four times then we have this number six which is occurring three times and the rest of the numbers are occurring only once now we can also go ahead and change the number of bins which are present or the color of the histogram as well so to change change the color we’ll just use this over here so for the color attribute we are mapping in G which will give us this green color and initially we had 1 2 3 4 5 6 seven bins over here but instead of seven bins let’s say if I want to reduce the number of bins I’ll just use this attribute and set the number of bins to be equal to four and this is the result which I get I’ll copy this entire thing I’ll paste it over here now that I have created this histogram I would want to change the color of this so I’ll set the color to be equal to green and then it off so how many bars do I have 1 2 3 4 5 6 7 8 and 9 instead of having nine bars let’s say I would want only three bars over here or three bins over here I’ll set the bins value to be equal to three and as you guys see I have only three bins now let me set it to be five and I have 1 2 3 4 and five b this was all about histogram now the earlier histogram which we had created was with respect to a single list but if you want to create a histogram on top of a data frame then let’s see how can we do it so here we’ll be building this histogram on top of the iris data set so if you have to load any data frame we’ll have to use reor CSV since this is a CSV file so inside reor CSV I am passing in the name of the file and I’ll store it in this object called as Iris and when I use iris. head this will give me the first five rows which are present in this data frame now after that to create the histogram we’ll just use PLT doest and inside this so here we were passing in the list of numbers but here instead of passing in the list of numbers I’ll pass in the column so we have this SE length column which is present in the iris data frame so I’ll just pass in the seple length column and I’ll set the number of bends and I’ll also set the color to be equal to something and when I show it out this will be the result which I’ll be getting so here I’d have to load the iris data frame first so in the iris object I’ll just have pd. read CSV and inside this I’ll give the name of the file which will be equal to iris. CSV I’ll click on run so I’d have to import the panda data frame as well to use reor CSV method so I’ll have import pandas as PD and we have let’s just wait till this is loaded both the library and also the data frame now in the while it is loaded I’ll go ahead and write in the head method as well now if I click on run we’ll have a glance at the first five records which are present in this data frame and as we see we have seel length seel width petal length petal width and the species column and now I’d want to create a histogram for let’s see this petal length column over here then I’ll just have to type in PLT doist and inside this I’d have to pass in this petal length column so here so i’ given the name of the data frame first and using this parenthesis I’ll give the name of the column so the name of the column let me keep this to be small it’ll be petal length and I’ll set the number of bins to be equal to let’s say 50 and after that I’ll set the color of the bins to be equal to Green again and we can just go ahead and show the result so this should be be color and not C I’ll keep it as c o l o r all right so as you see we have successfully created this histogram for this petal length column now we’ll head on to the next geometry which is a box plot so this box plot basically gives is a five number summary so here in this result what you see this is the minimum value this is the 25% value this is the 50% value this is the 75% value and this is the maximum value so we’ll be understanding more about this as we progress through the session so first what we’ll do is we’ll just go ahead and create three list in the first list we just have numbers from 1 to 9 in the second and the third list we have randomly given some numbers over here and then we’ll create a list out of all of these three lists so inside this list method I am passing in 1 2 and three as a list and I’ll store the resultant list in this object called as data then if I have to create a box plot I’ll just use PLT dobox plot and inside this I’m passing in this data object which I just created and when I show it out this is the result which I get now when I compare these three boxes let’s actually understand the inferences over here so for this plot or this plot this box basically refers to this particular list this box tells us that the median value of the numbers which are present in this list is five the maximum value is N9 the minimum value is 1 similarly if we look at this particular box so this box refers to this particular list and this box tells us that the median value will be three the maximum value will be five and the minimum value will be one then if we have a look at this particular box this would tell us that the median value will be seven for this list the minimum value will be four the maximum value will be 9 so it’s time to create a box plot I’ll add this comment over here box plot and after this I’d have to create three lists so I’ll have L1 and inside L1 I’ll just have all the numbers starting from 1 going on till 9 then I’ll have L2 inside L2 I’ll just randomly given nine numbers and again I’ll have L3 and also in L3 I’ll just randomly given some numbers over here now once we have L1 L2 and L3 I’d have to create a list of lists so inside this this I’ll just be passing in L1 L2 and L3 and I will store this in a new object called as data so now that we have created data I can just go ahead and build out the box plot so I’ll have PLT do boxplot and inside this I’ll just pass in data then I can just show it out to you guys so we have these three box plots over here so the first box plot represents this particular list we see that the median value is five minimum value is one and the maximum value is N9 then we have this second list over here so for this the median value is five the minimum value is also one and the maximum value is 8 so and for this particular list it seems that the median value and the 75% value is same so for this the median value is 8 the minimum value is five and the maximum value is 9 so one another geometry which is analogous to the box plot is the whin plot so the only difference is to create a while in plot we’ll be using Vin plot method instead of box plot method and this is the difference between how these boxes and vience look and we can so normally if we don’t set the show medians to be equal to True will not have these lines or these indicators over here so we also have to set this to be equal to true so now here I’ll just copy this entire thing I’ll paste it over here and instead of having PLT dobox plot I’ll just have PLT dowh in plot and I’m printing out the same data and as you guys see I have created this while in plot and now if I want the median so I’ll have show medians and I’ll set this show medians to be equal to true and as you guys see I have added the medians as well and and after the viin plot we’ll have the pie chart and pie chart again helps us to understand the frequency or percentage of different categorical values so here we have two lists the first list comprises of all of the names of different fruits so we’ve got Apple orange mango and guwa then in the second list we’ve got the quantity of these fruits so we’ve got 67 apples 34 oranges 100 mangoes and 29 guav was and if I want to represent this relationship of the quantity of these fruits in a pie chart this is how I can do it so I’ll be using PLT do PI and here first I’ll be passing in the numerical entity so the numerical entity is this quantity and I’ll be passing that over here then I’ll have the categorical entity over here which is fruit so I’m assigning fruit to labels then I can just go ahead and show out the results and as we see in the result we see that the maximum percentage is of mango and the minimum percentage is of guwa so i’ have to create two lists over here I’ll create the first list I’ll have fruit and the first fruit will be apple the second fruit will be mango the third fruit will be orange and the fourth fruit will be ly now that we have created all of these fruits I’ll also assign the quantity so let’s say I have 53 apples I’ve got 43 mangoes I’ve got only 12 oranges and I’ve got 97 Lees so I’ve got these two ready now after this I’d have to create the pi chart so I’ll have PLT do PI first I’d have to given the new numerical object which will be quantity then I’d have to given the categorical object so I mapping fruit onto the labels then I would just have to show out this pie chart so PLT do show as you guys see this is the resultant pie chart so the maximum portion belongs to lii and the minimum portion belongs to Orange because we have 97 lies and we have only 12 oranges now now we can also go ahead and change the colors of these different sectors and also add the actual percentage in these different sectors to add the percentage we’ll be using Auto PCT so here for this autop PCT attribute I am using 0.1f now what this basically means is the 0.1 basically means that I’ll have the decimal values to one place so if I have 0.1 this will mean I have decimal values to one place if I’ll keep it as 0.2 then I’ll have decimal values to two places and after this I’m just adding this new attribute called as colors and the coloring it starts from the first label which is Apple over here orange then I’ve got blue which is for Mango then I’ve got black which is for guaa I’ll copy this entire thing over here I’ll paste it over here now to add the percentage I’ll be using autop PCT and here I’ll have to use percent 0.1 F let me add percent percent and after this I’ll also have to set the color over here so the colors I’d have to give a list of colors so let’s say for Apple I’d want to given green then for for mango I’d want to give in yellow then for orange i’ obviously want orange and for liy I’d want pink now when I hit on run let’s see what would be the result let me change this to colors instead of color so as you guys see I have the percentage over here because I had used autop PCT attribute and it seems that we have out of all of the fruits 47.3 of them are lies and this is the color indicated similarly out of all of the fruits only 5.9% of them are oranges so we have created the pie chart then something which is very similar to pie chart is the donut chart and to create this donut chart we’ll be using two pie charts over here so the data is same we have fruit and quantity it’s just that first we’ll go ahead and create our first pie chart which comprise of quantity and labels and I am adding a new attribute inside this which is the radius so I am setting the radius of this to be equal to two then I’ll go ahead and create another pie chart here inside this I’ll just pass in so first we have to pass in numerical entities so I’ll just have a list which comprise of only one element or one value which is one and this entire value or this entire list compris of only one color which is white and I’ll set the radius to be exactly half of the original Pi so I’m setting the radius to be equal to one and as you guys see this is the outer pie chart this is the inner pie chart so the outer pie chart has a radius of two the inner pie chart has a radius of one and since I’ve given a color of white this is what I have over here so you can give any random number over here that doesn’t really matter so you can give 1 10 5 it is all the same it’s just that keep the color as W because since a donut it just basically looks like a donut we have to give in the white color I’ll copy this entire thing I’ll paste it over here I’ll set the radius for this to be equal to let’s say four then I’ll have a new pie chart over here I’ll just give a random value let’s say I’ll give five over here and after this I’d have to set in a color and since there is only one value I’ll just give in white color over here and after this the only thing which I have to set is radius and I’ll set the radius for this to be equal to two let’s hit on run and this is the donut chart which we get so as you guys see the radius for the outer pie chart is four the radius for the inner pie chart is two let me reduce this let me keep this to be two actually and let me keep this as one and this is the resultant donut chart so cbor is another visualization Library which is built on top of M plot lip so if you want to work with cbon then we’d have to import matplot lip as well so to import cbon we have to type in import cbor as SNS and since this is built on top of mat plot lip we also have to import mat plot lip so we’ll have from mat plot lip import P plot as p LT and inside cbon we have this method called as load data set and we have some built-in data sets inside the seor library and one such built-in data set is the fmri data set and I’m storing this this new object called as fmri and then I’ll have a glance at this first five columns of this data set so we have these columns we’ve got subject time Point event region and Signal now out of all of these columns I’d want to make make a line plot between the time Point column and the signal column so to make a line plot with the help of the cbor library since I’ve given the alas for the cbor library as SNS I’ll type in SNS do lineplot and onto the xaxis I am mapping the time Point column and onto the Y AIS I am mapping the signal column and then I’ll have a new attribute called as data so basically I am building this line plot on on top of this fmri data set that I just go ahead and show out this line plot so let’s understand this properly so if you look at this line plot closely you would see that till the time point of 5 Seconds so let’s say if this time point is in seconds so till the time point of 5 Seconds the signal value is increasing but from time point of 5 Seconds to 10 seconds you have the signal value to be increasing and after 10 seconds this sort of stabilizes and only increases two so here if the value is min – 0.05 so from – 0.05 it goes up to close to zero so now that we are done with mt plot lip let me go ahead and create a new notebook over here and I’ll name this new notebook to be equal to cbon let me rename it I’ll delete this I’ll name this as cbon demo and we’d have to load the required libraries the first library is obviously cbon so I’ll have import cbon as SNS then i’ also need pip plot so I’ll have from Matt plot lib import pip plot as PLT let’s just wait for these two libraries to load and once we have cbon with us we’ll be working with the fmri data set so to load the fmri data set we have the load data set method meod which is part of the SNS Library so I’ll have SNS do load data set and inside this I’ll be passing in the name of the data set which is fmri and I will store it in this object called as fmri and let me have a glance at the first five records of it so I’ll just type in fmri do head and these are the different columns which are present and I’d want to make a line PL between the time Point column and the signal column and for this purpose I’d have to map the time Point column onto the x-axis and the signal column onto the Y AIS SNS do line plot and onto the xaxis I am mapping time point and onto the Y AIS I am mapping signal and the data is obviously fmr right then I would just have to show out the result so I’ll have SNS i’ actually have to give in PLT do show over here let’s hit run so we have successfully created this line plot and as we had already seen so till 5 Seconds there’s an increase in the signal value from 5 to 10 seconds there’s a drop and then it sort of stabilizes now we can also add a new attribute or new athetic called as Hue so here we had only one line and this one line arbitrarily the color of this was blue but if I want the color of the lines to be actually determined by a column what I can do is I can map a column onto the Hue athetic so we have the event column and we are mapping the event column onto the Hue athetic so now the color of the lines would be dependent on this event column and since we have two events over here we have the stim event and we have the Q event this blue color line represents the stem event and this orange color line represents the Q event and if we look at this blue color line over here you would see that till time point of 5 Seconds the signal value it goes up till maybe 20 and then it drops down to a Min – 0.1 and similarly if we look at this Q event you see that the peak is not so high so for the stem event it was almost 0.2 and when it came to Q it is only 0.05 but you’d also notice that the drop is not so steep so for the drop of the stem event it came from 0.2 and it’ll drop down to Min – 0.10 but for this particular signal Q the drop is very small it dropped from 0.05 to only minus 0.05 and also if you see the increase of it so once it dropped the increase of Q event is much higher when compared to the increase of this stim event so this is the same set of commands it’s just that I am adding a new attribute called as Hue and I’m determining the color of the lines on the basis of this attribute and I’ll be mapping the event column on top of this so as you guys see I have this event column and this is the same column which I’m mapping onto this Q ech event we see that we don’t have the event column so what I’ll do over here is I will cut this out I’ll paste it over here I’ll put in a comma and since this is a column I’d have to put this in double quotes now when I hit run so seems like we have an error again over here I have two commas let me go ahead and delete this comma and we have successfully produced this two line plots over here now we can also go ahead and change the style of how these lines look so now if I want these lines again or the style of these lines again to be dependent on a column I can just go ahead and add a column onto the style athetic so the color is also being determined by the event column and also the style is being determined by the event column so it’ll be the same command and I’ll be adding a new attribute to this I’ll have style and to this I am mapping the event column and you see that the Q event is being represented with this dotted line and the stem event is being represented with this solid line so now that we have created that we can also add markers on top of it so all we have to do is set the markers to be equal to True here in this command I’ll have this new attribute called as markers and when I set this to be equal to true you will see that so I have markers now when it comes to the stem event the markers are solid circles and when it comes to the Q event the markers are crosses so that was all about line plot with the help of the cbor library now we’ll go ahead and create a bar plot with the cabor library so to create this bar plot we’ll be actually needing the Pokemon data set so we’ll have to start off by loading the Pokemon data set so we’ll have pd. read CSV and we’ll store this pokemon. CSV file in this Pokemon object and once we store it in this object we can go ahead and create a bar plot for this is legendary column this is legendary column is a categorical column and that is why we are creating a bar plot and this is legendary column we have two categories 0 and one so zero indicates that the Pokemon is not legendary and one indicates that the Pokémon is legendary and onto the Y AIS I am mapping the speed column and from this bar plot it is very evident that legendary Pokémons or the speed of the legendary Pokémons is high higher when compared to the speed of non- legendary Pokémons so now I’d have to go ahead and load of the required data set so to load the data set I would need pandas so I’ll just type in import pandas as PD now once I have this I need to load the CSV file so I’ll Type in pd. read CSV and inside this I’ll give the name of the CSV file which is will be pokemon. CSV and I will store it in this new object called as Pokemon and once I’ve stored this let me have a glance at this so I’ll just type in pokemon. head and I’ll show you all of these columns so these are the different columns which are present over here so against Bug against dark against dragon all of these columns basically tell us how does a Pokemon perform against these types of Pokémons then let me scroll it to the last so here we have this s legendary column which would tell us if the Pokémon is legendary or not then we have this generation column which would uh tell us the to which generation does this Pokemon actually belong to then this column tells us what is the weight of this Pokémon in kg then this type one tells us what is the primary type of the Pokémon type two tells us what is the secondary type of the Pokémon and then we’ve got other columns as well so now for this bar plot we’ll be only working with this s legendary column and then the speed column so I’ll be using SNS do barplot and onto the xaxis I would have to map s legendary and then onto the Y AIS I’ll be mapping the speed column and the data onto which I’d want to build this bar plot is the Pokemon data set then I can just go ahead and show this out and when I hit on run you would see that I have successfully created this bar plot and again it is very evident that the legendary Pokémons the speed of the legendary Pokémons is higher when compared to the speed of non- legendary Pokémons so now we’ll create a bar plot between s legendary column and weight in kg column so s legendary column is again mapped on to the x-axis it’s just that here for the y- axis we are mapping weight kg column and this time it is it’s very very obvious that legendary Pokémons their weight is much much higher when compared to non- legendary Pokémons I’ll cut this out I’ll paste it over here and instead of mapping speed I have the weight kg column and when I hit on run you would see that the weight in kg of a legendary Pokémon is much higher when compared to the weight in kg of a non- legendary po Pokémon now we can also go ahead and determine the color of these bars on the basis of a column and we already know to do that we’ll be using the Hue etic or the Hue attribute and I want the color to be determined by the generation column so this time I’ll be mapping the generation column onto the Hue athetic and as you guys see we have seven generations over here starting from generation one going on until Generation 1 and since we have two different legendary status so zero indicates that the Pokémon is not legendary one indicates that the Pokémon is legendary for these two categories I’ll have seven bars each so for those Pokémons which are not legendary I’ll have these bars these seven bars indicating to which generation does the Pokémon belong to similarly for all of the Pokémons which are legendary I’ll have these bars indicating to which generation does the Pokémon again belong to and again on the y- axis since we have mapped speed we have the speed values corresponding to whether the Pokémon is legendary or not legendary so the same set of command I would have to use the Hue esthetic and onto this I’ll be mapping the generation column and as you guys see so this denotes all of those Pokémons which are not legendary this denotes all of those Pokémons which are legendary and it is very clear that legendary Pokémons they have much much higher weight when compared to non- legendary Pokémons and we have the distribution of Pokémons which belong to the different generations with respect to both legendary Pokémons and non- legendary Pokémons now going ahead we can also change how the different pallet look for these bars so we will use the pallet attribute so we’ve got these three different palletes over here so again the bar plotters between is legendary column and weight column and it’s just that instead of using a column to map it onto the Hue athetic we are using a new athetic called as pallet and we can directly use different predefined palettes so first we have the blues D palette with a capital B this is how it looks like then we have the rocket pallet and this is the resultant and then we have the VL pallet let me delete this Hue attribute over here and instead of that I’ll have pallet attribute and the first palette which I’ll be using is blues D and as you guys see this is the blues D palette similarly if I want maybe a more of red color then I I’ll be using the rocket palette then if I want maybe a light shade of bluish gray I’ll be using V lag and this is what I’ll be getting now instead of maybe using a palette or maybe mapping a color onto the Hue athetic I can just go ahead and use the color attribute and assign one single color for all of the bars which are present so I’m using the color attribute and I’m mapping the orange color to both these bars I’ll remove pallet and instead of pallet I’ll have the color attribute and I will set the color of these two bars to be equal to Orange and this is the result so we are done with bar plot as well now we’ll go ahead with the next type of plot which is scatter plot and we have already learned that a scatter plot is used to understand the relationship between two numerical entities and over here we are building the scatter plot on top of the Iris data set so we’ll load this data set up then we’ll be using SNS do scatterplot and onto the xaxis I am mapping the seple length column and onto the y- AIS I am mapping The Petal length column and the data onto which I’m building this scatter plot is the iris data set and again it’s very clear that as the seple length of the iris FL increases the petal length of the iris PL also increases linearly so here I’d have to load a the iris data set first so I’ll have pd. read CSV I’ll give it the name of the file which will be iris.csv now that I have loaded this let me show you guys the first five rows of all of the columns and this is the resultant and to create the scatter plot all I have to do is use PLT do scatterplot and since I want the scatter plot between seel length and petal length and I want seel length to be onto the xaxis so to X I’ll be using seel do length and on the Y AIS I would need petal length so let me give the name of the column over here which will be petal length and the data which I’m using is obviously Iris then I can go ahead and show out the result so let me just keep it as scatter over here and again this has to be equal to small D and not capital D let me hit on run over here and this is the resultant value now as you see over here we can go ahead and add in color and also change the style of this so initially we just had a simple plot between seel length and petal length but now I want these dots to be determined or the color of these dots to be determined by the speed species column so that is why I am mapping the species column onto the Hue athetic and after that similarly I am mapping the species column onto the style etic as well so here as you see we’ve got three different colors blue orange and green the blue color is being determined with the Sosa species then we’ve got this orange color which is for the wory color speci then we’ve got this green color which is for the vinica spey similarly we’ve got three different styles over here for setosa we have solid circles for ver color we have crosses and for vinica we have solid squares the same command which I’ve copied I’ve pasted over here I’ll add two more attributes the first attribute will be Hue and onto Hue I’ll be mapping the species column similarly onto style as well I’ll be mapping species Colum column and when I hit on run so I’ll have it as hu now when I hit on run seems like we have an error over here let me check it properly and this over here has to be just H now when I hit on run this is the resultant scatter plot which I get and now let’s say instead of having the colors to be determined by a categorical column if I actually want the color to be determined by numerical column I can also do that so here since petal length is mapped on the Y AIS and I want the color to be with respect to the petal length I’ll go ahead and map The Petal length onto the Hue athetic and as you guys see over here as the value of petal length is increasing the intensity of these points is also increasing so here on this lower left side over here we have all of this very light shaded circles and at the top right you have this high intensity or high intensity colored circles over here I’ll copy this I’ll paste it over here now I’ll want the Hue or the color to be actually determined by petal length itself let me keep the L to be capital and when I hit on run you would see that as The Petal length value increases the intensity of the color also increases let me just go ahead and also add the style over here so this time the style will be determined by the species column and you would see that we have three different styles for setosa this is setosa you have solid circles for wory color you have crosses and for vinica you have solid squares so this was about a scatter plot now we’ll go ahead and make a histogram or a distribution plot so a distribution plot you can consider this to be a combination of a frequency curve and a histogram and we have already worked with histogram where it came to matte plot lip we know that a histogram is used to understand the distribution of a continuous numerical value so for this we’ll be using the diamonds data frame so we’ll load up this diamonds data frame we’ll store it in this diamonds object and then we’ll have a glance at it after that will to create this distribution plot we’ll use disc plot and inside this I if I want to understand the distribution of the price column I’ll just pass it over here so I’ll have diamonds of price and as you guys see this would show us the distribution plot and as I’ve told you the distribution plot is a combination of a histogram and the frequency curve over here I’ll just add this comment and I’ll add distribution plot now over here to create this distribution plot I would need to load up the diamonds data set so I’ll have pd. read unor CSV and inside this I’ll be passing in the diamonds. CSV file and I will store it in this new object called as diamond now that I have loaded this data set let me have a glance at the first five records of this so diamond. head and these are the different columns which are present so I’ve got carrot which obviously tells us about the carrot of the diamond then we’ve got the cut type of the diamond we’ve got color Clarity depth table price so this is price of the diamond in US dollars so the price would mostly range from around $300 to around $188,000 then we’ve got x y and z X over here denotes the length of the diamond in millimet y denotes the width of the diamond in millimet and Zed denotes the depth of the diamond in millimet so once this is clear i’ have to make a distribution plot and since distribution plot is used for continuous numerical values I want to make a distribution plot for this particular column so I’ll have SNS dot dis plot and inside this I’ll be passing in Diamond I’ll have square braces over here inside this I’d have to pass in the colum which is price and I would just show this out I’ll have PLT do show and you would see that I have created this distribution plot over here now in the distribution plot let’s say if I want only the frequency curve without the histogram that also can be done it’s just that in the same command I would have to set hist to be equal to false and when I set his to be equal to false I’ll only get the frequency curve I’ll copy it I’ll paste it over here and I’ll add a new attribute called as H and I’ll set this to be equal to false and when that is done you would see the difference so this was a distribution plot which had both histogram and the frequency curve now this is a distribution plot which comprise of only the frequency curve now similarly we can go ahead and add a new color to this and to add a new color we’ll just use this color attribute and add this so this was the distribution plot which we had created and to this if I want to add color I’ll use this color attribute I’ll assign it R and you you would see that I have assigned it the red color now if I want a distribution plot without the frequency curve which would mean I want only the histogram then here I will set KDE equal to false so in the distribution plot either we can have both the histogram as well as the frequency curve or we can just have the histogram or we can just have the frequency curve to just get the frequency curve we’ll set this to be false to just get the histogram we’ll set KDE to be equal to false and we can also go ahead and Vary the number of bins which are present to vary the number of bins I’ll use this attribute called as bins and over here I’m setting the number of bins to be equal to 10 and I’m just setting the color to be equal to Green I’ll select this over here I’ll paste it and I’ll set KDE to be equal to false and when I do this you would see that I have only the histogram without the frequency curve if I want to change the number of bins which are present so since there are 150 records I’ll have 150 bins but instead of uh having all of this so let’s say if I want only 50 odd bins over here I’ll set 50 and as you guys see I have only 50 bins now let’s say instead of 50 maybe if I want only 10 bins so you will see that I have only 10 bins now let’s say if I want only five that also something which can be done I’ll set the value to be equal to five and we have only five bins over here and after this let’s say if I want to plot it on a different axis so till now we’ve been creating this distribution plot where on the x-axis or basically this was based on the x-axis but instead of having it to be based on the x- axis if I want to map it vertically then I would just have to set vertical to be equal to true I’ll have the same command over here and here I’ll set vertical to be equal to true I’ll remove this KDE equal to false from this I’ll also remove this particular retribute from this now if I hit on run you would see that I have mapped this distribution plot onto the Y AIS next we have a new geometry called as a joint plot plot so this joint plot is a combination of a scatter plot and a histogram so as you guys see over here I have a scatter plot in the center and I have a histogram at the top side and the right side and I’ll be creating this joint plot on top of this Iris data frame so once I’ve loaded this Iris data frame I want to create a joint plot between seel length and petal length so I just created a scatter plot so for scatter plot we are just use SC scatter plot method for joint plot it’s just that we have to use this particular method we are passing in the same columns now when it came to scatter plot we had only this particular part but when it comes to Joint plot here what you see for seple length you would have the histogram of the seple length column as well similarly for petal length you will have the histogram for petal length column as well so this is an interesting point about joint plot we already have loaded the iris data frame now I’ll have to use SNS do joint plot and onto the xaxis I’ll be mapping seel do length and onto the Y AIS I’d have to map something so onto the Y AIS I’ll be mapping petal. length and that is pretty much it I actually have to give the data as well so the data on which I’m making this is the iris data set then here I’ll have PLT do show and when I hit on run so seems like we have an error over here so Seance so L has to be Capital let me make it capital L and you would see that I have successfully created this joint plot where I have this scatter plot in the center and I have corresponding histogram for seple length on the top corresponding histogram for petal length on the right side and over here if I want to change the color that is also something which can be done and we’ve already seen this throughout so all I have to do is use this color attribute and I have to give in a color for this and if I like the olive color that is what I’ll be going ahead and mapping it onto this attribute I add this color attribute and I’ll have Olive and as you guys see I have mapped the olive color for this joint plot now for this if I want a regression line through the scatter plot and also through the histogram I’d have to use this new attribute called as kind and for this new attribute kind I am assigning this value rig so as you guys see I have this regression line which is passing through the length values and The Petal length values and also it is passing through both of this histograms so here I’ll have kind and I’ll have the value reg set for this kind attribute let’s wait for the result and you would see that I have added a regression line which goes through the histogram and also goes through the scatter plot once I have done this let’s go ahead to the next geometry which is a box plot and to create a box plot we’ll just be using this box plot method and we’ll be creating this box plot on top of the churn data frame so we’ have to load this data frame first so this data frame tells us about the different features of a telecom company and on the basis of this features we have to find out if the customer will churn out or will stick to the same company so here we have the churn column and the tenure column the Chon column I’m mapping onto the x-axis the tenure column I’m mapping onto the Y AIS and obviously I’m building this box plot on top of the churn data frame uh one interesting attribute about a box plot is that box plot can be mostly used to understand how does a categorical value change along with a numerical value so that is why here we have mapped this categorical column churn onto the x-axis and this numerical column tenure onto the Y AIS and we see that so this what you see is the median value which we have already seen so when it comes to people who do not churn out it seems that those people who do not CH out their median tenure or their tenure in general is longer than those people who actually churn out so I would have to load this data frame first I would have to store it in the ch object so Chan is equal to pd. read CSV and inside this I’ll have churn do CSV and then let me have a glance at the first five records of all of the columns and these are all of the columns and for all of these columns I’d have to make a box plot between this tenure column which would go on the y axis and the Shone column which would go on the x-axis SNS do boxplot and onto the xaxis side have to map obviously the tenure column onto the y- axis I am mapping the churn column then I’d have to use the data which is Chun and I’d have to show it out so I’ll have PLT do show so I actually made a mistake over here so tenure will go onto the Y AIS and Chon will go onto the X access now we get this box plot and we’ have already seen the inference it seems that those people who do not shown out this their tenure seems to be longer than those people who actually Chown out and now this time we’ll be creating a box plot between the internet service column and the monthly charges column so we have the monthly charges column onto the Y AIS and the internet service column onto the x-axis and we’ve got these three different categories in this internet service column so the internet service can either be DSL fiber optic so this no means that the people don’t have or people haven’t subscribe to internet service and it is very clear that those people whose internet services fiber optic they would have the maximum monthly charges similarly those people who do not have internet service their monthly charges is minimum so when you compare this box to these two boxes it is very evident that people who don’t have internet service their monthly charges are very very low I’ll copy the same command over here but on the yis I’ll have monthly charges and on the X access I’ll have internet service and this is the resultant box plot which we’ll be getting now we’ll go ahead and make another box plot between the contract column in the tenure column tenure column would go onto the y- AIS contract column would go onto the x-axis and we can have three different types of contracts month-to-month contract one-ear contract and a 2-year contract and if we look at the tenure of it so let’s actually look at the median values of the tenur so it seems that if the contract is of month to month then the median tenure is the lowest similarly if the contract is of 2 years then then the median tenur is the maximum and we are setting a pallet over here so again we can have different pallet so the pallet which I’m using is equal to set one onto the Y AIS I’ll be mapping the tenure column onto the x axis I’ll have the contract column let me write in contract column over here and uh the data will obviously be the churn data set and what I’d have to do is I’d have to use a pallet and the pallet which I am using is equal to set one and this is the resultant box plot now you see these boundary lines over here if we want to change the thickness of these boundary lines we can do that with the help of this line width attribute so here I am setting the line width to be equal to three if you compare this particular box plot with the earlier Bo plot it is very clear that the thickness has increased the same code I’ll actually have tenure and contract over here onto the x-axis I’ll be needing contract and I will use this line width and I’ll set this to be equal to 3 and you would see that the line width has increased substantially and after this let’s say if I want to change the order of how these boxes are present so here initially the boxes were present in the order of month to month one year 2 year but instead of this order let’s say if I want 2 year first followed by month to month then after that if I want one year then I can use this attribute called as order and inside this I’ll pass in the list which will comprise of the order in which I would want these boxes to be present so here I’ll remove the line width and instead of line width I’ll use this attribute called as order and first I’ll have two year after that I’ll have month to month then finally I’ll have the last box which will be one year and you would see that I have changed the sequence now if you want to add colors on the basis of a column which we’ve been doing throughout that can be done with the help of this Hue attribute and I want the color of all of these boxes to be determined by this payment method column so here I am mapping this payment method column onto this Hue athetic and as you guys see I have these four different payment methods I have electronic check mail check bank transfer and credit card so electronic check so this particular box or where all of these boxes where the color of the box is purple or dark blue that denotes electronic check then we have the box where the color is orange that would denote mail check and if the color of the box is green that would denote bank transfer and if the color of the box is readed that would denote credit card so here I’ll add this attribute called as Hue and I want the Hue to be determined with the help of this payment method column and you would see that I have four of these over here so I have four boxes with respect to these three different categories ready to explore the Forefront of Technology generative AI is our next STP we will demystify how AI can create new content and show you how to implement these Advanced models using python think of a magical box that could materialize everything you could imagine a box that can create a new video write you a story draw a lovely picture or even record a song it sounds like something from a story book isn’t it well it’s generative AI not magic hello and welcome everyone to this video where we are going to examine how this incredible technology functions how it is changing the world today are you prepared to discover ai’s magic let’s get started [Music] now so let’s start with quickly understanding the evolution of computers when the computers were created they were created as calculating machines for mathematicians and bookkeepers then then it evolved to understanding programming languages so that it can understand instructions human instructions but now it has evolved too incorporating humanlike intelligence as well as creativity mimicking humanlike intelligence is nothing but artificial intelligence and artificial intelligence combined with creativity is nothing but generative AI so let me make you understand with a very simple example what is generative AI transport yourself back to your childhood you had a lot of lot of toys to play with you would keep that toys in one box now also imagine that if you wanted some toy which is different you would not get in the market but what if I tell you that this box is a magical box and if you input your under understanding of what you want in your new toy with instructions it can create a new toy for you which is not available in the market now this toy can be a beer with unicorn features and wings what if it generates for you this magical box generates a toy which is very unique for you this magical box is nothing but generative AI generative AI actually is not a magic it’s a fast and rapidly evolving artificial intelligence system which creates generates transforms content that can be text video audio image Etc based on your input so if you want to understand it technically generative AI or gen aai functions by employing a neural network to analyze data patterns and generates new content based on those patterns neural networks are nothing but a mimicry or a replication of your biological neuron based on how it gets from brain the activity from brain and you do your work it’s nothing but a mimicry of that based on that mimicry it analyzes data patterns and generates new content for you let’s Now quickly see what is the difference between discriminative and generative AI suppose you have a data set of different images of dogs cats you provide this as a input to your discriminative AI which acts like a judge and it classifies all this into set of images between cats and dogs this is discriminative AI it classifies now let’s understand what is generative AI you have the similar set of cats and dogs but now your generative AI is acting like an artist it creates a new species of dogs for you that’s why generative AI is nothing but AI system that transform creates generates your own content based on your instructions like an artist now that you have UND OD what is discriminative AI and what is generative Ai and what is the difference between the two let’s understand why is generative AI or gen AI trending gen AI has impacted various Fields be it text audio video any input and those inputs in various domains like data management Tech Healthcare and entertainment it has creative applications such as as di chat GPT where you can input what you want and get output from it for example if you want to create an image what you think or perceive as a concept and you want it you give a prompt for your generative AI model and it’ll create that image for you so your input is a text but your output is an image that’s why it’s trending it does not depend how traditional AI is dependent on what form of input you give the same form would be your output however gen AI works on your inputs on your instructions that’s why it’s trending it is impacting a lot of fields be it creative field be it research field be it business professionals are using tools like chat G to create or generate code so that they can create something new the researchers are actually developing new and new large language models based on which we can create new generative models and can do new and new task each and every day that’s why generative AI is evolving rapidly and that’s why is close to Magic for everyone now that you have understood why it is trending now let’s understand how it it works we give an input to generative models gen AI works on generative models we give an input it can be text audio video any format those generative models are then preened on the data and they are fine tuned to do the task that you want it can be teex summarization it can be sentiment analysis it can be image generation it can be audio generation for your YouTube channel or analyzing your customer feedback if you are a brand or a marketing firm it can create codes whatever you want you give a prompt what you want explaining it that what you want and it fine tunes and gives you that task for you so this is how in nutshell generative AI model works so now let’s see what are the different types of generative AI first one is generative adversarial Network Gans it’s a type of AI where two models one generating the content and one judging it work together to produce realistic new data second is variational autoencoders this AI learns to recreate and generate new similar data third is Transformers Transformers is an a a i which learns to produce sequences using context fourth is diffusion model which generates data by refining noisy starting until it looks realistic now that you have understood what are the different types of generative AI let’s quickly walk through different applications of generative AI first one is content generation it creates it generates whatever textual or any code that you want customer support and engagement if you are brand firm it helps you with that data analysis and data science it helps with visualization it helps with analyzing any data it be it any data you want you are a brand firm or you are a technology firm it will help you analyze your data and create new automated task for you or it would create new perceptions for you to take over then it is code generation and software development we have research and information retrieval as well where it helps different researchers it helps different professionals to grow and retrieve extract information required from different or various data sources then we have machine translation if you are a person who do not understand a language and you’re watching something or reading something which is in different language which you can use generative models to translate text or audio or anything into the language that you require then we have sentiment analysis which actually takes feedbacks or any text that you have to give you is it a positive negative or neutral sentiment and so that you can analyze and take decisive decisions other domains here include Health Care transport everywhere it helps generative models generative AI is helping each and every domain in their perspective how they are applying this technology change in their domain so let’s Now quickly conclude what we have learned in this video we learned AI is a super set we have a subset called machine learning which trains your machines to do what you want but there the machines need your for input deep learning is a subset of machine learning which incorporates neural networks which mimics your neurons so that it can imitate human intelligence then comes generative AI which involves creativity introduces creativity in artificial intelligence system then comes large language models large language models are basic bits that you will learn in our upcoming videos so stay tuned just before we conclude let me tell you different generative AI tools which are in the market and which you can explore some of it are charity by open AI clae by anthropic AI co-pilot by GitHub Gemini by Google you can go and explore the world however stay tuned to our channel so that you can learn more about generative AI large language models prompt engineering and several different buzzwords that are there in the system let’s start with the first topic overview of python when you hear the name python you know the various applications of it first and foremost thing it is a high level programming language which is very unique compared to other high level programming language why almost it will use English like statements in order to execute the code it’s very easy to learn as a beginner this particular Python language now why do we use python in generative AI it’s not about generative AI it’s about python is already having a well supported set of libraries which is already in use since years with respect to domains like data science machine learning natural language processing deep learning Etc now artificial intelligence and generative AI is grabbing the libraries which we have already in Python other programming languages are also used but I could say python is a versatile programming language which makes life easy for the people working in this technological domain after understanding a overview of python let’s quickly hop on to the next topic introduction to generative AI applications which is the core concept which we have to learn generative AI refers to algorithms which enables machines to produce content that is not only new and original but also includes a reflective data and it will be always trained according to the requirement right generative AI deals with a lot of models what do these models include G that is generative adverse networks vaes variational autoencoders and Transformer based models such as chat GPT right what do we do with this generative AI applications it’s very important in order to train the algorithm or the machine in order to keep it updated the more you interact with this the more it gets trained that’s how simple it will work and generative AI helps you to generate your own models how you want to train that particular model you can train it accordingly just like simple example how does the scientist train the robots each robot will do its own different work right hope you would have seen the requirements are different the catering of requirements is different hence the models will be trained accordingly with the help of generative AI yes it includes lot of other Technologies deep learning neural networks Etc but still generative AI is also a base of it what is the significance creativity boost it creates enhances processes by providing very good content ideas new content ideas the new way to approach the problem efficiency it is giving a helping hand to human beings in order to be more efficient the more good you use the more productive you’ll be automates the content creation or saving time is very much important it’s a important resource now it aids to this particular Saving Time resource then personalization it generates particular personalized content as per your requirement as per the prompts you give to chat GPT that’s how it works right so it will cater various applications for the same this is the overall picture of generative AI applications now let’s talk about the next concept development environment setup how do we do this what is it all about you have to have a platform in order to work with you need to have a basement in order to build a building right so let’s learn how to to we build this particular basement so what does this thing consist it consists of few steps in order to set up a particular environment it is not dealing with much higher softwares or something from moon and stars it’s very simple you have to go to python official website and download the latest version for now it is 3.12 you can download that python into your local system system and you can execute this via command prompt right first step we have to open command prompt which we have in our local system and then we’ll have to navigate to the location where the python is installed hope everyone are having a clear idea of how do you work with Linux and Unix at least basic commands like CD change directory MK make directory so only these two commands are mostly used in this complete session I’m not going deep into advanced level of Unix Linux and all if you want to work with a command prompt you have to just use CD and MK command and you can make directory or change directory simple as that if you’re using Windows you can use command prompt or Powershell for Mac OS or Linux you can use terminal this is the platform you need in order to work with after navigating to the location where the python has been installed you can install all the libraries using pip Command right so pip install is a basic command and you can change the libraries you want accordingly first we will talk about numai numai is very well known amongst the domain called data science why the first thing is numai will always cater in order order to help the mathematical calculations also working with high level data structures and give you the complete access to the functionalities and arthema and Logics that is why data science is dealt with lot of data numbers and other elements we use numpy for the same then we talk about plask when you hear the word flask it is a library which is related to python where it is web based framework you can create web application using this particular flask framework that is the major help of using flask the next one is stream lit or stream liit this particular Library deals with visualizing the models created then you have torch torch vision and torch audio basically this Library cats computer vision models you can work with the model creation you can view the model and also you can add certain multimedia to the model created right you have this torch library in order to cater computer vision projects models Etc you have Transformers next Transformers will always help you in classification text summarization many other aspects again dealing with data and majorly we use all these liaries in machine learning artificial intelligence NLP natural language processing and deep learning also computer vision this is the applications of where this particular Library will be used using pip install we are always installing all this Library single-handedly not in Mass Library installation every Library will be installed along with the execution output command stating it has been installed it it will show you it is installed now still you don’t trust how do you check it verification of the installation is very important because since we are working with machine sometimes it might help you to have a better Vision when you verify if you don’t verify if the installation is crashed you never know it will affect your project so better verify once you install it’s very simple in order to verify as well you can open command prompt and type python double hyphen version it will ensure it Returns the installed python version what is this particular version you’re working with next you verify the installation of the libraries for that you have to just go open python interactive shell type Python and then import every Library which you have already installed if it is imported properly without any error then it is installed properly right so this is the overall development environment setup idea which you have to have and which you have to create in order to do coding in order to create certain applications or work with the project now we are in the command prompt in theoretical aspect we have known about various libraries in Python that is numai flask streamlet T Transformers let’s install the same libraries with the help of command prompt first if you could see it’s in a general path it’s in my personal path but yeah it is in C drive now in my personal laptop the location of the Python is being fetched for that I have to use CD command change directory paste the location where your python has been installed and then press enter when you do this the command prompt goes to this particular folder let’s start with the First Command pip install numile now since I’ve already been working with python a lot many times for many projects you will get a output just wait and watch I’ll click on enter it might take some time it will try to analyze what’s happening what they’re trying to install and requirement already satisfied this is what you’ll get the output that means numai is already installed in your particular system because we were already working and there is a warning message you could notice if you want to upgrade the particular Library which you’re using you can go for the version mentioned I am currently using 21.2 point3 it is suggesting upgrade for 24.1 point2 then what is the command for the same is also being mentioned here you can use that command we have now installed numai which was already existing it is given the message if in case it’s a new installation of Library how it will display let’s try it other libraries as well pip install flask and I’m giving enter let’s wait for the results again if you could see it states flask is already present that is satisfied again you have a warning regards to the version I have almost installed all the libraries but let me check for the next one stream lit if you could see how it is done downloading the streamlit library if you’re trying to install the library which is not in the current local system in your python this is how it will start loading if it is already existing this is the message which you got for numai and plk when you try to install streamlet Library which is not present in your python this is how it starts downloading and it takes 5 to 10 minutes at least to complete the download depending upon your system configuration likewise you can install all the libraries required for you into your system right so I have given two examples one how it will download the library which is not in your system if you already have downloaded the library how the message will pop up that is requirement is already satisfied that means it is already installed right so this is how you import your libraries in Python now in order to verify is your particular library is installed or not first it will try to prompt you that it is already existing if it is not it will start downloading as mentioned now again in order to verify that you have to go to python interpreter so I’ll click onto the same particular location type python here when you click enter it will go to the python interface where you can execute your code now what you do is you try to import numpy when you try to give this particular instruction to the python prompt inside the command prompt which we have logged in it will try to enter or import this numpy Library which is already existing when you type the statement import numpy if your numpy is present it will not throw up any error it will look just like this this indicates your numpy is there in the python Library folder this is how you verify the libraries which is already installed before using it or else if you mention in your code as well it will throw up an error if it is not installed before make sure you install the libraries then use it in your code this was a simple demonstration how you install and verify if the library is present in your python with the help of command prompt now let’s understand introduction to open AI GPT API how this particular thing works and what is open AI first of all what is open AI it’s a company where it will cater in order to work with chat Bots generative AI applications different kinds of models llms Etc basically it is dealing complete artificial intelligence domain which is booming nowadays open AI has a platform where you can generate the API keys and you can integrate those into your applications API features what are the features it will cater for text generation completion and conversation capabilities so talking about text generation it is always dealing with providing a new text which is not in your imagination with one small question say I want a poetry on so and so it will give you a complete poetry where it is not plagiarized it has been trained in that level it can think about writing poetry it has lots and lots of data behind how it is dealing with with that what is to be categorized there comes classification summarization and many other machine learning and data science models artificial intelligence models which is giving you the answer pre next completion if you give a prompt in a incomplete way it will try to complete that if you give with a spelling mistake it will correct your spelling and ask you back was this your IDE media do you want to search so and so thing it will question you back in a interactive conversational way what we do with chat GPT it’s the conversation how it will answer us with the help of already available data it has been trained on and it is updated every time you talk to it that’s how the model works with so these are the few features we have next comes to fine tuning and customization for specific task say you are building certain module which has been integrated to your application you’re using open AI platform you can

    generate your own model it can cater to your own set of questions say for example chat bots in some or the other shopping websites or juary shop websites it will try to ask you what you want the lots of chat Bots which will address and also will help certain percentage of customer care services without human Intervention which can be done with the help of machine 100% it will be solved other aspects it cannot a very good example for this is swiggy right you can give a set of questions which is already present where is my order delivery guy is not moving so when you put this my order is getting delayed it will give a set of answer which is already there what is the current status still if you’re not convinced by the bot answer you can go for a agent talk you can talk to a human being where they’ll interact they’ll call the delivery guy and ask what is the situation and update you something like that might happen before introducing your particular chat to directly to the agent they’ll try to solve with the help of Bot that means we are trying to reduce the work which is put upon humans we are using the technology in order to address the same this is a best example for the Fe feat which is currently in use in the apps which we use in our day-to-day life how do we get start with this API we have to just log on to open AI website create your account sign up or if you already have an account sign in login generate a API key and keep it why you have to generate a API key I’ll let you after $5 of content you have to pay in order to improvise your API key in order to improvise your API key usage right you want to know more about what is open AI how does it help for GPT API everything you can just go to the official API documentation and understand more about this now let’s understand how do we generate a open AI AP a key for that you have to go to Google type open AI login once you click on login if you have already logged in you will get two options one is to go to chat GPD another one is to for API you click on API once you click on the API this is how your open API platform look like you could see a menu here towards your left stating API keys if you click on that it will launch API keys before that I would like to tell you I was talking about the GPT models right so these are the models available for now GPT 3.5 turbo 0125 d106 and 16k these are the models you can select the model and you can work on let’s come back to API keys I’ll click on the API keys this is how the API Keys generation look like and if you want to create a new API key click click on create new secret key and you can name that particular one I’m naming it as demo you can also give the restrictions if you have to control certain things it can be a readon restricted or all just like the share option you have in your Google Drive for your Google content right so create a secret key and it will generate and display the secret key there you can copy and paste it in one particular notepad so that you can use it again and again it is taking certain time to generate the key once it is done it will display and you will also have an option called copy for it here we are it states API key is generated and you can copy the key you can press as done see you have to save the secret key somewhere because it won’t be viewed again due to security reasons that’s why you have to keep it discrete and noted in a notepad separately you cannot get it back again if you want to again you have to create a new API you cannot copy this complete API key again the created API key is listed in the list here again you have the options to edit the key you can just change the name and permission nothing else you don’t have access to again copy the complete key and you can also delete the existing key this is how your API key Page look like in open AI platform hope you are clear how to generate these and save it in a place and use it for your coding now let’s talk about flask chat gbt app we are integrating open AI source to our application that is the main agenda of it let’s understand more about this application how do we work with this and also look at the demo for the same what is the basic setup we need is as simple as that which is mentioned before you have to have python installed in your system and all the libraries mentioned to be installed in your system that’s the basic ideology for all the demonstration which is carried in the session Hereafter the components we need is flask for web framework as I mentioned we use flask of python library for web framework and then open AI GPT API for generating responses a simple logic we are taking a API key of open API putting that in your python code and then we are trying to execute the same first we will check how this particular code look like and what are the in detail step in our Google collab note I’m not executing this in Google collab I’m executing this in command prompt but for a better Clarity I’m using the online coding platform that is Google collab in order to have a good interactive and bifurcation between the text and the code right Google collab is a very good place in order to work in order to have a good python content on let’s check out the code and understand what all does it do in order to create chat GPT app using flask library in Python now here we are on the Google collab first step we have to is set up the environment as I told we will activate the virtual environment of python what is this python M V and V Let’s understand one by one python invokes the python interpreter which is already installed in your system then MV and V this option always tells python to run VV module as a script this module is used in order to create virtual environments on that that is why we try to invoke this next again you have V EnV this is the name of the directory where the virtual environment will be created and it is not mandatory that you have to keep the second V en EnV as it is you can change this to be ABCD also or you can also put it as virtual environment it is not mandatory that you have to use the same name but with M you have to use V andv this is mandatory and the second V andv is optional you can change the name accordingly naming convention can be changed according to the requirements next after doing that setup we create the flask application as I told you we are using only two commands of Unix since we are working in command prompt first is make directory M KD r that is we are creating a folder with the help of command prompt that’s it there is nothing great that’s happening creating a new folder the folder name is GPT chat app and you are trying to change the path change directory CD to that particular ular location and remember wherever you have installed your python software that folder itself these things to be created we have to first navigate to that particular python location then only we can create a new folder else there will be a execution problem and path issues after doing the folder creation we will have to create code file first is a python code file which which I would like to name it as app.py application.py again this is not mandatory you have to have AP you can name it accordingly but you have to remember what you have named while you’re executing this you have to remember the exact python file name including the cases it is case sensitive okay first we will import the flask elements first is flas library next request Json and render template then we will import the requests and also import time these are the libraries we’ll try to import which is available in Python to our particular code we will try to use request and render template also the timing in order to have the conversation between the system that is Char gbt which we are trying to create and our questions then we will initialize the flask application this is the flask application initialization syntax we will try to give a open API key this is a secured key which you should not share with anybody else or else they can utilize and you have to pay the bill for the same better you keep the API Keys very discret this is a random API key it’s a sample API key or else you can just put in your code enter your API key here this is far better rather than giving people your original API once you put this API key you will next Define the root of the homepage where it has to interact from obviously you cannot show this backend code to the user you have to have a front end you have a front end that is called index.htm there comes the second core file first one is having ap. py core python file next it has to be integrated to the front end that is index.html right we will render the particular HTML template that is why we’ll be using render template Library okay we have usage of these libraries everywhere then we’ll Define the root for chat end point which accepts the post request post request is nothing but what message you put to the GPT and what it has to respond back and this complete thing will happen with the help of Json then you get the response from gpt3 and remember there’s lots of GPT models which one you’re using you have to have the knowledge about it you have GPT 3.5 turbo 16 K you also have just GPT 3.5 turbo you have many kinds of model the current model which we use you have to mention it here and you also have to carry the input given by the user from the front end to the back end with the help of this messages the data should be transferred from the front end to back end what is the maximum limit of the response is 150 letters characters it’s not words okay it is very minimal if you want to make it more obviously you can make it 300 again it is according to the requirement you are curing for then you have to attempt to get a response from API which tries in case if it fails now comes the word of error handling the code which is not having error handling capacity is not a worthy code simple as that if something goes wrong first you have to let the system give you the message that something is wrong not directly land to a page it should be interactive and it should tell the user whatever you have entered is wrong or something has happened what has happened this particular responses should always be there for example I’m giving you possibilities it’s not that every coder will be knowing everything what they have to do right but still there are few standard error handling techniques when you work you have status code 200 when when this particular 200 status code comes 44 error comes 429 comes right how do you handle that what is the error what is the particular response you give for example if it is for 200 we can return the message to the user rather than going to a random wrong page you have to give a message an error occurred while processing the response from open API that means if your GPT is not connected prop it is not able to give response then you have to just not push that particular code to a error page you have to send an error message you have to tell this next you have 429 here we are trying to request open AI if fail status again we are trying to reattempt how many times back off retrying attempts are two we’ll try to do two time attempts and then we will go for sleep that means we are putting this particular system into sleep that it is not able to solve the more you work with it the more limit exceeding will happen and 429 also deals with if your particular open AI is out of limits it is not having any um limits left it is exceeded you have to buy new you have to put your building again it will say you have exceeded your current quota please check your plan and building details so that’s how you have to try to give error message to the user so that they understand something is happening we have to go and address because nobody will go to back end and debug what is the error right in the front end itself you have to show what is happening so this is sample example of error handling then if any other error comes more than this there are two errors which have listed if anything else comes up you have to just give the status code directly 4 not4 error or Internet disconnectivity error anything might come an error occurred while communicating with open AI is a standard default error message you can send if you don’t know what you have to do just put there is an error please decode then comes run the flask application this is the main method which we create for this code and the code execution starts from the main method here now comes the second part of it the front end which we had discussed already there and what are the complete content of that we’ll have a quick overview that is index.html here you can see people who know HTML will always know this doc type HTML you have head you have HTML Lang English and meta character set is always there you have style for your particular page and you also have the body here you have a chat box you have a text box you want a button it’s a simple thing you have to have a text box where the user will put their input click on send button so that it will interact the chat gbt in order to display the chat GPT message you have to have a label or again a text box so that’s how it will work it’s a simple JavaScript which is been used in order to have this interactivity that is fetching the information from the input and putting that to GPD and taking the response from the GPT and putting back on the front end to view for user so this is the simple fundamental function that happens in this script section how do you run this just you have to be in the location where you have created the folder that is GPT chat app right I’ll just go back and just give you overview GPT chat app that is the location where the command prom should be pointing out then you can execute python ap. py when you do this you will be able to access a browser where it is loading in this particular address what is this address why only 5,000 why not 4,000 you might question as you all know HTTP 127.0.0.1 will always deal with local hosting when you do this local hosting you have separate ports for every library or every kind of execution you do 5,000 is the port number which is allocated in every local system for flask library of python any flask web framework code execution you do it will launch on the Chrome with this particular address hope you had a complete detailed view of how this particular application will work a quick cap you have to install Python and necessary libraries then you have to create a main python code file that is app.py then client side that is frontend interface you have to make it index.html again this is as per your requirement this is a common name which we keep that’s why I’ve used the same you can create a simple HTML interface to interact with the chat GPT then you can run the application and check for the output right so now that we have understood what is the code at the back end front end and every aspect let’s execute this code and check for the output before going to the demonstration of flask chat GPT app let’s understand the folder structure I am here in the location where my python is been installed since we’ve already worked on you could see many folders here we are trying to create GPT chat app right according to our steps we’ve already done it so if you go to this particular folder you can find two different elements one is templates another one is app what is template template is actually the index file which we had discussed the HTML file app is a main program once you execute this the back file will be created if the execution is successful or not successful doesn’t matter once you run this through interpretor it will generate automatically that’s why it is present if you’re executing for the first time this will not be there okay now let’s hop on to the command prompt and check how does we work with this here we are in the command prompt and in the location where our file is am I right no I’m actually wrong we are in the location where python is now we have to enter to the folder created what is the folder we created we have to change directory to that particular folder GPT uncore chatore app this is the folder name which we generated right let me enter to that see now we are in that folder how do we execute the steps which I mentioned we have to type Python and we have to mention the app.py or the name which you have given to your main python file you have to mention that and click on enter once you click enter after executing this app.py file this is how the output looks like are we in the right output screen no it is just indicating that it is been executing it is running the location is we have to go to http 127.0.0.1 5000 the port number let’s quickly hop on to that location on our search engine any browser you can use you can go to this particular port number let’s hop on to that once you go click on HTTP the same ID where it has been launched across you will find the interface now what you have to do you have to communicate with the GPT so I’ll press hi and click on send button it will say hello how can I assist you today the next question which I ask is how are you when you do this when you send this and just a computer program so I don’t have any feedings but thanks for asking how can I help you so this is how it is trying to interact with the human being if you try to give something which is not existing still your chat GPT is not trained to that level it is a normal basic model I’ll say where do you leave I click on the send button you have exceeded your current Kota please check your plan and billing details it will not throw up this error really if your limits are exceeded right that is when it will show this error it will try to do that error handling which I’ve already mentioned so for the third conversation itself how did we get this message you might be having this particular doubt the thing is open API API key is not very much free to everything you only have access for five worth of conversation that can happen API key that can generate that is how you can converse after it exceeds $5 it will try to ask you to fill up and select the plan and do the billing right the payment should be done for the same so this is just a simple example you can enhance create you can buy a paid version and start building the projects and help your small scale business if you own any in order to have a private chat bot so customers can interact without any actual agent service required customer service you need not take it you can use the Bots there on your website right this is a simple idea this is how the execution looks like by now we have understood how does chat GPT while using flask how we can execute what are the code required and how the outputs look like now that we have understood and also saw the demonstration how how does a chat GPT app work when you create with the help of flask Library using python now let’s check out the next topic using the same flask how do you use text to image application here the simple idea is text to image generation involves creating images for textual description using AI models you will give a simple description here we are not focusing on description we are trying to get a image for the word which we give as I told cat dog any animal or what you want to fetch for significance of this particular application enhances creativity and design processes useful in various Fields like advertising entertainment and virtual environment say you want to uh get an image you can give a description cat which is sitting on a mat or dog which is sitting on a bed you can certain description you will get images in certain way or sketched cat image drawing of a cow so you can give a certain description to AI it will generate back the output for you how do you implement this particular text to image app first is we build a web application that converts text description into images again if you want to build a web framework it is about flask then you use open AI again HTML CS is for the front end that is very much mandatory and basic what are the prerequisites you want for this first is python to be installed in your system next you have to have a required library that is flas and open API and you have to have a API key from open AI this is the basic requirements it should have in order to start off with the development of this application now let’s understand what is the code for this particular app what is that purpose and what all we use here then later we will execute this hope we are clear now let’s quickly hop on to Google collab understand more about this application here we are on the Google collab first step if your python is not installed install your python if already exist ignore simple as that again create virtual environment we already had the description about each every element of this particular code statement then we activate the virtual environment by using this particular code here next comes installation of flask and open AI it’s very important to install the libraries which is necessary for your coding first place we’ll be using pip command to install flask open AI it’s a simple statement here the code line you can just execute the same then we have to create the project directory again nothing but the new folder it is named as flascore textor 2core image if you want to put some other name it’s left to you you have to go to the folder which you have created then only you can start creating your python code file and HTML code file first thing is main python application code file which is again named as app.py it gives you a proper signification it will not mix with the previous one because the folder is different so again we have to import the necessary libraries we initializing the flask application you have to have a open API key you can replace this your open API key into your original open API key how do we do that then you have rooting which has to go that is index HTML in this HTML file you have all the designs related front and related that has been fetched and you will be rooted with the help of function call generate image as a post method we’ll be using Json post method means the response which you get from chat GPT right either it might be your user input also access a post and also the response will be also post use open API to generate image based according to the prompt which is been received the size should be only this much and the number of images generated at on should be one only then the prompt which is given by the user will be pushed to open API it will get a response and then that particular image will be displayed if you want a detailed explanation of what is every line means I have it for you you can just read it what are the different elements we use and why do we use right next you have to create this HTML interface that is the front end again you have to have a text box a button and where you print your prompt and then you will put that inside the GPT it will fetch the output on the same screen right you have to have a simple text box and a button that’s it if you want to do more styling you can more welcome use CSS files and you can do it this is a general basic setup or the front end which you need and you have a script again your function call generate image here what happens it will fetch the information the prompt from the user and then it will put that particular prompt to open API once you get the response from open API it will push back the response on the front end this is the code for the sing right it’s just an interaction code between the front end and back end we’ll be using JavaScript this is how about the HTML file we’ll be using again if you want to run this code you have to type python AP . py and you have to be on the same folder where you have created at the start if you go somewhere navigate to some other location on your command prompt and if you try to give it will not execute let’s have a quick recap here first is we’ll be installing python next library is called flask and open AI later we will create a flask application that is app.py then we will also try to include the functionality of converting text to image that whatever the text we have given related image will be provided so we have to root for that and you have to have a simple HTML interface in order to have the connection between the user and the system then you have to access and run the code start the flag server and again you have to go to the same location that is the same IP address which ends with the port number 5,000 so this will be your particular location address it will run there you can execute the same now let’s quickly check how does this work in our demo now here we are in the python location of the local system we are trying to execute flask text to image app if you try to go to that particular folder you could find the same folder structure it is having a main python code and then you also have index in the template right once it is executed back file has been created so that is why they are here this is the structure now what we have to do go to command prompt type this particular location and try to execute with the help of python app.py command so I’m copying this location completely going to command prompt and changing the directory to the copied location now we are in the folder flask text to image application which has been generated we straight away try to execute this with the help of python app.py command once we do that we will click on enter this is where the flask server is been running it is active now we have to go to the location which is mentioned right here with 5,000 port number let’s hop on to that particular location once you come to this location you could see the basic HTML design which we have made and it’s our time now to give certain description regarding the image and try to generate the image I’ll give just one line of description if you want you can in detail description so that the GPT will give you a right perfect required image as per the command I’ll try to give mountain with skylight okay so let’s mention color also that is that will be good so mountain with green Skylight this is my description of a image which I need I’ll try to generate okay this is how we got the image from the GPT it has given the lights which is in green color on the sky and mountains are right here so this is how the descriptions will be taken care of the more precise description you give the more precise image you will get as an output so this is how text to image application will work with the help of flask open AI in your python which also help to generate the images for digital content creators or any kind of creative people who work in that particular Feld let’s understand how does Lang chain apps work what is Lang chain in Python overview of Lang chain Lang chain always streamlines the development process of the application and utilize the llms by offering a extensible architecture generally simple words langin is a library of python just like numpy and others okay it supports wide range of use cases generally we use Lang chain in order to create assistants chat Bots and many complex NLP tasks and data analysis aspect this is the application of using Lang chain then the framework is built with highly customizable Interiors of the code and then we also develop to tailor specific needs and we also integrate the same tailored code or module to the external data sources using API keys this is the simple work which we do with the help of L chain app it is just that we are using this library in order to create good model which acts to be a chatbot or personal assistant or any other requirement will be catered with the help of L chain application now in order to understand more about this we will try to know the case study for this Lang chain app let’s Explore More again I’m going towards Google collab let’s understand the code and later part we execute that in the command front here you have to note one thing we are not going to the Google Chrome where the IP address ends with 5,000 we are executing this in the command prompt itself this is one of the differentiation between what we have already seen and what we’re going to see let’s let’s hop on to Google collab now here we are on the Google collab what we are trying to understand what is the case study first thing personalized story generator that means it will try to take certain inputs from the user and try to generate the story for the user this project will take inputs might be the character names settings and theme of the story it will generate unique story every time you try to communicate with chat GPT 3.5 why I’m struck with 3.5 there is four and 40 that’s coming right but when you go to open API it’s still at the 3.5 version itself it is having 16k 1105 there is some other codes that’s going on it’s just a turbo GPT 3.5 you have many kinds of models but for now it is 3.5 in open API platform not talking about the chat gbt 4 or 4.0 okay don’t get confused with that steps in order to create this project very simple set up the environment collect the user inputs generate story using AI model and display the generated story simple as that first when we talk about the installing of libraries here we have to install open AI Lang chain it is related to open AI also related to python so pip install open Ai and L chain both of these libraries we have to install then in order to collect the input from the user you have to have two different python files here so that is the differentiation previous demonstration we had only one python file one front end file we used to work with the code here you have two files what does this do first one says user input. py that means we are trying to welcome the user and take the input from the user here you could see welcome to the personalized story generator you have entered the main character’s name please enter that then enter the setting of the story and enter the theme of the story for example Adventure mystery horror anything as such return the character setting theme to the particular file called story generator. py you are taking input with the help of one python file and you are trying to give that particular collected input to another python file that is story generator P from Lang chain import chain prompt text model then use user input as I told you user input file you have to take all the user input get user inputs what is collected character name settings and team this is collected you have to take this as a input and import that into this particular story generator python file this is the function where you can just create certain story according to the inputs given by the particular user then you will have a prompt you will have to work with a text model as I told you this is GPT 3.5 turbo here and Here Comes Your open API key you have to put your secret key here and then you have to execute this particular main block it will try to give you the story generated here in the print statement generated story is so and so a paragraph of a story will be displayed for you so this is this is how the main block will get executed and these are the commands or the codes which we use every code is having a self-explanatory comment that you can read and understand once again if you don’t follow it here okay this particular learning material or code is always provided no worries you can go back rework on this again then what do you do in order to display the story you have to execute the file how do you execute story generator. py here why are we not using python we have to use Python right it should be python story generator. py that’s how it will execute simple as that you will have a quick recap here first is environment setup that is you are having python in your system you have two libraries that is open Ai and L chain then you have to have your own API key which is discrete you have to create main script that is story generat data and you also have to create a subscript that is user inputs then you have to generate the story functionality that is open as chat GPT you have to use that and you have to give them the character name setting theme Etc it will develop the story and if you execute it will give back the story which is already developed as simple as that hope this is very clear for you now let’s see the demonstration what is the output and how it will work we are trying to execute personal personized story generator which we have already discussed that we are using the library called Lang chain here it is you have two different python files one is story generator one is user input it is already explained user input is used to take the input from the user and story generator is the main app you should not execute python user input. py you have to execute story unor generator. py that’s how you will get the output screen this is kind of special execution that every output is seen on the command prompt itself we need not navigate between any other locations for output what is this py cache if you click on this folder after you compile your code this is actually generated compiled python file will be generated so that is why it is here now let’s quickly hop on to our Command Prompt and try to execute this particular code file in order to do that first what we need is we have to copy this location where it is actually situated the folder of your app now we are on the command prompt we are changing the directory and pasting the location which we copied and clicking on enter we are in the folder called personalized story generator what we have to do we’ll try to execute python story uncore generator dopy once you click on enter this is how it starts executing welcome to the personalized story generator and I’ll type a name of the main character as Alise and it will ask setting of the story where it has to happen I can say Enchanted Forest I’ll give the location visualization idea for the GPT I click on enter it should be a mystery one or Adventure one or horror one whatever you can mention that I’ll mention as adventure story I’ll click on enter see the story is generated in this form you can read the story pausing the screen but yeah it will include the main character the setting of The Story also what kind of story what is the theme of the story it will try to give you the complete paragraph which you can use it for your requirement this is how a story generator will work using Lang chain you can create much more applications this is of one basic example hope this is clear for you we have executed the code we saw the output how does the story will be generated with the help of GPT which we have connected with the help of the API key let’s make life easier with python for automation you will learn to automate rep repeative tasks and even building user friendly guis what actually testing is let me take you to that right here okay so from the one simple word which we have here testing okay let’s first of all not go too much into the uh into the technical definitions or something like that if I just simply talk about that what testing is in simple General language right what do we say testing is basically to test out something right so testing means that let’s say you are having any idea or any app or something you have developed onto your own right now you just want to test that out that okay is this a thing which is ready to go in the market is this a thing that I can give to the people or something like that right so in the same procedure in the same way when we talk about testing in software development field what we see that whenever you are developing out any software any product any component let take it as a uh website take it as a application anything you are developing any product I’m just talking about here right what we have to do we have to analyze that right we need to see that okay what are the features I have added into that right after that we need to evaluate that okay what are the components in which basically we are having the errors or the bugs that are faced out why is that necessary to do that is necessary to do so that whenever your product goes into the market it is delivered into the market it is totally free of the errors or the bugs we all are familiar with that if there okay let’s say you made out a login page let me just quickly take an example here let’s say you made out a login page right in that login page basically let’s say everything is totally and clearly mentioned and you had just attached out some data base to that as well fine now whenever you are just running that out let’s say whatever the US username or whatever the password a person is saving onto that login page that is not getting saved again and again that is showing the error and you have already sent that in the market what is that that is a type of error which is coming into your product which you have already sent into the market right so that doesn’t uh go in a right way so this is the use for testing that why you new uh used to and why why basically you just need out to do out the testing and if you have done out the testing at your end for first of all you have just removed out all the errors you have removed out all the bugs which you were having into that after that now when you were just figuring out and giving it a test in that case what you just figured out that okay when I’m entering the username and when I’m entering the password so that is not getting out saved so I just need to figure this thing error figure this error or figure this bug whatever is there into that so that whenever it just gets delivered into the market whenever a person buys out this application or whenever someone logins onto this particular page so that particular person does not faces out any error right this is what we actually want what we want is that whatever the things which we are making that are absolutely correct and if a person is using those things a person does not should not actually face any type of difficulties or any types of error in that so this is the use this is the point where you need out a testing right right now here we are just generally talking about the testing thing we are not going that you are testing for a software or you’re testing for app or you’re testing for anything we just not going into that particular thing right so when whenever we just develop out a software component or you just develop out any project we need to analyze that we need to inspect its features we need to go through the features which you have added we need to evaluate whatever the what are the components you have put onto that particular application we need to analyze we need to evaluate that are these components are these features which you have added into this application added into this product are that errors or bug free and if yes so whenever and why why basically we just need to check out that is that error or bug free so that whenever you just get whenever this product of yours get delivered into the market so whenever the user uses that product product actually so they do not face any types of errors or bugs it is totally free of any error or any bug right so now this is the point where we actually need out the extensive testing of the software if I just talk about the software or if I talk about product so this is a place where you actually need out the soft testing of the software right now when is testing done I just explained you that what testing is what’s the use of testing now when is that actually done so testing is done whenever your application is built out right whenever you have built out your application after that you just test out give it different test cases give it different databases that all we’ll be discussing in um a little while so I would just give you an idea that you just give out different test cases you just def like give it out different databases and all those things so whenever your application is actually ready okay whenever your application is completely built out and that is ready to uh ready to be get tested so in that case we just do out the testing and we just deploy that into the different test servers or the test environments which we are having so that whatever the testing is to be done with that particular application we could just perform that out right let me just again quickly go over that what testing is and when is that done and why do we need that so once you develop out a software component or a product so we have to analyze and inspect its features and also evaluate the component for potential errors and bugs so that when it gets delivered in the market it is free of any bugs and errors it is the point where we need extensive testing of the software right and when it’s that done so testing is done when the application is built is ready to test and deployed in the test servers or the environment right this is what we uh I could just let see about the testing that testing is basically to test out its features that do you have any errors or bugs if yes then to clear that out and if no then it is absolutely ready to go into the market and it’s totally free of bucks and errors right hope you first of all just got the idea regarding what is testing now we’ll be discussing out that what manual testing is so we discussed already we had seen that what is testing now there are two types of testing which we have here in the selenium first of all is the manual one and second one is the automation so here we’ll be discussing about the manual testing let’s get started it let me just move on to the second one fine now um again I would see you that let’s not go to much into the technical things right here let’s simply understand that what is a meaning of word that is manual if I talk about talking manual in a simple English language so I would say manual means that anything which is done manually right anything which is done by you done by manually that simply talks about the manual and if I talk about testing so this is one thing which we have already discussed that we just imp Implement out the different test we just Implement out the different features we just do all of these things to make our product error and bug free right so here if I just say if I just combine the simple manual and simple testing things so I could just say without any technical definition or without any further like that things I could simply say that the testing which is done manually is called a manual testing isn’t that simple right yes that is so I would just request you not directly go into the technical definitions first of all try to analyze that okay what is the name of the topic simply the name of the TP topic is manual testing manual means anything to do that is manually testing you already know to test out your software to test out your products whichever you had made so that whenever they just get delivered into the market they are totally bug free right so this is where uh this man testing definition comes now if I just talk about the things in a very detail so I would say um that manual testing means that uh the application which you had made out the application which is actually developed by you the product which is developed by you so here will be particularly talking about the application okay so now from here onwards i’ be taking the word which is application so manual testing means that the application which is basically the application which is made that is tested manually by the testers this is simply what is there in the manual testing right so whenever you had made out any application and you just test that application manually right so that is actually called as manual testing now when you are doing out the manual testing so in that case what are the things that are to be performed so the test which are there actually they need to be performed manually in each and every environment using different different data sets in the starting as I mentioned about the data sets right that we take at different different data sets and even we just give out some test cases and then try to implement out the and test out our software manually test out the product test out the application actually manually right so whatever the test you are performing manually that is done under the manual testing whatever the test you are performing they need to be performed manually in every environment which you are having right now in every you’ll be giving out different different data sets after giving out that different data sets you will even note down the rate of success and the failure okay whatever the transactions you are giving whatever the data sets you are giving for each of the data set you will be noting down the success and the failure rate that all will be recorded right this is what happens in actually manual testing let’s say you develop out an application right let’s let’s that you just developed out any application in that application if you are if you just want to test that out so if you are going to go through the manual testing procedure so first of all you need to test that particular application onto every environment which will be having different different data sets for every environment and even you will be noting down what is the success rate and whatever the what is a failure rate for each of the transactions for each of the data sets on which you are performing out the things this is what is actually done in manual testing right all of the things are recorded but this is all about the manual testing first of all that what it is and how we just do out that particular thing next when I talk about manual testing so I would say that it is absolutely mandatory means it is very important it is important for uh every new developed software being before automated testing so now whenever we are going on and we just let’s see just developed out any new application you just developed out in new new software in that case it’s mandatory to go for first of all for the manual testing then go for the automated testing I would like it is mandatory for every new developed software to go under manual testing before the automated testing what is this automated testing that we are going to discuss in some few minutes right so let’s not go that too much into detail onto this automated testing but the way which I had told you that is uh breaking out the vs which is so you just break out the word automated testing into two parts first one would be automated and second one would be testing so if you are breaking out both of these and figuring out that what’s the meaning then absolutely you are right the definition which you are thinking for the automated testing that is absolutely correct right I’ll be proving this thing in within a some time right first of all let’s discuss about manual testing in detail now what happens in manual testing when you are doing everything manually you are uh testing in every environment you are testing on different data sets you are giving it different cases you are noting the success rate you are noting the failure rate all of these things when you are doing so that will absolutely require a lot of time and even a lot of efforts are required but when you are doing anything or manually when you are doing anything onto your own when something is tested manually by the testers so yeah it absolutely gives you the short of a bug free software because the machines are not too much that much automated that okay they give you the shorty of a bug free software but if you are doing anything onto your own so yes that gives you a complete short of a bug free software so if I talk once again about the manual testing so in that manual testing means the application the web application whichever is made by you or any application is tested manually by the QA testers so the test which you are performing that needs to be performed manually in every environment using a different data sets and the rate for the success and the failure transactions should be recorded as well why is manual testing so manual testing is mandatory for every newly developed software before automated testing this testing actually requires a great effort and time as well but it gives you the bug free software shity of a bug free software right this is about the manual testing now if I talk about the challenges that what are the challenges that manual testing is faced now there must be some uh challenges some limitations in the manual testing right that is the why we just in we were introduced to the an automated tool which was selenium right there should be some there must be some challenges in this particular testing and this was only the reason that why any automation testing was actually introduced used right let’s see that what are the challenges in the manual testing first it requires more time and more resources absolutely right thing so when you are doing anything manually right when you are doing anything manually that will absolutely require more time within if anything is done using any automation tool right so this was one of the challenges which was uh faced in the manual testing that it was actually requiring a more time and even the more resources as well right gy object size difference and color combinations Etc are not easy to find in manual testing so whenever you performing manual testing so in that whatever the GUI objects you have made out whatever the color combinations you had put on whatever the size differences you are facing what are the different color combinations you were trying to figure out all of these things are actually not easy to find in the manual testing right these are the things which are not really easy to find out in the manual testing right after that executing the same test again and again it is time taking process as well as tedious absolutely right so um let’s whenever you are just do out the things onto a manual testing so what we had seen there we saw that in manual testing what was happening first of all whatever the whatever the application you want to build out that was actually built after that when the test test were performed so in that case what was happening in that particular case whatever the test was done that first of all they were done in all the environments after that different different data sets were given off all that and after that different data sets you were needed to put down the success rate you were needed to record down the failure rate and all these things were actually done so these things were done manually so it was a time a very much time-taking process to do out the same test again and again same test again and again execute the same test so yeah it actually takes a lot of time and yeah that’s as well a little difficult and a little hard process as well so these were the three challenges which were faced in the manual testing so first of all it requires more time and more resources second the GUI object size difference and the color combinations are not easy to find in the manual testing and third executing the same test again and again is time taking process as well as TS right so here we discussed about the manual testing and the challenges now i’ be introducing you to that what is automation testing what do we mean from this term now again I just I would just not want you to quickly read out the slide no I do not want you to do out this thing first of all uh according to in simple English language think about what is actually automation automation means to automate any anything us using any machine right automating means to automate something and testing this testing we already are familiar with that what testing is so as basically we have that autom in automation testing we already have a framework we already have a tool set according to that only the test whichever are to be performed on whatever the applications they get automatically performed so in that you do not need to put down the rate of success the rate of failure you do not need to manually test on each and every data sets you do not need to manually give it on all the environments no these are not the cases which happen in automation testing automation actually on its own means that anything which is done automatically right so in this automation testing whatever the test you carry out all of them are actually done automatically right so let’s read out that as the name for the suggest automation testing takes the software testing app activities and executes them via an automation tool set or framework as I mentioned in the starting as well that in automation testing what happens in automation testing we just you just take out a software whatever software testing activities whatever you just want to do and we simply execute them uh through a automation tool set or a framework we already have so we just put out the things onto that automation tool set or framework and whatever are the test which you want want to perform for any software or any application whatever is done by that you could just simply perform those test onto that now if I just talk about in very simple words that what automation testing actually meant so we can say that it is a type of testing in which a tool which you have right that executes a set of task in a defined pattern automatically automatically is a essential word to add in the automation testing definition right right now this this is a type of a testing in which uh a tool automatically executes a set of tasks in a defined pattern which is automatically defined and it automatically performs and executes the set of task which are given to that right this is what comes in the automation testing now where is this method actually used out this automation testing method uses scripted sequences that are executed by test in tools already we have many scripted things written out here we have already scripted programs written out for this automation testing method we just simply use them out and they are executed by the testing tools which we have here right this tool execute examinations of the software report outcomes and compare the results with the earlier test runs now what are the things that automating testing tools can do so in that case it can execute the execute examinations of the software it can basically whatever the outcomes are there it can report that particular outcomes and even it can compare the result with the earlier test runs which were actually made out it can compare out that test and we can just see the comparison in the results for whatever the earlier test runs which you have carried out right this is what uh is here in this automation testing thing that what it what it does actually does so it executes the examinations of the software it reports the outcomes and even it Compares out the results with the earlier test runs right this is about the automation testing if I give you an overview for the automation testing so we can say that as the name suggest automation testing takes software testing activities and executes them via an automation tool set or framework so we have have a tool set of framework through which this automation testing actually takes place if I talk about this thing in much simpler words so I could say that it is a type of testing in which a tool executes a set of task in a defined pattern automatically so this automation testing method basically in this we use the scripted sequence that are executed by the testing tools and these testing tools what they do they help us to execute uh the examinations of the software the report outcomes and even compare the results with the earlier test runs right so hope you just got out the idea first of all regarding that what is manual testing what are the what were the challenges faced in manual testing that why we need to introduce the automation testing right after that the challenges we simply learned about that what automation testing is now in the next part of the video we’ll be discussing about the selenium in detail we’ll be going through the introduction to selenium so now we’ll be discussing about and I’ll be taking you through the introduction to selenium now this is the place where actually we start the selenium thing so let’s get started here let me just take you to the new slide and here we go uh first of all we’ll be going through that uh who introduced selenium that basically who is the founder or you can just say that uh who developed selenium after that we’ll be seeing that how that things are done and what is actually this selenium right so the selenium was introduced by Json Huggins in 2004 right so uh we can just say here that selenium was introduced by Jon hins in 2004 so he was an engineer at thought works so basically how does this idea coming for introducing something some automated tool so what he was actually doing he was doing his work on some web applications right he was just test making out some web application doing some work on his web applications suddenly he just required out some testing technique right he just suddenly required that okay I just need to go ahead with the testing on this particular web application which I am making now doing out the manual testing absolutely takes a lot of time a lot of efforts as well which we had already seen in the previous slides that manual testing takes first of all a lot of time and even a lot of efforts why because there which are the test which are actually there they are carried out manually first of all after that the test are performed on all the environments you need to put different different test cases for that after that whatever the rate are of the success or whatever the failure rates are there you just need to note them down and then just come to an output this is the thing which happens in manual testing and this is absolutely a long procedure a hard procedure and a lot of time-taking procedure so then basically just on how thought that there must be some tool in which we in which some automated things should be there so as to do out the testing in a easier and in a faster way so this is where Jon Huggins introduced selenium as an automated tool for the testing Frameworks right so if I just quickly talk about that who was who introduced selenium so name for that person is Jan Hagins he was an engineer at thought works so some one day he just thought of working on some applications and he required testing so at that case only he just developed out and introduced the selenium and automated testing framework or you can say as a tool right now whatever testing we do with the help of a Cel with the help of selenium or using selenium that are called a selenium testing again from the word it actually states that particular thing what is about the selenium testing so the testing which is done using the selenium right whatever the test which we perform using the selenium tool that are referred as selenium testing now what selenium actually is so it is an open-source tool first of all where you first thing that it is an open- Source tool a portable framework which is used for automating out the test administered on web web browsers see selenium is one of the first of all open source tool that is absolutely okay a portable framework that you could just use it at any place that is as well okay this is particularly used for automating out the test which are administered on the web browsers actually senum works on different different web browsers it has that capability to work upon different web browsers right whatever the test we have so basically it is actually used for automating out the test which are administered on the web browsers what are the testing uh web applications on which you can perform selenium on which you can just use out this uh framework which is selenium so that testing web applications are a shopping carts you can email programs like Gmail Yahoo all all these cases in all these places actually you could use out the selenium framework so first of all it is very open source tool so basically it means that you could just simply download that it is it does doesn’t ask you for giving out any paid work version or something that it’s totally available free of cost after that it’s a portable framework so you could just use that at any time at any case and this is used for automating out the test administered on the web browsers the testing app web applications which can be performed using selenium our shopping carts or email programs like Gmail yah these are the things which are actually performed using the selenium so hope you got the idea first of called that who introduced selenium so Jon hins was the person who introduced selenium in 2004 so who was he he was an engineer at the thought works why and how did he got out the idea for developing and introducing this selenium so he was doing some work on some web applications and suddenly he required some testing technique manual testing was a very uh long a very time-taking task and it actually requires a lot of time to do out that particular thing so this was a place there was a requirement and when Json Huggins developed selenium and automated testing tool so whatever the testing you do with the selenium these are termed as selenium testing and what is that selenium actually so it is an open- Source tool a portable framework which is used for automating out the test which are administered on web browsers it is only used for testing out the web applications such as shopping carts or email programs like Gmail Yahoo shopping carts you all are familiar with and nowadays everyone just prefer out shopping online and all those things so yeah these are the applications where you could just use out the cenum now why we should use selenium with python in the starting as well I told you that selenium is one of the tools which can be performed with the help of Python programming language and you could as well go ahead with the selenium tool when with the JavaScript as well so now what’s the use and what’s the advantages more which why and we should use cenum with python so let’s go and see that first of all we are all familiar with the Python programming language and there is no such doubt in saying that this is one of the important features of python that it is very faster and even easy to learn as well right it is a very simple language so this is the first reason that why we should prefer selenium with python so py python runs very faster absolutely right it is a very faster language it makes the use of indentation to initiate and end block so the indentation which we have in Python that is a very systematic thing even you just need to follow out as well very strictly so what what basically let’s say you just applied out some condition so when you just apply out that first of all conditions and whatever the block of code you want to uh apply basically inside that condition so first of all your condition comes on the first line and when you come to the next line so there is some space left in the starting after that you start putting out your code of block which you want to put inside that condition this is what indentation is and it actually helps us to see that okay where this particular code of block is ending where this particular is starting so it make us easy to analyze all of these things and this is why uh the use of indentation we be see right next it is very simple absolutely right the syntax which we have in Python is very much simple as well as compact yes the start simply and as well as very much compact compared to other programming languages hope you all are very much familiar with python for now so you must be very much familiar even with the features which I just told you it is very much fast to the indentation which we have here it is very simple to use as well as compact other if I just compare this with the other programming languages so these is the first reason that why we use the selenium with python second thing we have a tool which is called as web driver in actually selenium we have this tool right web driver this is a very important tool in selenium we’ll be discussing uh about this in the further videos right now for this particular thing you could understand that okay web driver is a important tool in selenium so this tool which I was telling you about web driver that has a very strong bindings of Python programming language actually right so uh this is the important tool for easy user interfaces that is web driver and it really has a strong bindings for Python programming language so this is one another reason that why we prefer selenium with python moving towards the third it runs rapidly while making a comparison of another programming languages so that is true that python actually runs rapid while making out a comparison of any other programming languages right the programming language is as well free and available as open source absolutely true so python is as well an open- Source language right whosoever needs that you could some just simply download that and use it freely in any of the environments yes this is as the case it’s not the case that you just particularly need this only environment to work for python no you could download any of the environments of your choice and there you could just download the Python programming language and simply you could just use that out so it’s we can say that it is as well free available as open source and you could simply download and use freely in any of the environments according to your choice and the last one it is easy to code and easy to read that is one of the important points one of the important features as well of the Python programming language that it is very much e easy to code out and even easy to read out right so hope you now just got out the idea regarding these Five Points these five reasons that why selenium with python let me just quickly give you an overview so python runs very faster and makes use of indentation to initiate and end blocks it is very simple as well as compact as compared to other programming languages right we have a very important tool which is web driver in selenium and that has the strong bindings for Python programming language Python programming language runs rapidly while if you just compare this with any other programming language so it runs rapidly this language is as well free and available as open source so if you just need out you could just quickly download that and freely you could just use that on any of the environments and at last it is very easy to code and the the syntaxes the programs which you write in Python program language that are easy to read as well so these were the five reasons that why we prefer selenium with Pyon now here basically we’ll be we have discussed about that what uh selenium is and why we should prefer selenium with the Python programming language in the next set of video we’ll be seeing about the advantages and the limitations for the selenium testing now we’ll be seeing that what are the advantages for the selenium testing let let’s go ahead with that first of all uh the very first Advantage for the selenium testing is that it supports the various programming languages to write the test scripts as mentioned by me in the previous video I had already told you where we discussed out the topic that why selenium with python there I mentioned that selenium is even um you can just do out the selenium testing with the other programming languages as well I took out the example for the JavaScript right so the same advantage is mentioned here that uh for writing out the test scripts there are many programming languages which are supported so whatever you are whichever language you are familiar with you could absolutely choose out that language and go ahead with that for writing out the test scripts another very important advantage and even I could just say a very good feature for selum is that it is supported on the various web browsers as well you could take M Firefox you can just go on to the Google Chrome whatever web browser you are actually using out the selenium is selenium actually supports out many of the and various of the web browsers right let’s say you take uh Firefox you take Google Chrome or any other whatever you just want to take out you can just as well go ahead with that same next it supports the pal test execution now what P test execution is in detail I’ll be discussing further for now we could just understand that uh selenium as well supports out the parallel test execution it means I could just give you an overview that parall you could perform many test onto a particular application uh this is I could just say a simple um definition regarding the parallel test execution right so selenium actually supports out that particular thing one another thing which is as well mention into the definition for the selenium as well that it is an open- Source software so you could just use that accordingly whenever you just wish out you could just download that and use it accordingly and it it basically it’s a totally open source software right next selenium as well supports out the different operating systems we mentioned I mentioned and told you that it supports out the various browsers with the supporting of the various browsers it as well supports and works on different operating system you take Windows you take Linux you take Mac whatever you just take out it supports all of these operating system right so these are some advantages of the selenium testing now what are the limitations as well I mentioned the starting that if something is having advantages it will absolutely have some of the either limitations so let’s see what are the limitations of selenium testing so I mentioned that it works on the web browsers right I mention out this particular thing so this is one of the limitation of the selenium that it only and only supports out the web based applications right whatever the application you are making it only and only supports out the application which are web based which are which basically work upon either Google or MOA Firefox it just simply supports out those web based applications only now whatever the new features are getting introduced into the cenum testing whatever new features are getting introduced they do not have aurity that they will work or not work right they may work out sometime they may not work out sometime so this is one of another limitations which is right now right right now these spacing for the selenium testing right and here are some important uh last three limitations about the selenium testing you can see that there are some used cases where the selenium doesn’t works out the selenium testing actually doesn’t works so first of the selenium cannot perform testing on the images the very first thing that it cannot perform out any of the testing onto the images the the code which is written behind this testing and all the things so that is not supports the testing on the images you you cannot automate out the captures using the selenium captur right now in today’s world right now everywhere we see out the captas whenever you just log in onto any of the web browser so you just any of the website they ask for the captas to fill out that right so selenium cannot automate that so capts are not at all automated using the selenium and at last that barcodes cannot be automated using selenium neither the Capt nor the barcodes NE neither of these are supported and can be automated using the selenium right these are some limitations for the selenium testing hope you got that but once again let me go over them so selenium supports the web- based applications only so whatever the applications you are having selenium only only supports out the web based applications it doesn’t supports out the applications which you have made onto your any of the environment or something like that it doesn’t touch that thing okay second the new features which are getting introduced so they are a little bit of ir responsible in that case we just have a doubt sometime that either they work or they may not work we are not too much or that much confirm about them so this is what we can say the irresponsibility of the new features now whatever the the selenium whatever basically selenium cannot perform out the testing on the images so if you just want to perform any test on the images so in that case selenium cannot do out that particular thing right the captures which you have these are not automated using the selenium and the barcodes are as well not automated using the selenium right so these are some of the limitations of the selenium tools finally we will cover GUI development you will learn how how to create interactive desktop applications using libraries like TK inter we will guide you through building your own GUI applications from scratch making your programs more userfriendly and Visually appealing so let’s start with graphical user interface so as I already told you about graphical user interface it allows the user to communicate with electronic devices through graphical representation when I’m talking about graphical representation stag means buttons and icons so the example of GUI is micro moft Windows as well as Mac OS and we are having several other examples also so basically what happens here here you can do the communications by interconnecting with the icons so this is the basic idea about graphical user interface now let’s see different types of graphical user interface libraries that are present in Python so we are having several libraries that are used in Python for the GUI we are having DK inter we are having KV Pi qt5 WX Python and Pi GUI so now let’s get some idea about TK inter so python TK inter is nothing but a standard GUI Library so basically when python is used in conjunction with TK inter it creates graphical user interface that is quick and simple also it gives the TK GUI toolkit a sophisticated object oriented interface so this is the basic idea of TK enter you just need to know that it’s a python GUI library and then we will see how to create a TK enter programming so now if you want to create a simple GUI application with python in TK inter so there are some certain steps that has to be followed first you have to import the module of TK inter right so you can just simply write from TK enter import srick and then you can import the TK enter module Second Step that we have to follow we have to create a main window then how to create a main window we will basically create a object of python TK in next after creating the main window now we can add multiple vets in a main window and after adding vets now we can enter into the main event Loop to perform action so now there are two primary approaches that user has to follow right so first as I already told you that you have to import the DK inter module and the module name is from TK enter import as so after importing the TK enter module now what we have to do we have to create a main window so how to create a main window I will just simply write here main window that is nothing but a variable so for creating a object I will just write here TK and parenthesis make sure that your T is capital and then in order to run the application I will just right here main window. main Loop so basically main Loop is nothing but an infinite Loop right that will run your application and then it also waits for an event and process it as soon as the window is open so this is the basic idea about how to create a basic python application with GUI now let’s see into the Practical example so what I will do now I will just write here from TK into import a so this is the basically TK inter module that I will import here and then after that I will create a main window so let me write here variable window and I will create here the object so for creating the object make sure that he is capital and now we’ll just simply write window. meain Loop so we know that main Loop is infinite Loop that will run the application so if I’m executing it you can see that we have created a simple GUI application right so this is the basic idea about python T so now you have seen that how to create a GUI app now let me here change the title so if you’re executing it now so on execution you can see that I am getting here TK right and if I want to give the title instead of TK great learning so I will just simply write here window do title and I will write here welcome to cre learning so now let me execute this and on

    execution you can see that on top we are getting welcome to create learning as a title so after this let me change the window size so I’ll just write here window do Min size and I will just write here let’s suppose bit as 100 and height is equal to 200 so if I’m executing it now you can see that this is the minimum size of this window and if I’m clicking on this button maximize then you can see that this is the maximum size so let me change the maximum size also so for that I’ll just write here window so I will just write here window do Max size and once again let me give your width is equal to Let’s suppose 3 00 and let’s take the height as 800 so on execution if you see this is the minimum size of the GUI app and this is the maximum size right so this is the basic idea about python TK inter so after creating first GUI app now it’s time to know about widgets so what are widgets so talking about widgets in general this is basically an element of GUI and in TK inter widgets are considered as a objects which represent buttons frames Etc so basically TK offers many controls and these controls are nothing but known as vets which we will be using GUI applications right so as I already told you that it represent buttons labels and text boxes so we are having different types of wigets that are available in DK enter that is label button entry check button canvas frame and many more so this is the basic idea about wigets so now let’s understand the geometric configuration of wigets so we have already got the idea about vget but if you want to organize the Vets so we need a geometry manager classes so primarily we are having three types of geometry manager classes that is pack grid and place so after adding viset I have to organize the widget so I will be using these three geometric manager classes so the first one is pack so when you are using pack functions it means that you are placing a visit on a top right coming to the grid it is used to organize the visit in the table like strcture so when I’m talking about table like structure that means row and column next we are having place so it is used to organize the visit at specific positions so I just write here X and Y so we if you are writing let’s suppose X is equal to 20 and Y is equal to 40 so that means from left to right you are placing a particular viget and now coming to the Y that means from top to bottom you are placing any viget so this is the basic idea about the geometric configuration of wigets so now it’s time to discuss about the different types of vets that are present in Python TK inter so first vet that we are having is label so when you are talking about label basically it is used to represent display box in which image or text is added so what’s the syntax of label so I will just write here simple label and in parenthesis I will write here Master comma options is equal to Value coming to the master master is nothing but the main window that you have created and here we can provide several options as an or so we can write in options BG command font image width and height when I’m talking about BG that means it’s a background right and also we are having FG also FG means foreground color so when you are writing FG is equal to Blue so your text will be of blue color right so this is the basic idea about the label widget now let’s see it into the Practical example so what I will do here right now once again I will just import the TK inter module so I’ll just write here from TK inter import as trick and then after that I have to create my main window so let me write here the variable name window and I will create the object s DK now I will just simply add widget here so I have to add here label widget right and we know that after creating the main window only we can add widget here so let me write here Elvin is equal to label so this is my label vidget right so in label here I have write here Master what’s my master master is nothing but the main window so I’ll just write here window and then in options I can leave several options so let me write here options let’s suppose I’ll just write here text and I will write here great learning [Music] so this is the label right and also if I want to organize the visit then I have to use the geometrical configuration right so let me use use here first el. pack and if you want to run the main application then I have to write here window do main Loop so if I’m executing it now so on execution you can see that create learning has been printed on the top of this window right in middle so this is about the pack geometry class now after pack if I’m just using here let’s suppose grid so we know that grid contains rows and columns right so what I will do here I’ll just write here row is equal to Z and column is equal to Let’s suppose one now if I’m executing it so on execution you can see that great learning has been printed here so as of now we have just started doing the coding so as soon as you will write more code then we can change the row and column also and then we are having one more geometry class that is place right so I’ll just write here place so basically in place if we want to organize the widget at any particular place so that we can give here X and Y and let’s suppose if I’m writing here x = 5 and Y is equal 10 so basically this is the position when I’m writing x equal to 5 that means from left to right you are placing your visit similarly when I’m writing your y equal to 10 that means from top to bottom you’re placing your visit let me execute this so on execution you can see that date learning has been printed if you want to place at any other position so you can just write here xal to 50 and Y is equal to Let’s suppose 100 and if you are executing it you can see that we are getting the output like this so this is the basic idea about the label widget so now let’s suppose we have already created a label widget of text grade learning right let me execute this so if you see this is a create learning here now if I want to add here the background color along with the foreground color then how to add it so I will just simply go on here options and I will just write here let’s suppose background color I want in blue so I just write here blue and and for foreground color I’ll just write here Simply Red let me put this blue under double quotes So now if I’m executing it you can see that on execution this great learning so foreground color will be in red color and the background color is of blue color also if you want to increase its width so you’ll just write width is equal to Let’s suppose 40 and now if I’m executing it so on execution you can see that its width has been increased so this is the basic idea so in label viget you can add more options in the form of background foreground image font many more yeah so after knowing label now if I want to add any image on my GUI app so what can I do so let me execute once again this so if you see here let’s suppose if I want to add any image here so what shall I do so first what we’ll be doing let me just remove this let me write here the variable name as I and I will just use here photo image so you can also see that is showing the photo image option right so inside this photo image what I will do here I’ll just write here file and if you see here so let me take a file from the desktop so if you see here this is the file basically and it’s in the and it’s a image file right so I’ll just go on properties and if you see this is the location so I’ll just copy this and the file name is python right so the image file is having the name python so what I will do here I just simply first put double quotes and inside that I have just copied it and pasted the location and the file name is python right so I’ll just write here python Dot and it’s in the PNG file so I’ll just write here python. PNG now so now instead of this back slash we have to just replace it with the forward slash so I will just write here here like this so now after this what I will do I will create a label so I’ll just write here El is equal to label and inside this label I have to first put Master right so my master will be here the main window so I’ll just write here window and then I will write here option so in option I will just write here image and what’s the image here so image is equal to i1 so now if I’m doing execution so on execution you can see that I am getting nothing why because I have to use here geometrical classes right so for that I will just write here let’s suppose el. pack so now you can see that in output we are getting the TK enter image here so this is the basic idea about the label wiget so the next widget that we going to discuss is button so basically button is used to display button in an application and it’s also having a very simple syntax we have to just write button make sure that b is in capital and then instead of Master our main window will be there and in options we can pass several arguments such as BG command font image width and height so here we can also use command so when you are writing command so basically when we are creating any function we will just assign that function name into the command we will understand better while doing the coding part so now let’s see the practical implementation how to create a button so for creating button I just simply write here let’s suppose B1 is the variable name I’ll write here button and I will write here window so window is my main window right and after that let me write here text so if I’m writing here text is equal to into and again I have to write here B dot I can use here pack I can use here place I can also use here GD but let me write here back now if I’m executing it you can see that this is my enter button so let me give here again the color so uh in background let’s suppose if I’m taking it as a green color and for foreground I will just take as yellow and now in execution you can see that this enter button is having foreground color as yellow and background is green so now we have seen that how to create a button widget now let’s see how to create an entry so what is entry so in entry let’s suppose if I have created a widget that is label widget and it name is username right and I want to give the entry through the user right so that’s why I will create an entry where I can write the value in the form form of a string as well as integer values too so let’s create entry here so I’ll just write here even variable and for entry I’ll just write here entry and in entry I’ll just write here window and then let me give here the width also so let’s suppose the width of this entry is 20 so I’ll just write here even do back and now I’m executing it so you can see that on execution I am getting this entry right so here I can write here string value as well as integer also so how we can use this entry so let’s suppose if you are making any website right and for that particular website uh if you want to access it you need username and password then we can use entry there and we have to create button also for that so let’s suppose that if you want to change the font style here so what I will do here I just simply write here font is equal to and uh let me write here Cali and let’s suppose that font size I want 20 so I’ll just write here 20 and now if I’m executing it you can see that the size has been increased so now if I’m writing here G it’s in Cali right now what can I do here if I’m writing here BD is equal to 5 so what is BD here so BD is nothing but it is used to represent the size of the border so when I’m writing your BD is equal to 5 then you can see that we are getting the entry button like this right so this is the basic idea about the entry so let’s make a simple GUI here so what we going to do first we going to create a label and after that entry and then we will create a button so in label I will be taking the name as employee name and entry I will just give any string values and when I’m clicking on submit button so what will happen whatever the string value that I have given in entry will be displayed so basically I will be using two labels here the first one will be having the name as employee name and another label will be having the name as nothing so whatever the string value that I’m giving to entry and if I’m clicking on submit so instead of nothing that value will be shown to us so this this is the basic idea so let me create a simple GUI now I’ll just once again write here from TK into import asck and now I will just create a main window let me give you the title also so once again I will just write here window. title and I will just write here welcome to Great learning and then and let me just uh write here window minimum size so I just write here width as let’s suppose 200 and then height I will just write here 400 so for the maximum size what I will do here here I will give the width as 400 let’s take the double of the minimum size and then height also I will write 800 and let me write here window. mean Loop because if you want to run the application then you have to write it right so so you can see that this is my output and this is the minimum size and the maximum size is this one and here on the title I’m getting welcome to create learning so these are the things that we already know right so let me create a label view so for label I will just write here L1 is equal to label and L1 is my variable right so inside this label let me write here master so Master will be here my main window and now in options uh let me write here text so in text uh let me give here let’s suppose employee name and then uh let me also give here foreground as well as background color too so foreground color let’s take here blue and background color as let’s suppose I will take as red and since this is a label basically it’s a widget so I have to organize this widget so for that I will just write here elen dot I can use also your pack but let me use this time place so in place I can place my vet at any specific position so uh let me take here x is equal to 0 and then Y is equal to 10 and on execution you can see that this is my label which name is employee name right now let me create an entry button here so for entry button I will just simply write here even is equal to entry where even is my variable and once again I will just write here window and uh let me give the and let me give here the font so I’ll just write here font so in font I will just change the font style so let me change the font style to Corbell and uh let me give the size as 18 and let’s use bd2 so why we are using BD so as I already told you that BD is used to represent the size of the borders right of an ENT so if I’m writing here BD is equal to 5 so let me write here even do entry so now what I will do now I have to place this entry right so I once again I will write here even dot let’s use here place and let me use here x is equal to 40 this time and Y is equal to 10 and if I’m executing it just now you can see that I’m getting this output right so it’s not coming perfectly so let me just adjust the size here so instead of 40 if let’s suppose if I’m writing here 80 and now if I’m executing you can see that I am getting here employee name as label and this is the entry right where I can write any name okay so let’s create a button also so for button I will just simply write here B1 is equal to button and let me give here the master as window and an option I will give here once again the text is equal to Let’s suppose enter let me give here the colors also for this button so for foreground I will use yellow and for background let me use green here so now we have to to organize this button wiet also so for that I will just write here B1 do place and let me write here x is equal to let’s take here 100 and Y is = to 40 I’m just taking random values here now if I’m executing it you can see that I’m getting like this one right so let me just rearrange it if I’m writing here x is equal to 120 okay now it’s coming in between and let’s take the Y value as 60 now it’s coming perfect right now if I’m writing here let’s suppose gorov and if I’m clicking on this enter you can see that nothing has been happening right so what I will do now I just create another label and this label will be here and I will just write here nothing now after that whatever the string values I’m writing here in this entry and if I am clicking on this enter then this instead of nothing the value must be the same that I have given so for that what I will do let me create another label so I’ll just write here L2 is equal to label and I will just write here window and after this I will just write here text is equal to nothing and let me give you a foreground as let’s suppose uh black and background let’s take background as brown and let me place this visit so I think X will be 120 here I will be taking and Y let’s take here 90 or let’s take 100 and now if I’m executing it you can see that label is not defined because L has to be Capital here now it’s good to go so on execution you can see that I’m having the another label as nothing now I have to do something that if I’m writing here gorov and clicking on this enter button then it should work right and instead of nothing I want here the value as cor up so for that what I will do here let me create a variable so now after this what I will do here uh I will just create a string where so let me create a variable V is equ Al to string where so when I’m writing here string where so basically that means we are dealing with the string values right so after creating here string where one so now what I will do here inside this entry in options I will just write here text variable and it will be equal to V because we are dealing with the string values right now I want that my button should work so for that I will create a function so whatever the function you are creating let’s suppose a function name is attech then I can use the binding functions and I will write here in button command is equal to attech attech now how to use this atte so I will create a function basically so I’ll just write here DF at Tech and now after this I will just simply write let’s suppose my variable is V right so if I want to get any value I will just write here V dog so let me create another variable X is equal to V dog right and now after this I’ll just simply write here so now what I will do here uh I just want to print this value so I have to write here print X now here as I told you that I have created two label the first label name was Employee name and another label it was written nothing so I told you that what whatever the value that I am putting into the entry it should be changed in the label whose name is nothing right so I’ll just write here L2 and I will use here config function and inside this config I will just write here text is equal to X now what will be your x value here so I have WR here x is equal to V do get right and V don’t V is equal to string where so basically we are dealing with the string values so now what I will do here I’ll just execute this and let me write here let’s suppose gorov and if I’m clicking on this enter button you can see that I am getting gorov here right and also if you see the output I’m also getting gorov in the output why because I have written here print X so now let’s make some few more changes here the name has been changed from nothing to G of and let’s change the color also so how you can change the color so in this config function itself I I will just write here background as let’s suppose um yellow and then foreground as let’s suppose blue now if I’m executing it so let me stop and rerun this and this time once again if I’m writing your gab and if I’m clicking on this enter you can see that the name has been changed along with the background color as yellow and for forr as blue so this is the basic idea about the label widget entry and the button right so this is a very simple GUI application so the next visit that we are having is check button the check button is used to show a selection of choices as check boxes let’s take an example let’s take an example of male and female we can use them as a check button now let’s see the syntax so the syntax is simple you have to just write the check button and inside the parenthesis your master will be the main window and then there are SE several options that can be passed through as an argument we can have title background as well as active background so this is the basic idea about check button now let’s see the Practical implementation so now you can see that this is the basic TK inter programming now what I will do here I will just create a variable here let’s take CV and I will just write here check button and inside this I will just write here window and then I will just write here text so as I was explaining about we can take the example of male and female so just let me write here male and then I’ll just write here CB dot let’s use your pack and now if I’m executing it on execution you can see that I’m getting mail as check button right so this is my check button so the next visit that we are having is frame so basically frame serves as a container and it is used to organize the visits now what is the syntax of frame it’s again simple you have to just write frame and and then master and then options so here as a argument we can pass several options such as BG BD cursor width and height right now let’s see the Practical implementation of this Frame so now once again I came back to py charm I just simply write here F1 variable let me create here frame and inside this I didn’t pass any Master neither options so I’ll just write here f1. back FS2 is equal to frame and I will just write here f2. pack now if you’re executing this then nothing will be executed right so what I will do now I will just create here let’s take an L1 that is label I will create here and inside this I will pass F1 as a master and then uh let me take your text so I’ll just write here text is equal to Great learning and if I’m writing here L1 do pack now so let me execute this so on execution you can see that I’m getting great learning now I will just create another label let’s take L2 is equal to label so I will just write once again here F2 and then let me write here text is equal to B and I will just simply write here L2 do pack so now if I so on execution you can see that I’m getting bottom so here you can see that basically I’m having two frame right dat learning and bottom but I want the bottom to be printed on the bottom side so for that what I will do here uh you can see this I have written here f2. back right so I’ll just write here side is equal to and I will just write here bottom and bottom will be in capital so now if I am doing the execution so on execution you can see that create learning is on the top of the window whereas whereas bottom is on the bottom side of the window right so the next visit that we are having is list box so list box is used to give a user with a list of options so basically in a simple word you can say that list box contains a list of options and as we know that list can contain different types of data values so so list box will contain a different list of options so next we are having syntax so what’s the syntax of list box once again we’ll write just list box and inside that Masters and the options that we can pass as an argument so what are the options that we can pass through an argument it’s like BG BG is background BD BD is used to represent the size of the water then we can also use Font as a option image width as well as height so now let’s see the Practical implementation of list box so in the list box practical example we will see how to remove the element from the list box and also how to insert any element or you can say items in the list box so now what I will do here I’ll just write here lb is equal to let me create a list box so this is my list box and I will just write here window and let me give the width so if I’m writing a width is equal to 20 and let me just write here lb. pack so here L should be Capital so this is my list box and if I’m executing it you can see that I got an utty list box now it’s time to insert the options in the list box so for that I will just create a list so let me give here the list as Elin and uh let’s insert several values so how to add several values in a list box let me write the name here so let me write here Tony I will write here Adin let’s take some few more names uh let me write here kga and let’s take one more name as it so these are the four values right and I want to insert in my list box so for that what I will be using uh we can use Loop right for Loop so I’ll just write here for I in my list name is Elvin right so so what’s the name of my list box so list box is having a variable name as lb so I just write here lb Dot and then I will just write here insert and let me write here end and I will just write here I now if I’m executing it so on execution you can see that I’m getting Tony admin ktia IA so what can I do now if I want to remove let’s suppose IA from here so let me create a button we have to create the button right so for button I just write here B1 is equal to button and I will just write here window and text is equal to Let’s suppose if I want to remove e so I’ll just write here remove and let me give the color also so I’ll just trite here let’s check the background color as red now for button also I have to write here B1 do back now if I’m executing it so you can see that this is the remove button but if I’m just clicking on this IA and then clicking on this remove button so it’s not removing so we know that it will not remove until and unless we are not using a command right so what is command command is nothing but a binding function so in button I will just write here command and let’s take that I will write here attech so here you can see that I have assigned at Tech in command so what does it mean it means that I have created a function whose name is edtech right so what I will do here okay let me just create a function here Def atte and inside this function what I will do here so I just simply write here lb so what is my lb lb is nothing but a list box variable and if I want to remove the element then I will use here delete function and inside this delete I will just write here anle so what do you mean by anle so that means so that means if you want want to select an item single item and if you want to remove one by one then we can use anchor here so if I executing it now so if I want to remove let’s suppose kka and if I am clicking on this remove button then you can see that it has been removed from the list box similarly for IA we can do it right so this is the basic idea about the list box so now after understanding label wiget buten widget and many other wigets it’s time to discuss about some other wigets so we are having different types of other vets available in Python DK starting from menu button menu message radio button scale scroll bar text top level spin box and pan window we’ll see some of the wigets in the Practical exam so let’s start so now let’s discuss about the radio button visit first so for creating radio button let me write here RP one and R has to be Capital so this is my radio but and as a master I will just write here window and after this I will just write here text is equal to yes and let me write here rb1 do back so on execution you can see that this is the radio button that has been created yes right let me create uh one more radio button so I will just write here rb2 is equal to radio button and once again as a master I will write here window and text is equal to no and obviously we have to place the visit right we have to organize the visit so for that once again I have to write here rb2 do pack so now you can see that I’m having two radio buttons that is yes or no but you can see that these both have been selected right so for that what I will do here I will just write here value is equal to Let’s suppose for S I’m giving the value one and value is equal to Z now if I’m executing it you can see that only one has been selecting at a time so now here if you see that these are the radio buttons right but uh let me create a button so that whenever I’m clicking on yes I want the value to be printed on my output so for that I will create a button so let me create a button so I’ll just write here B1 is equ Al to button and then I will just write here window and in button I will just give your text is equal to intoo and once again just let me write here b1. back now if I’m executing it then you can see that I got the button but if I’m clicking on this enter button you can see that nothing has been printed in my output so for that what can I do here uh let me create here a interval so I’ll just write here let’s suppose I’ll just write here V is equal to Inver so that means basically we going to deal with the integer values and after this I will just write here variable and we know that our variable is equal to V here so I just simply write here V variable is equal to V and inside the button when I’m writing command so that means we are using a binding function so so command once again I will give the name here attech and I will create the function name as attech right we know that whatever the function we are creating so let’s suppose we are creating Tech function so in the command we will assign the te here so let me just write here Dev Tech and inside this uh let me just write here simple print and V is my variable so I just write here V dog so we know that in yes we have a assign the value as one and for no the value is zero so now if I’m executing it so on execution if I’m clicking on yes and clicking on this enter so now this button will work so on execution you can see that I’m getting the yes value as one right that we have already assigned the yes value as one similarly if I’m clicking on no and then clicking on this enter button will give you the value zero so this is the basic idea about radio button so the next visit that we going to discuss about is the message box so not talking about the message box it is used to display the message box on the python applications right so what I can do here let’s create a message box so for creating a message box you have to import message box so I’ll just write here from TK into import I’ll just write your message box now my message box has been imported now what I will do here I will just simply first let me create an entry so I’ll just write here even is equal to entry and in this entry I will just write your window and let me also give you the font so in font I will just change the font style so font style is’s take as Cali and then font size as 180 right and let me give the width also so I’ll just write here width is equal to 20 and after this let me just organize this visit so I will be using even. back and now if I’m executing you can see that this is my entry box right now what I will do here let me create a button also so I will just write here V1 is equal to button and inside this button I will just write here window simple and then in this button I will just write here text is equal to let’s take into right and I will be just writing here v. pack okay so now what I want to display here in this message box so let’s suppose if I’m not writing anything and if I’m pressing on into so then it shows some message box or you can say some warning message right in the form of message box and let’s suppose that if I’m writing any string values then it shows that yeah it’s successful and it should print that part value so for that what I will do here I will just create here a in word so I’ll just write here simple V is equal to inware or instead of intw I’ll just create a string where right let me write here string value so I’ll just write here string we and uh so here what I have to write I’ll just write here text variable is equal to V right now we know that we have to write here command which is a binding function basically so command here once again I will create a function so I have to write the function name here and assign it to the command so what I will do now here I’ll just create a function here Dev at Tech and let me give the condition here so let’s suppose if I’m writing here if V Dot get so we know that V dog will give me the value is equal to equal to if I’m writing here empy so I will just write here message box now I will be using the message box here dot uh python provides several functions here for this so I just write here show warning so I will be using here so warning and here you can see that we are having the title message so in title I will just write here cin and after that I will write it’s empathy it’s simple right when you are not writing anything in the entry and if you are clicking on the enter button or the submit button then it should show something right please enter something it’s empathy so I just written here the instruction it’s empathy next I will give here the else condition else message box dot now um I can use here one more function that has been provided by python I just right here so info and then title I will just give here successful and then uh let’s suppose display I want to display here v.g so I just write here V dog so whatever the value is there I’ll get here right so now if I’m executing it now so on executing this is my entry right and if I’m not writing anything entry and clicking on this enter you can see that I’m getting caen in my title and it’s showing its empathy right so this is the message box similarly if I’m writing let’s suppose G VI now you can see that I have given here gorov in Cali 18 right so this is a Cali font style and if I’m clicking on this enter it’s showing successful gorov right so this is the basic idea about the message box let’s quickly recap what all did we learn in the session first we started with python fundamentals here we discussed regarding what python its variables data types operators tokens control statements and also basic data structures of python like tles sets lists Etc in next module that is Advanced python Concepts we focused on objectoriented programming Concepts like classes objects Etc and also we learned how inheritance works and how to handle the errors in exception handling also file handling in the next module that is data structures and algorithms we learned about arrays Stacks cues Etc and also few sorting algorithms and searching algorithms like binary search insertion sort Etc then in the next module that is python for machine learning we explore the libraries we use in Python for machine learning that is numai pandas matplot lip and seon then in in generative AI of python we also provided a overview of generative AI Concepts and python applications in this field python for automation dealt with selenium web Automation in GUI development we used python library that is TK inter in order to develop a web page so we learned all these Concepts from the basic version to the advanced version in Python hope this tutorial was helpful for you thank you happy learning

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Al Riyadh Newspaper 21 May 2025: Political Affairs, Economy, Infrastructure Development, Cultural and Historical Preservation

    Al Riyadh Newspaper 21 May 2025: Political Affairs, Economy, Infrastructure Development, Cultural and Historical Preservation

    These texts, seemingly excerpts from a Saudi Arabian newspaper, cover a range of topics including political affairs, specifically mentioning a visit by a US President and bilateral agreements, economic matters like investment opportunities and the gold market, infrastructure development with calls for metro systems and advancements in oil and gas inspection technology, cultural and historical preservation, sports news, and social issues such as inflation and healthcare regulations. They also touch upon regional conflicts and international relations.

    Saudi Arabia Hajj Preparations and Regulations

    Based on the sources, the Kingdom of Saudi Arabia undertakes significant preparations for Hajj, emphasizing the provision of services and care for millions of pilgrims and Umrah performers.

    Key aspects of Hajj preparations highlighted in the sources include:

    • Extensive Efforts and Infrastructure: The Kingdom increases efforts and invests billions in development projects to build advanced infrastructure to serve the pilgrims.
    • Security and Safety Priority: The security and safety of pilgrims are considered a top priority.
    • “No Hajj Without a Permit” Campaign: A system called “No Hajj Without a Permit” has been launched to establish regulations for everyone, including citizens, residents, and visitors. The sources state that opposition to this system is seen as an aggression against the pilgrims by instigators.
    • Continuous Operations at Entry Points: Government, private, and volunteer entities work around the clock to receive pilgrims at border crossings, such as the Al-Wadiah crossing for those arriving from the Republic of Yemen.
    • Facilitating Procedures: These entities work to facilitate the entry procedures into the Kingdom for Hajj, enabling pilgrims to perform their rituals with ease and reassurance.
    • Enforcement of Regulations: The Ministry of Interior has announced administrative decisions regarding violators of Hajj regulations and instructions . This includes penalties for those who transport individuals who do not have Hajj permits . Penalties for transporters and contributors can include a financial fine of up to 100,000 . For the person without a permit, the penalty can be a financial fine of up to 20,000 . Additional penalties may include prison sentences, deportation for residents with a 10-year entry ban into the Kingdom, and confiscation of vehicles used for transportation . The penalties are multiplied based on the number of violations and the number of individuals transported . The sources report that security forces recently apprehended 60 violators who were transporting 12 residents and 8 citizens who did not possess Hajj permits .

    The sources emphasize the ongoing commitment and extensive measures taken by the Kingdom to ensure that pilgrims can perform the great ritual with care, attention, ease, and reassurance.

    Elevating US-Saudi Relations and Economic Integration

    Based on the provided sources, the discussion of US-Saudi relations centers around a visit by the President of the United States of America, Donald J. Trump, to the Kingdom of Saudi Arabia.

    During a cabinet session chaired by the King, His Majesty expressed thanks and appreciation to President Trump for accepting the invitation to visit the Kingdom. The sources highlight discussions held with President Trump during this visit.

    The outcomes of these discussions were lauded by the Crown Prince and President of the Council of Ministers. He praised the results as contributing to elevating bilateral relations to an unprecedented historical level in numerous vital sectors. Furthermore, these outcomes are expected to enhance economic integration for both countries.

    Saudi Vision 2030 Overview

    Based on the provided sources, the Saudi Vision 2030 is discussed as a significant national initiative with ambitious goals.

    Key aspects of Vision 2030 highlighted in the sources include:

    • Ambitious and Comprehensive Nature: The ambitious Saudi Vision 2030 was launched from the Kingdom’s position, centered on all Islamic and historical fields, as well as economic ones.
    • Progress and Achievements: Most of the targets of Vision 2030 have been achieved before their scheduled time. This achievement has driven the building of a system.
    • Economic Transformation: The Vision presents an opportunity for economic transformation. Factors contributing to this context include a local product of one trillion dollars and 70% of the population being young people.
    • Focus on Key Sectors:Media: The media sector is seen as having an opportunity for economic transformation and repositioning in a rapidly accelerating digital market, supporting innovation and knowledge advancement. A national program specifically for media is part of the third phase of Vision 2030.
    • Culture: Cultural efforts align with the targets of Vision 2030 in enhancing cultural and intellectual activity and supporting national identity. An initiative like “Enriching Arabic Content” falls within the framework of Vision 2030 targets.
    • Sustainability: A study by Stanford University’s Center for Sustainable Development and Competitiveness in August 2024 discussed Vision 2030’s transformation from a development model to a sustainability model.
    • Role of the Public Investment Fund: The Stanford study also highlighted the role of the Public Investment Fund in achieving Vision 2030’s targets.
    • Soft Power: Vision 2030’s projects and programs have become a successful global model for soft power. Examples of this include utilizing sports to attract international players, showcasing Saudi sports excellence, as well as humanitarian and medical efforts like separating conjoined twins, and relief work through the King Salman Humanitarian Aid and Relief Centre regionally and internationally.
    • International Narrative: There is a need for an external media capable of telling Saudi Arabia’s story and successes in a way that resonates globally and enhances international understanding of the Vision’s goals and messages.
    • Leadership: The Vision is attributed to the thinking and follow-up of the Crown Prince.

    Overall, the sources portray Vision 2030 as a driving force behind significant developments and transformations in Saudi Arabia, impacting various sectors and contributing to the Kingdom’s global standing.

    Saudi Media Transformation and Vision 2030

    Based on the provided sources and our conversation history, the discussion about the media industry in Saudi Arabia highlights several key aspects and transformations:

    Saudi Vision 2030 presents an opportunity for the media sector’s economic transformation and repositioning in a rapidly accelerating digital market, supporting innovation and knowledge advancement [S8]. A national program specifically for media is part of the third phase of Vision 2030 [S8]. There is also a need for external media capable of telling Saudi Arabia’s story and successes in a way that resonates globally and enhances international understanding of the Vision’s goals and messages [S8].

    Recent discussions at a seminar have explored the state of the media sector, including opportunities for investment, challenges faced, ways to enhance national competencies, and the role of governance and regulation. A report on the sector was discussed, and its indicators and data are considered an important reference for decision-makers, investors, and media professionals.

    The nature of content that gains traction has changed, with “lifestyle” topics such as health, food, and psychological health becoming more attractive to the public and receiving high viewership, surpassing local news. Even breaking news is less attractive as it reaches audiences instantly through messaging applications like “X” or “WhatsApp”. This means that electronic newspapers are now primarily browsed by a segment of people looking for specific content. The concept of “the industry of meaning” was also discussed.

    While news remains a primary journalistic form, the media landscape has significantly shifted. The experience of Al-Eqtisadiah newspaper during the Corona pandemic showed that many people turned to known newspapers and official sources for accurate information. Al-Eqtisadiah has transformed from a print to an electronic newspaper. The local audience, particularly the youth majority, tends towards electronic sources. The mobile phone has become the primary source for reading news even before traditional newspapers. The electronic transformation has helped Al-Eqtisadiah gain a new audience segment and enhance its digital products.

    A challenge identified is the prevailing belief in the local community that Saudi newspapers are government-affiliated and their content should be free. There is a need to educate the public that these newspapers are not government entities and that archived materials are not provided free of charge. Some global newspapers offer specialized economic data only available on global platforms, and there are examples, like Al-Qabas newspaper in Kuwait, that have successfully implemented paid subscription systems.

    The way media is consumed has fundamentally changed. Previously, tuning into radio programs like “Here is Riyadh,” “Here is Jeddah,” “Holy Quran Radio,” and “Thursday Night Gathering” was a source of pleasure and routine. Interview programs were conducted with dignity, giving information its due importance. Today, media constantly chases new content, with news flowing instantly via phone notifications rather than waiting for morning or evening newspapers. Saudis spend a significant amount of time online, with a report by “We Are Social” indicating nearly 9 hours and 5 minutes daily on the internet, including 3 full hours on social networks, leading to what is described as media saturation for the recipient.

    Oil Market Dynamics and Energy Infrastructure

    Based on the provided sources, the discussion regarding the oil market touches upon price fluctuations, potential market impacts, and aspects of the energy sector infrastructure:

    The sources indicate that the oil market has experienced fluctuations. Specifically, the price of oil has seen fluctuations amidst fears that ongoing talks might collapse.

    The success of a potential deal could lead to a lifting of sanctions and an increase in Iranian oil exports. This outcome is expected to affect energy markets.

    Regarding the shipping side of the oil market, the sources mention improvements in the prices for spot shipping of crude oil tankers on a monthly basis in April. This improvement was supported by an expected rise in demand for loads from the Middle East. Prices for spot shipping of large tankers on Middle East routes saw a 2% monthly increase. However, prices for spot shipping of crude oil tankers from the Middle East to the West decreased by 3% on a monthly basis. Conversely, prices for Suezmax tankers on West Africa – US Gulf Coast routes increased by 15% on a monthly basis, supported by rising activity in the Atlantic basin.

    In the context of the energy sector, the sources highlight the importance of the reliability of assets in energy facilities. Ensuring this reliability contributes to attracting investments. It is considered a top priority to ensure the continuity of production and attract investors. Advanced non-destructive testing technologies are mentioned as contributing to this by increasing operational readiness through continuous condition monitoring, which reduces the chance of sudden failure.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog