Python基础学习笔记2

Python3 数据类型转换

隐式类型转换

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型。

我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

num_new = num_int + num_flo  OK

整型和字符串类型运算结果会报错,输出 TypeError。 Python 此时无法使用隐式转换,需要显示转换。

print(num_int+num_str) 报错

显式类型转换

int(2.8) 强制转换为整型
float(2) 强制转换为浮点型
str() 强制转换为字符串类型
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。

Python 推导式

列表推导式

过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母:
实例
>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
>>> new_names = [name.upper()for name in names if len(name)>3]
>>> print(new_names)
['ALICE', 'JERRY', 'WENDY', 'SMITH']
计算 30 以内可以被 3 整除的整数:
实例
>>> multiples = [i for i in range(30) if i % 3 == 0]
>>> print(multiples)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

字典推导式

使用字符串及其长度创建字典:
实例
listdemo = ['Google','Runoob', 'Taobao']
 将列表中各字符串值为键,各字符串的长度为值,组成键值对
>>> newdict = {key:len(key) for key in listdemo}
>>> newdict
{'Google': 6, 'Runoob': 6, 'Taobao': 6}
提供三个数字,以三个数字为键,三个数字的平方为值来创建字典:
实例
>>> dic = {x: x**2 for x in (2, 4, 6)}
>>> dic
{2: 4, 4: 16, 6: 36}

集合推导式

计算数字 1,2,3 的平方数:
实例
>>> setnew = {i**2 for i in (1,2,3)}
>>> setnew
{1, 4, 9}
判断不是 abc 的字母并输出:
实例
>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'d', 'r'}

元组推导式(生成器表达式)

元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。

例如,我们可以使用下面的代码生成一个包含数字 1~9 的元组:
实例
>>> a = (x for x in range(1,10))
>>> a

>>> tuple(a)  # 使用 tuple() 函数,可以直接将生成器对象转换成元组
(1, 2, 3, 4, 5, 6, 7, 8, 9)

Python3 条件控制

在这里插入图片描述
if 语句
if – elif – else

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

注意:
如果 “condition_1” 为 True 将执行 “statement_block_1” 块语句
如果 “condition_1” 为False,将判断 “condition_2”
如果"condition_2" 为 True 将执行 “statement_block_2” 块语句
如果 “condition_2” 为False,将执行"statement_block_3"块语句
在Python中没有switch – case语句。

实例
var1 = 100
if var1:
    print ("1 - if 表达式条件为 true")
    print (var1)
 
var2 = 0
if var2:
    print ("2 - if 表达式条件为 true")
    print (var2)
print ("Good bye!")
输出结果为:
1 - if 表达式条件为 true
100
Good bye!
从结果可以看到由于变量 var2 为 0,所以对应的 if 内的语句没有执行。
实例 以下实例演示了狗的年龄计算判断: 
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相当于 14 岁的人。")
elif age == 2:
    print("相当于 22 岁的人。")
elif age > 2:
    human = 22 + (age -2)*5
    print("对应人类年龄: ", human)
 
### 退出提示
input("点击 enter 键退出")
实例 演示了数字的比较运算:
演示数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
    guess = int(input("请输入你猜的数字:"))
 
    if guess == number:
        print("恭喜,你猜对了!")
    elif guess < number:
        print("猜的数字小了...")
    elif guess > number:
        print("猜的数字大了...")
if 嵌套
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句
实例
num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")
输出结果为:
输入一个数字:6
你输入的数字可以整除 23

Python3 循环语句

for 和 while
1.需要注意冒号和缩进。
2.在 Python 中没有 do…while 循环。

**while 判断条件:

执行语句)……**

在这里插入图片描述

实例1 求和
n = 100 
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

执行结果如下:
1100 之和为: 5050
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:
实例2

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
print ("Good bye!")

执行以上脚本,输出结果如下:
输入一个数字  :5
你输入的数字是:  5
输入一个数字  :
while 循环使用 else 语句

如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

语法格式如下:

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。

循环输出数字,并判断大小:

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

for 语句

Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。

for循环的一般格式如下:

for 变量 in 范围内:
    执行语块1
else:
    执行语块2
Python for 循环实例:

languages = ["C", "C++", "Perl", "Python"] 
for x in languages:
     print (x)
     
输出结果:
C
C++
Perl
Python
>>>
用 if ……break 跳出循环
以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体:

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

range()函数

用于遍历数字序列,它会生成区间数列,例如:
实例
>>>for i in range(5):
     print(i)
输出:
0
1
2
3
4

注意:左闭右开

实例
>>>for i in range(5,9) :
    print(i)
输出:  
5
6
7
8
>>>
步长增量

for i in range(开始,结束,步长)

实例
>>>for i in range(0, 10, 3) :
    print(i)
    
0
3
6
9
>>>

负数:

实例
>>>for i in range(-10, -100, -30) :
    print(i)
输出结果: 
-10
-40
-70
>>>
结合range()和len()函数
实例
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
      print(i, a[i])
      
输出结果: 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>
还可用range()函数来创建一个列表:
实例
>>>list(range(5))
[0, 1, 2, 3, 4]
>>>

break 和 continue 语句

if……break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

if……continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

在这里插入图片描述

在这里插入图片描述

实例 while 中使用 break:
n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)
print('循环结束。')
输出结果为:
4
3
循环结束。

//
实例 while 中使用 continue:
n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print('循环结束。')
输出结果为:
4
3
1
0
循环结束。

循环语句中else 子句

它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

如下实例用于查询质数的循环例子:

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')
执行以上脚本输出结果为:
2  是质数
3  是质数
4 等于 2 * 2
5  是质数
6 等于 2 * 3
7  是质数
8 等于 2 * 4
9 等于 3 * 3

pass 语句

空语句,占位语句,不做任何事情,只是为了保持程序结构的完整性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值