python爬虫-day1

目录

python笔记-day01

python运算符

算术运算符

比较运算符

逻辑运算符

赋值运算符

运算符的优先级

输入和输出

input()

print()

getpass

简单数据类型转换

常见数据类型

什么数据类型可以转整型

什么数据类型可以转浮点型

什么数据类型可以转布尔值

分支结构

为什么要引入分支结构?

单分支结构:if语句

练习:判断一个年份是否是闰年,打印闰年或平年

三目运算符

多分支结构

练习:将单分支结构判断一个年份是否是闰年构造成多分支结构

嵌套分支(分支结构相互嵌套)

练习:输入三条边长,如果能构成三角形就计算三角形的周长

循环结构

for循环

 练习:使用for循环输出1到100以内所有的5的倍数

while循环

案例:数字炸弹游戏

作业


python笔记-day01

python运算符

Python常见运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、成员运算符

算术运算符

算术运算符:包括加+、减-、乘*、除/、整除//、求模(取余)%、幂运算**
 

a = 20
b = 3
print(a + b)
print(a - b)
print(a * b)

print(a / b)
print(20 / 2)
# python中除法运算得到的结果永远为浮点型

print(a // b)
# 整除得到的结果为除法运算结果向下取整

print(a % b)
# 取余:除法运算在的余数

print(a ** b)
# sqrt()开方方法
# **幂运算能够代替sqrt方法
print(4 ** 0.5)
print(27 ** (1 / 3))

比较运算符

比较运算符:大于>、小于<、大于等于>=、小于等于<=、等等于==、不等于!=
比较运算得到的结果永远是布尔值:True | False

print(20 > 3)
print(20 < 3)
print(20 >= 3)
print(20 == 3)
print(20 != 3)

逻辑运算符

逻辑运算符:逻辑与运算and、逻辑或运算or、逻辑非运算not

# 逻辑与运算
# and字面意思而且并且,and连接的是两个条件,如果两个条件都成立(True),那么整体均为True
# 只要有一方不成立(False),整体均不成立
# 中断:如果and左边为False,直接结束判断
print(True and True)
print(True and False)
print(False and True)
print(False and False)
print('------------------------分隔符------------------------')

# 逻辑或运算
# or字面意思或者;or连接的是两个条件,只有当or两边条件都不成立时,整体结果才不成立
# 中断:如果or左边为True,直接结束判断
print(True or True)
print(True or False)
print(False or True)
print(False or False)
print('------------------------分隔符------------------------')

# 逻辑非运算
# not取反
print(not 18 > 20)

赋值运算符

赋值运算符:除等号外,对一个已经存在的变量进行赋值的,如:=、+=、-=、*=、/=、//=、%=、**=

num = 10
num += 10
# 等价于num = num + 10
print(num)

num %= 3
num **= 100
print(num)

# 复合赋值运算符
a = 10
a *= a + 5
print(a)

运算符的优先级

算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
算术运算符: **    >    * / % //    >    + -
有小括号先算小括号里面的

输入和输出

input()

通过input输入的内容,始终是一个字符串

a = input('请输入一个数字:')
print(a,type(a))

print()

1.print()可以打印内容(变量对应的数据、一个数据、一行代码的结果等)

b = 10
print(b, 10, 20 > 30)

2.print()还可以再打印结果的时候修改多个结果之间的间隔

print()中有一个结束字符串和分隔字符串,结束字符串和间隔字符串仅仅是在打印效果上做出改变,不改变原有数据。

print(20,40,60,80,sep='hhh',end='')
print(30)

getpass

在Python中提供一个内置模块,能够实现和input类似的效果,但是比input更加强大

import getpass

a=getpass.getpass('请输入您的密码:')
print(a,type(a))

简单数据类型转换

常见数据类型

Python中常见数据类型有:整型(int)、浮点型(float)、布尔值(bool)、字符串(str)、列表(list)、元组(tuple)、集合(set)、字典(dict)等

什么数据类型可以转整型

1、浮点型能够转整型
2、布尔值能够转整型。True --> 1 、 False --> 0
3、字符串能够转整型。去掉字符串引号就是一个整数的字符串才能够转整型。

print(int(10.999),int(True),int(False),int('123'))
print(type(int(10.999)),type(int(True)),type(int(False)),type(int('123')))

# print(int('123.456'))错误

什么数据类型可以转浮点型

1、整型能够转浮点型
2、布尔值能够转浮点型。True --> 1.0 、 False --> 0.0
3、字符串能够转浮点型。去掉引号就是数字的字符串能够转浮点型。

print(float(123),float(True),float(False),float('123'),float('123.456'),float('.123'),float('123.'),float('123'))

什么数据类型可以转布尔值

0, 0.0, None, 空列表[], 空字符串'', 空集合set(), 空元组(), 空字典{} 等能够表示空值的能转为False,其他的均为True。

print(bool(0), bool(0.0), bool([]),bool(''))
print(bool(1000),bool('12'))

分支结构

为什么要引入分支结构?

在Python中代码是一条一条语句顺序执行,这种代码结构通常称之为顺序结构,但是仅有顺序结构不足以解决所有问题。我们必须给予程序做选择的功能,因此出现了分支结构(选择结构)。

单分支结构:if语句

案例:用户身份验证

username = input('请输入用户名:')
password = input('请输入密码:')
if username == 'admin' and password == '123456':
    print('登录成功')
else:
    print('用户名或密码错误')

练习:判断一个年份是否是闰年,打印闰年或平年

year = 2000
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print('闰年')
else:
    print('平年')

三目运算符

语法:结果1 if 条件 else 结果2
如果条件成立,输出结果1,否则,输出结果2

year = 2000
result = '闰年' if (year % 4 == 0 and year % 100 != 0) or year % 4 == 0 else '平年'
print(result)

多分支结构

score = 70
if score >= 90:
    print('等级A')
elif score >= 80:
    print('等级B')
elif score >= 70:
    print('等级C')
elif score >= 60:
    print('等级D')
else:
    print('不及格')

练习:将单分支结构判断一个年份是否是闰年构造成多分支结构

x = int(input('请输入年份:'))
if x % 400 == 0:
    print('闰年')
elif x % 4 == 0 and x % 100 != 0:
    print('闰年')
else:
    print('平年')

嵌套分支(分支结构相互嵌套)

案例:判断一个数字是否是偶数,如果这个数字是偶数,再判断其是否是10的倍数

x = int(input('请输入一个数字:'))
if x % 2 == 0:
    print('偶数')
    if x % 10 == 0:
        print('这个数是10的倍数')
    else:
        print('这个数不是10的倍数')
else:
    print('奇数')

练习:输入三条边长,如果能构成三角形就计算三角形的周长

a,b,c=map(float,input('请输入三条边长:').split())
if a + b > c and a + c > b and b + c > a:
    print('三角形的周长为',a+b+c)
else:
    print('不能组成三角形')

循环结构

假设在实际工作中遇到重复性的机械性的内容,应该怎么办?
可以使用循环以及发现的重复性的规律来解决此类问题。

for循环

"""
for循环语法:
for 变量 in 容器:
    代码块
"""

# 第一个容器:range方块
# range():用来产生一个整数序列
# range(start, end, step): range可以从 左闭右开区间[start,end) 中按照 步长step 获取所有的整数
# start不写默认表示0,step不写默认为1,步长是控制下一次该取哪个元素


# range(101):可以产生从 0到100范围内 的所有整数
# range(1,101):可以产生从 1到100范围内 的所有整数
# range(1,101,2):可以产生从 1到100范围内 的所有奇数
# range(100,0,2):可以产生从 100到1范围内 的所有偶数
for i in range(1,11,2):
    print(i)

 练习:使用for循环输出1到100以内所有的5的倍数

sum = 0
for i in range(100,1,-5):
    sum += i
print(sum)

while循环

for循环适合有限次的循环,while循环既适合有限次的循环,又适合循环次数不确定的循环。

"""
while循环语法:

while条件:
    代码块
while循环开始执行,判断条件是否成立,条件成立,执行代码块,下一次循环还是先判断条件是否成立
如果条件不成立,循环结束。
"""

案例:数字炸弹游戏

在指定范围中随机获取一个数字,如果用户猜对了,游戏结束;
如果用户猜的数字比较大,提示再小一点;反之提示再大一点

from random import randint
# randint(a,b)从[a,b]中随机获取一个整数
number = randint(1,100)
#print(number)
num = 0
while num != number:
    num = int(input('请输入你猜测的数字:'))
    if num == number:
        print('猜对了,游戏结束')
#        flag = False
    elif num > number:
        print('再小一点')
    else:
        print('再大一点')

作业

1.输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

for row in range(1,10):
    for col in range(1,row+1):
        #格式化字符串字面值(f-字符串):1 * 1 = 1、 9 * 9 = 81
        string = f'{col} * {row} = {row * col}'
        print(string,sep='',end='\t'),
    print('\n')

 2.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

for bigHorse in range(0,35):
    for middleHorse in range(0,51):
        if 6 * bigHorse + 4 * middleHorse + (100 - bigHorse - middleHorse) == 200:
            print(f'大马有{bigHorse}匹,中马有{middleHorse}匹,小马有{smallHorse}匹')

 3.求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34.... (这儿的n可以是任意正整数,可以通过输入来确定) 

N = 4
left = 1
right = 1
mid = 1
for i in range(1, N-1):
    mid = left + right
    left = right
    right = mid
print(f'第{N}个数是{mid}')

 4.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³  等于 153。

for i in range(100,1000):
    gw = i % 10
    sw = i // 10 % 10
    bw = i // 100
    if gw ** 3 + sw ** 3 + bw ** 3 == i:
        print(f'{i}是水仙花数')

5.使用循环计算1*2*3*4*...*10的结果。

num = 1
for i in range(1,11):
    num *= i
print(f'10的阶乘为{num}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值