Python精通-Python入门基础

导语
  入坑Python系列开始了

Python入门程序

  在学习任何编程语言开始的时候,最先学习的就是输入一句HelloWorld 那么Python怎么实现一个HelloWorld的输出呢?

  在使用的时候先使用IDLE来进行学习,首先打开IDLE
在这里插入图片描述
怎么使用IDLE来编写一个HelloWorld输出语句呢?

>>> hello world
SyntaxError: invalid syntax
>>> 
>>> hello
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    hello
NameError: name 'hello' is not defined
>>> 

会看到直接在命令行中输入的话会报错,这里就需要一个函数

print();

>>> print("hello world!");
hello world!
>>> 

注意
  在Python中,对于单个文件来说后缀名并没有什么特殊的意思,但是在多个文件中或者是在Python项目中在使用引用的时候,如果文件后缀名不是.py 就会出现错误。但是如果只是一个文件则这个文件的后缀名对于Python解释器来说可以是任意的命名。

Python程序运行方式

Python解释器+ py文件路径的方式

python test.py

Python进入到Python解释器
  上面演示的例子就是通过Python解释器来进行处理,它是一种实时编写实时运行的机制。

Python代码分析

#!/usr/bin/env python
# -*- coding:utf8 -*-
print('hello World!')

  这里注意到要给细节,就是在这段代码前面有一个#!/usr/bin/env python 为什么会有这段代码呢!
  其实在Windows中这段代码存在与否并不重要,但是在Linux中这段代码为必须的,我们都知道在Linux中我们可以直接通过./xxx 的方式去运行一个可执行文件,当我们通过这种方式来运行一个Python的可执行程序的时候它就会去找到对应路径下的Python解释器进行操作。
  当然还会注意到其实在下面第二行中还有下面这种形式,这个表示在Python2和Python3之间的区别,Python3中加与不加都不会产生影响。这主要是对中文的处理是否正常显示。也就是告诉Python解释器怎么样去编码Python文件。

# -*- coding:utf8 -*-

执行一个操作内容

完成一个简单的用户登录操作;如果用户名为root,密码为123 则显示登录成功,否则显示登录失败。

name = input("请输入用户名:");
password = input("请输入密码:");

if(name=="root" and password=="123"):
    print("登录成功!");
else:
    print("用户名或密码错误!")

在这里使用了一个input()函数,当执行的过程中会一直等待用户输入,如果用户输入了值之后才会继续向下执行。那么这个时候name就会代指用户输入的内容。

变量

  变量,表示变化的数据。

补充
在Python中单行注释使用 # ,多行注释 使用三个双引号。

a = 'hello';
b = 'world';
print(a);
print(b);

  就上面这段代码,交给Python解释器之后开始解释,解释完成之后就会交给C语言,而在C语言中,会将所有的变量都会取消掉,而变成将真正的值直接替换为变量值,也就是说在代码执行到底层的时候。就直接是

print('hello')
print('world')

  在这里变量就是代指某一个变化的值,在使用的过程中可以发生变化。对于变量也是有要求的,对于变量的名字只能由字母、数字、下划线组成,且不能以数字开头,不能以关键字命名。但是在一般使用的过程中我们使用变量的时候最好是给变量一个有明确含义的名称。

条件语句

普通的IF条件语句
  在Python中提交语句与其他语言的IF条件语句是相同的,如果要实现上面的例子,就可以使用到If条件语句。那么怎么样将实际需求中的如果否则的操作变换成为Python语言应该怎么样去实现呢?

if 条件 :
	语句1
else:
	语句2

  这里首先引入一个概念就是代码块,这里讲语句1 或者语句2 称为是一个代码块,在使用的时候,如果条件为TRUE则执行代码块语句1 否则就要执行代码块 语句2 。如下的语句输出的结果就是条件成立。

if 1==1 :
    print("条件成立")
else:
    print("条件不成立")

IF缺省else语句

if 1==1:
	print("hello World!")
other

IF 条件循环嵌套

if 1==1:
    if 2==2:
        print("hello world")
    else:
        print("error")
else:
    print("结束程序")

elif 条件判断

inp = input("输入会员级别:")
if inp=="A":
    print("一级会员")
else:
    print("其他会员")

  当然在上面的代码中可以看到只有两层的判断,但是如果在使用的时候会员的等级较多的时候那应该怎么样进行处理呢?

inp = input("输入会员级别:")
if inp=="A":
    print("一级会员")
elif inp=="B":
    print("二级会员")
elif inp=="C":
    print("三级会员")
else:
    print("其他会员")

上面这段代码就实现了对多级会员的判断。通过这样就可以实现多条件的判断。
补充
  如果在某个条件成立的时候,不想做任何的操作。那么应该怎么样去实现呢?这里可以看如下的一个例子。

if 1==1:
    //不做任何操作
else:
    print("hello");

  在上面的操作中如果写到编译器中是会报错的。实际上上面的操作并不能满足在条件成立的时候什么事情都不做,这个时候就需要一个新的关键字pass

if 1==1:
    pass;
else:
    print("hello");

  上面这段代码表示在条件成立的时候什么操作都不做。也就表示控制台什么都不会输出。

基本数据类型

字符串

  在Python中对于字符串的概念与其他语言中的基本类似。在Python中将用引号引起来的东西就是字符串。

name1 = "nihui"
name2 = '啊哈哈'
name3 = """nihui"""
name4 ='''我是大帅哥'''

  在上面的代码中会发现字符串不但有双引号引起来的叫做字符串还有单引号引起来的字符串,还有三个引号引起来的。这些都叫做字符串。
注意
  只有上面四种引号的情况才可以被称为是字符串,如果出现其他形式则不是字符串。
字符串加法
  在Java中可以实现两个字符串的拼接,其实就可以看做是两个字符串相加,其实他与数学意义上的相加还是有一定的区别的。

n1 = "hello "
n2 = "nihui"
n3 = n1+n2;
print(n3)

会看到上面代码的运行结果是hello nihui。当然这里演示的是两个字符串相加,也可以是多个字符串相加
字符串乘法
  字符串的乘法表示什么意思呢?它表示让一个字符串重复对应的次数

a = "nihui"
b = a*10;
print(b)

上面代码的结果为nihui重复10次。

数字

  数字,在Python中所定义的数字就是我们日常中用到的数字,可以是整数也可以是浮点数(也就是小数)。

age = 12;

 对于数字来说就有如下的一些基本的运算操作

基本运算

  Python常用的基本运算符有以下一些

符号描述
+加法
-减法
*乘法
/除法
**乘方
%模运算
//求商运算

加法

数字的加法
  表示两个数字相加的结果
两个整数相加

a = 1;
b = 2;
c = a+b;
print(c);

两个浮点数相加

a = 1.1;
b = 1.2;
c = a+b;
print(c)

两个字符串相加

a = "hello"
b = "world!"
c = a+b;
print(c)

  上面所看到的都是加法运算,下面就来看看几个不正常的加法运算。

浮点数与整数相加

a = 1.1
b = 5;
c = a+b;
print(c)

会看到最后的结果是6.1

a = 1.122233333
b = 5;
c = a+b;
print(c)
print(type(c))

输入结果如下

6.1222333330000005
<class 'float'>
Process finished with exit code 0

字符串加数字

a = 123;
b = "hello"
c = a+b;
print(c)
print(type(c))

输入结果

Traceback (most recent call last):
  File "/Users/nihui/PycharmProjects/Learn/day10/s1.py", line 24, in <module>
    c = a+b;
TypeError: unsupported operand type(s) for +: 'int' and 'str'

会发现报错了,意思是int类型和str类型不能相加,也就是说在Python中只能是相同类型的数据才可以做加法操作。

扩展
编写程序实现1+2+……+100的操作
第一种方式实现

i = 1;
sum = 0;
while(i<=100):
    sum = sum+i;
    i = i+1;
print(sum)

第二种方式实现

sum = 0;
for i in range(0,101):
    sum=sum+i;
    i=i+1;
print(sum)

减法

  表示两个数相减的结果

两个整数相减

a = 2;
b = 1;
c = a-b;
print(c);

两个浮点数相减

a = 231.13;
b = 123.12;
c = a-b;
print(c)

运算结果如下
108.00999999999999
会看到利用数学计算的结果应该是108.01,在这里为什么会变成这个样子呢?这个留到后面再说。

两个字符串相减

a = "hello"
b = "world!"
c = a-b;
print(c)

提示错误结果

Traceback (most recent call last):
  File "/Users/nihui/PycharmProjects/Learn/day10/s1.py", line 55, in <module>
    c = a-b;
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Process finished with exit code 1

表示字符串类型数据是不能有减法操作的。

扩展
利用减法操作实现1+2+……+100的操作

def add(n):
    if n==1:
        return 1;
    return n+add(n-1);
print(add(100))

上面这种方式使用到了一个递归的概念,这些东西在后面会提到,请大家持续关注哦!

乘法

  表示两个数的乘积
两个整数相乘

a = 45;
b = 2;
c = a*b;
print(c);

两个浮点数相乘

a = 1.12;
b = 123.12;
c = a*b;
print(c)

字符串相乘

a = "hello";
b = "world";
c = a * b;
print(c)

报错结果

Traceback (most recent call last):
  File "/Users/nihui/PycharmProjects/Learn/day10/s1.py", line 77, in <module>
    c = a * b;
TypeError: can't multiply sequence by non-int of type 'str'

Process finished with exit code 1

整数与字符串相乘

a = 10;
b = "hwoo";
c = a*b;
print(c)

输出结果

hwoohwoohwoohwoohwoohwoohwoohwoohwoohwoo

表示10个相同的字符歘连接

除法

  表示两个数做除法
两个整数相除

a = 4;
b = 3;
c = a/b;
print(c)

输出结果

1.3333333333333333

两个浮点数相除

a = 12.56;
b = 3.14;
c = a/b;
print(c)

输出结果

4.0 

乘方

  表示A数的某次方

在Python中表示这样的操作有如下的代码表示

a = 2**4;
print(a)

输出结果

16

上面的运算表示2的4次方,也就是16

求模(求余数)

  表示两个数相除的余数

a = 17%3;
print(a)

运行结果

2

上面的运算,表示17 除以3商是5,余数为2 ,运算的结果就是2;

求商

  表示整除部分的结果

a = 17//3;
print(a)

输出结果

5

跟上面结果一样,上面结果表示取余数,这里的结果表示取商。也就是说整除部分的结果。

补充
  上面两个结果可以有一个问题,就是求某个数是否是一个偶数。

number = input("请输入一个数:")
if number%2==1:
    print("这个是一个奇数")
else:
    print("这个是一个偶数")

运行上面结果会发现会报错

请输入一个数:9
Traceback (most recent call last):
  File "/Users/nihui/PycharmProjects/Learn/day10/s1.py", line 179, in <module>
    if number%2==1:
TypeError: not all arguments converted during string formatting

Process finished with exit code 1

  不是所有参数都在字符串格式化期间转换,为什么会是这个样子呢?这个等到后面学习的过程中就会知道。这里我们不使用这种方式。而是使用直接指定值的方式来进行操作

number = 9;
if number%2==1:
    print("这个是一个奇数")
else:
    print("这个是一个偶数")

可以通过上面的内容来决定是否是奇数还是偶数。而对于上面的报错,如果有兴趣的可以自己研究,或者是在后面的内容中会提及到。这里先简单的提示一下与数据类型有关可以使用type()函数测试一下input()所输入的数据类型是什么?

循环

 说到循环就不得不提经典的两个循环,一个是while循环一个是for循环。在不同的编程语言中对于循环的实现是不一样的。这里先从一个死循环开始。

死循环

  什么是死循环?死循环的意思是说一旦循环开始就无法结束并且一直循环。那么怎么编写一个死循环呢?

import time
while 1==1:
    print("nihiu",time.time())

会看到上面这段代码的输出结果其实是一些带有时间戳的输出,并且这些时间是不同的,也就是说这段代码一直在执行输入操作。

0025
nihiu 1572097999.440037
nihiu 1572097999.440049
nihiu 1572097999.4400609
nihiu 1572097999.440073
nihiu 1572097999.4400902
nihiu 1572097999.4401019
nihiu 1572097999.440114

  整个的While循环就被称为是一个死循环。条件一直成立,没有办法退出这个循环操作,就会导致一个死循环。导致循环后面的代码无法执行。

正常循环

while 条件:
	代码块1;

表示如果条件成立就执行代码块1,如果条件不成立就自动不执行。

import time
count = 0;
while count<10:
    print("nihiu",time.time())
    count=count+1;

上面这段代码就是可以正常执行退出的代码。

补充
使用while循环输出 1 2 3 4 5 6 8 9 10这样的结果

count = 1;
while count<=10:
    if count==7:
        pass;
    else:
        print(count)
    count=count+1

上面说到了while循环这里简单的说一下for循环,在Python for循环是以如下的方式实现的

for i in range(1,10):
    print(i)

range(),表示一个范围,for表示从整个范围中进行循环。它并不像是其他编程语言中的那样。

总结

  上面的内容从最基础的开始总结了一些在Python中一些基础知识。把实际开发中经常使用到的基础知识并且补充了其中的一些例子。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值