欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 学习第二章

程序员文章站 2023-02-20 18:32:02
本章内容 一、数据类型 在内存中存储的数据可以有多种类型。 在 Python 有五个标准的数据类型 数字 Python 支持四种不同的数字类型 int (有符号整数) long (长整型) float (浮点型) complex (复数) 字符串 字符串或串(String)是由数字、字母、下划线组成 ......

本章内容

  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

赋值运算符

运算符 描述 实例
= 简单的赋值运算符 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("退学吧")

四、表达式 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]

五、表达式 while 循环

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

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

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

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

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