专栏首页python3Python 学习第二章

Python 学习第二章

本章内容

  1. 数据类型
  2. 数据运算
  3. 表达式 if ...else 语句
  4. 表达式 for 循环
  5. 表达式 while 循环

一、数据类型

   在内存中存储的数据可以有多种类型。

   在 Python 有五个标准的数据类型

  1. Numbers (数字)
  2. String (字符串)
  3. List (列表)
  4. Tuple (元组)
  5. Dictionnary (字典)

数字

  Python 支持四种不同的数字类型

  • int (有符号整数)
  • long (长整型)
  • float (浮点型)
  • complex (复数)

字符串

  字符串或串(String)是由数字、字母、下划线组成的一串字符。

print("我爱你,我的国!")

  这里说一下字符串拼接,在第一章的时候最后一张图显示出字符串拼接。这里我们演示一下怎么用,先看个简单的程序如下:

#班里面有10人,来了5人,现在有多少人?
student_number=10
come_number=5
new_number=student_number+come_number
print("班级现有",new_number,"人") # 没用字符串拼接
#班里面有10人,来了5人,现在有多少人?
student_number=10
come_number=5
new_number=student_number+come_number
print("班级现有"+str(new_number)+"人")  #采用字符串拼接

  这里面new_number 数据类型是 int 类型,要通过 str() 转换成字符串(详见第一章介绍)。然后通过 + 号进行拼接

列表

  List(列表) 是 Python 中使用最频繁的数据类型。

  基本操作:

    • 索引
    • 切片
    • 追加
    • 删除
    • 长度
    • 切片
    • 循环
    • 包含
a = ["1","2","3","4"]
b = a[1]
c = a[0]
d = a[1:3]      #提取列表中 a[1]和a[2] 用到切片功能,后面在详细的学
print(b)    #b = 2
print(c)
print(d)      #d = ["2","3"]

元组

  元组是另一个数据类型,类似于List(列表)。

  元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

  创建元组

age=(11,12,13,43,33,23)
print(age)

 字典

  字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

  两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

  字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

person={"name":"xp","age":24}
print(person)

更多内容:猛戳这里

二、数据运算

根据这几天学的和查阅资料,整理出以下几种数据运算,当然有些我自己还没练习,先整理出来,后面用到再重点介绍。

 算术运算

运算符

描述

实例

加——两个数相加

a=1  b=2    a+b 输出结果为 3

-

减——两个数相减

a=4  b=2    a-b 输出结果为 2

*

乘——两个数相乘

a=1  b=2    a*b 输出结果为 2

/

除——两个数相除

a=4  b=2    a/b 输出结果为 2

%

取模——返回除法的余数

a=5  b=2    a%b 输出结果为 1

//

整除——返回商的整数部分

a=5  b=2    a//b 输出结果为 2

**

幂——返回x的y次幂

a=5  b=2    a**b 输出结果为 25

比较运算

运算符

描述

实例

==

等于——比较对象是否相等

a=1  b=2  a==b 返回false

!=

不等于——比较两个对象是否不相等

a=1  b=2  a==b 返回True

>

大于——比较两个对象谁大

a=1  b=2  a>b 返回false

<

小于——比较两个对象谁小

a=1  b=2  a<b 返回ture

>=

大于等于——比较两个对象的关系

a=1  b=2  a>=b 返回false

<=

小于等于——比较两个对象的关系

a=1  b=2  a<=b 返回false

逻辑运算符

运算符

描述

实例

and

a=false  b=ture   a and b =false

or

a=false  b=ture   a or b =ture

not

a=false  b=ture   nat(a and b) =ture

逻辑运算符真值表

  and 真值表

and

1

0

1

1

0

0

0

0

 or 真值表

or

1

0

1

1

1

0

1

0

not 真值表

not

1

0

0

1

赋值运算符

运算符

描述

实例

=

简单的赋值运算符

a=3 b=a   b 的输出结果为 3

+=

加法赋值运算符

a=3  c=1  a+=c   a 的输出结果为 4     等价于a=a+c

-=

减法赋值运算符

a=3  c=1  a-=c   a 的输出结果为 2     等价于a=a-c

*=

乘法赋值运算符

a=3  c=2  a*=c   a 的输出结果为 6     等价于a=a*c

/=

除法赋值运算符

a=4  c=2  a/=c   a 的输出结果为 2     等价于a=a/c

%=

取模赋值运算符

a=9  b=5  a%=b  a 的输出结果为 4    等价于a=a%b

//=

整除赋值运算符

a=49  b=5  a//=b  a 的输出结果为 9    等价于a=a//b

**=

幂赋值运算符

a=2  b=3  a**=b  a 的输出结果为 8    等价于a=a**b

位运算

运算符

描述

实例

&

按位 与 运算符

a=11  b=2   (a&b)=2     二进制:0000 0010

|

按位 或 运算符

a=11  b=2   (a|b)=11    二进制:0000 1011

^

按位 异或 运算符

a=11  b=2   (a^b)=9     二进制:0000 1001   (取不相同的位)

~

按位 取反 运算符

a=11   (~a)=-12     二进制:1000 1100

<<

左移动运算符

a=11  (<<a) =22    二进制:0001 0110

>>

右移动运算符

a=11  (<<a) =5     二进制:1000 0101

  注意:按位 午饭运算符,高位为1符号位为1为负数,负数在计算机以反码形式存储,反码 = 二进制取反(符号位不变)+1。所以 a = 11 二进制位:0000 1011

取反后为:1111 0100  ——> 1111 0100-1 = 1111 0011 ——> 取反: 1000 1100 = -12

  问题:a = 11 c=a>>1  那么 a 的最低位移到高位上,后面的一次向右挪一位,那么高位上位1,为什么不是负数呢?结果却是5, 二进制位: 1000 0101

运算符优先级

运算符

描述

**

指数 (最高优先级)

~ + -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,取模和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

位 'AND'

^ |

位运算符

<= < > >=

比较运算符

<> == !=

等于运算符

= %= /= //= -= += *= **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

更多内容:猛戳这里

三、表达式 if ...else 语句

 缩进:缩进级别必须保持一致

  Tab 键 != 4个空格

  IndentationError: expected an indented block  语法错误

实例一:猜数字

1 ge_of_princal = 56   
2 guess_age = int(input(">>:"))
3 if guess_age == age_of_princal:
4     print("yes")
5 elif guess_age > age_of_princal:
6     print("太大了,往小的猜")
7 else:
8     print("太小了,往大的猜")

 实例二:成绩等级划分

 1 score = int(input("score:"))
 2 
 3 if score > 90:
 4     print("A")
 5 elif score > 80:
 6     print("B")
 7 elif score > 70:
 8     print("C")
 9 elif score > 50:
10     print("D")
11 else:
12     print("退学吧")

实例三:比较大小

 1 #比较三个数的大小
 2 
 3 max_number = 0
 4 number1 = int(input("number1="))
 5 number2 = int(input("number2="))
 6 number3 = int(input("number3="))
 7 if number1 > number2:
 8     max_number = number1
 9     if max_number > number3:
10         print("最大值为:",max_number)
11     else:
12         max_number = number3
13         print("最大值为:",max_number)
14 else:
15     max_number = number2
16     if max_number > number3:
17         print("最大值为:",max_number)
18     else:
19         max_number = number3
20         print("最大值为:",max_number)

四、表达式 for 循环

   for x in ...:

name=['xp','qa','ws','ed']
x=0
for x in name:
    print(x)

  执行这段代码,会依次打印 name 的每个元素

xp
qa
ws
ed

  比如我们想计算1-100的整数之和,从1写到100有点困难,利用 Python 提供的 range() 函数,可以生成一个整数序列,再通过 list() 函数转换成 list 。

sum=0
x=1
for x in range(101):    # range() 函数生成(0,100)整数序列
    sum=sum+x          #这里一定要注意缩进
    print(sum)

   range() 函数 可以生成一个整数序列,通过 list() 函数转换成 list (列表)

  比如:生成一个数列 [0,1,2,3,4]

list_number=list(range(5))
print(list_number)

  代码打印结果:

[0,1,2,3,4]

  如果生成1~100之间的奇数怎么实现呢?

1 for i in range(1,101,2):
2     if i % 2 ==1:
3         print("loop:",i)

View Code

  也可以利用步长来实现:

for i in range(1,101,2):
        print("loop:",i)

五、表达式 while 循环

   实例:编写一个登陆接口,输入用户名和密码,认证成功后显示欢迎信息;输错三次后程序退出,不能再输入密码。

 1 n = 3
 2 user_name = "li"
 3 pass_name = "123456"
 4 while n>0:
 5     name = input("请输入用户名:")
 6     password=input("请输入用户名密码:")
 7     if name == user_name and password == pass_name:
 8         print("欢迎进入....")
 9         break
10     else:
11         n=n-1
12     if n==0:
13         print("该用户名被锁定")
14     else:
15         print("密码输入错误,还有", n, "次机会")

  while 的另外一种程序,附带解释图

 1 _user = "li"
 2 _passwd = '123'
 3 counter = 0
 4 while counter <3:
 5     username = input("Username:")
 6     password = input("Passworld:")
 7     if username == _user and password == _passwd:
 8         print("Welcome %s login...."%_user)
 9         break
10     else:
11         print("Invalid username or password!")
12     counter += 1
13 else:
14     print("你行不行啊")

  上面程序是利用while循环实现,这里我们用for循环试试

 1 _user_name = "xp"
 2 _user_password = "12345"
 3 for i in range(3):
 4     user_name = input("User_name:")
 5     user_password = input("User_password:")
 6     if user_name == _user_name and user_password == _user_password:
 7         print("Welcome login....")
 8         break
 9     else:
10         print("Invalid username or password!")

  实例打印1~100之间的偶数部分

1 #打印1~100之内的偶数部分
2 even_number = 1
3 while even_number <= 100:
4     even_number +=1
5     if even_number % 2 == 0:
6         print(even_number)

View Code

  未完待续........

  有什么不对的地方请大家多多指教,相互交流学习。尽量将自己学会的通过博客给大家展示出来,也希望大家不要着急。

大家也可以关注我的博客与我互动学习、交流。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python全栈开发之基础语法

    要理解深浅拷贝需要理解下面的概念 变量->引用->对象->切片->拷贝 变量是便利贴 对象是被分配的一块内存,存储其代表的值 引用是自动形成的从变量到对象的指针...

    py3study
  • Python学习—数据类型、运算符、条件

    ASCII编码: 1字节(bytes) = 8位(bit) 一个英文字符占一个字节,

    py3study
  • python3第三天(运算符)

    py3study
  • 微课|玩转Python轻松过二级(2.2.1节):算术运算符

    Python小屋屋主
  • 运算符重载

      C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符...

    猿人谷
  • C#基础知识系列四(运算符汇总)

       本节主要来讲C#中的各种运算符。主要包括is运算符、as运算符、checked和unchecked运算符、sizeof运算符、空接合运算符(??)、&和&...

    aehyok
  • 【Go 语言社区】Go语言运算符

    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 Go语言有丰富的内置运算符和运算符提供的以下几种类型: 算术运算符 关系运算符 逻辑运算符 位运算符 赋...

    李海彬
  • Golang语言--运算符

    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 Go语言有丰富的内置运算符和运算符提供的以下几种类型: 算术运算符 关系运算符 逻辑运算符 位运算符 赋...

    李海彬
  • Go语言运算符

    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 Go语言有丰富的内置运算符和运算符提供的以下几种类型: 算术运算符 关系运算符 逻辑运算符 位运算符 赋...

    李海彬
  • python 运算符

    郭大侠

扫码关注云+社区

领取腾讯云代金券