为什么编程语言中要有类型
类型有以下几个重要角色:
- 对机器而言,类型描述了内存中的电荷是怎么解释的。
- 对编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。
- 对程序员而言,类型可以帮助他们命名、组织概念,帮助编纂文档,支持交互式编辑环境等。
以上观点是 Edwin Brady 在《Type-driven Development with Idris》中的说法。
一、数据类型与数据转换
1. 数据类型
1.1 整形
任何仅含数字的序列在 Python 中都被认为是整型
>>> a = 0
>>> b = 100
>>> c = -2
>>> d = 0x50
>>> 0b0101
5
>>> type(0b0101)
<class 'int'>
进制在 Python 中的表示形式
>>> 11 # 十进制
>>> 0b01011 # 二进制
>>> 0o13 # 八进制
>>> 0xb # 十六进制
1.2浮点型
带小数点的数字, 就是平常我们说的小数。
0.1
-0.7
1.3字符串类型
s1 = "www.qfedu.com"
s2 = 'yangge'
print (
"""
hello
word
"""
)
----result------------
hello
word
1.4布尔类型
布尔值只有两个
-
True
表示真 -
False
表示假
True
False
1 == True
0 == False
------------典型案例--------------------------
a= False
b = 0
a == b
True //即使 a = b 他们两个id也不相同
id(0)
1945857024
id (False)
1945366720
2.数据类型之间的转换
2.1 把其他类型转换为整型
# 转换
>>> int(0.1)
0
>>> int(0.9)
0
int
不能对字符串类型表示的浮点数进行转换
In [52]: int('123.9')
--------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-52-843b2aecee10> in <module>()
----> 1 int('123.9')
ValueError: invalid literal for int() with base 10: '123.9'
2.2 把其他类型转换为浮点型
# 转换
>>> float(1)
1.0
>>> float('1')
1.0
>>> float('-1')
-1.0
>>> float(-1)
-1.0
>>> float('1.3')
1.3
2.3 把其他类型转换为字符串
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str(True)
'True'
>>> str(False)
'False'
>>>
2.4 把其他类型转换为布尔型
image三、扩展进制运算
image image四、运算符
1. 基本算术运算符
n = 1 + 100
print(n)
print(100 / 4)
print(100 // 4) #除数取整
print(2 ** 10) #幂数相乘
print(10 % 3) #取余数
// 累加 累乘 累除 等等
n = 0
n +=1
n *=3
print(n)
2运算的判断
2.1 值判断
image2.2 逻辑判断和成员判断
image典型事例:
n1 = 100
n2 = 100
s1 = 'hello'
s2 = 'hello'
b = n1 == n2 and s1 != s2 //并判断
print(b)
b = n1 == n2 or s1 == s2 //或判断
print(b)
//成员判断
s = 'hello'
print('h' in s )
print('lo' in s)
print('hle' in s )
//not的使用:判断一个变量是否为真
r1 = True
r2 =False
if r1:
print('ok')
if not r1:
print('ok') //不正确非输出
if not r2:
print('ok')
2.3 链式判断
image3. “假” 在各种数据类型中的表示
image五、流程控制语句
1. if 判断语句
基本的语法格式:
if 条件语句: # 注意这里必须以英文的冒号结束
条件语句为真时,执行的语句
n = input("输入数字>>:")
n = int(n) # input 接收到的数据,都是字符串类型
if n == 5:
print('相等')
n = input("输入数字>>:")
n = int(n)
if n == 5:
print('相等')
else: # else 后边必须有英文的冒号
print('No')
n = input("输入数字>>:")
# 必须输入数字来测试
n = int(n)
if not n:
print("空值")
elif n == 5:
print('ok')
elif n > 5:
print('大了')
else:
print('小了')
2. if嵌套语句
n = input("输入数字>>:")
if n.isdigit():
f_n = int(n)
if f_n == 5:
print('ok')
elif f_n > 5:
print('大了')
else:
print('小了')
else:
print('请输入数字')
典型案例展示:嵌套语句
n = input("星期日你有空吗?")
if n == "yes":
inp = input("带身份证了吗?")
if inp == 'yes':
print("去如家 app")
else:
print("去我家")
else:
print('out')
3. while循环
方法一:
while True:
n = input("输入数字>>:")
n = int(n)
if n == 5:
print('相等')
break
elif n > 5:
print('大了')
else:
print('小了')
方法二:
c =7 //whille 赋值判断
while c <10:
c +=1
print(c)
n = input("输入数字>>:")
n = int(n)
if n == 5:
print('相等')
break
elif n > 5:
print('大了')
else:
print('小了')
4. 迭代
- 什么是迭代
迭代 是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。
每一次对过程的重复被称为一次“迭代”。
- for 循环(英语:for loop)
是一种编程语言的迭代陈述,能够让程式码反复的执行。
它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器。
这使得for循环能够知道在迭代过程中的执行顺序,记住上次被循环元素的位置。
for i in 'hello world':
print(i)
range(n)
产生一个可被循环的整数序列,默认序列的元素从 零 开始
产生的元素数量是 n
个
案例一:
for i in range(5):
print(i)
案例二:
for i in range(1,11):
print('玫瑰:',i)
break (只能跳出最近的循环或者迭代)和 continue
for i in range(0, 10):
print(i)
if i < 3:
inp_num = int(input(">>:").strip())
# inp_num = int(inp_num)
if inp_num == 15:
print('You get it')
break
elif inp_num > 15:
print("高了")
else:
print("低了")
else:
print("Game over")
break
for i in range(2, 10, 2):
print("循环到", i)
if i == 4:
continue //只终端这一条后续继续执行
print(i)
if i == 6:
break
range(开始索引号:结束索引号:步长)
其道理和切片一样
扩展知识
for … else
•1. 当 for 循环体正常执行完毕时,再执行一下 else 后面的代码
•2. 当 执行了 break 后,就不再执行 else 后面的代码了
for i in range(2):
if i == 10:
print('get it')
n = i
break
else:
print("Nothing")
6. 猜数游戏
要求:
- 提示用户输入一个数字 inp = input()
- 判断用户输入的值是否等于 18 == inp
- 允许用户尝试 3 次
- 假如 3 次机会都没有猜对,就再次提示用户是否继续
- 用户输出
y
,就再给 3 次机会。 输入n
则退出游戏
n = 0
while n < 3:
bef_n = n
n += 1
# 1. 提示用户输入一个数字 inp = input()
num = input("输入数字:")
# 2. 判断用户输入的值是否等于 18 == inp
if not num.isdigit():
print("请输入数字")
n = bef_n
continue
num = int(num)
if num == 18:
print("猜对了")
elif num > 18:
print("大了")
else:
print("小了")
# 3. 允许用户尝试 3 次
# 4. 假如 3 次机会都没有猜对,就再次提示用户是否继续
if n == 3:
while True:
inp = input("是否继续,[y:继续游戏, n:退出游戏]")
if inp == 'y':
n = 0
break
elif inp == 'n':
exit('退出游戏')
网友评论