python零基础入门到入土2.0
- python系列第二章
- 1. 三目运算符
- 2. 运算符优先级
- 3. if 语句
- 3.1 简单的if语句
- 3.2 if-else 语句
- 3.3 if-elif-else 语句
- 3.4 if 语句注意点
- 4. pass 关键字
- 5. 猜拳游戏案例
- 6. while 循环语句
- 7. while 练习
- 8. range
- 9. for...in 循环的使用
- 10. break 和continue 的使用
- 11. 嵌套打印矩形案例
- 12. 嵌套打印三角形案例
- 13. 打印九九乘法表案例
- 14. 进阶练习
python系列第二章
1. 三目运算符
不同语言的三目运算符的基本语法存在差异
通常一般语言如C语言的语言格式如下:
判断条件(返回布尔值) ? 为真时的结果 :为假时的结果
Python中的语言格式如下(注意中间无冒号):
为真时的结果 if 判断条件 else 为假时的结果
(a+b) if a<b else (b-a)
实例:
x = 2
x = x+1 if x%2==0 else x
print(x)
#>>>>3
2. 运算符优先级
其中上一行比下一行的优先级高,同一行表示优先级相同。在同一个表达式中,按照优先级从高到低依次计算,优先级相同则按照从左到右的顺序计算。同一类型的运算符则按结合性计算。
- 小括号具有最高优先级。
- 运算符优先级按类别排序:算术 > 位 > 身份 >成员 > 比较 > 逻辑 > 赋值。
算术最高,赋值被低。位非运算符是个另外,它高于乘除。 - 身份、成员、比较、赋值运算符,同类中优先级相同。
- 算术运算符中:乘方最高,乘除整除取余次之,加减最低。
- 位运算符中:位非 > 左右移 > 位与 > 位异或 > 位或
- 逻辑运算符中:非最高,与次之,或最低。
3. if 语句
3.1 简单的if语句
python:判断的变量是’ ’ 或 0 或 None 默认是False
python:如果变量有值’abc ’ , ’ kkkk’,'yueryu ',认为是True
if 表达式:
语句块
案例:
age = int(input('请输入年龄:'))
username = input('请输入用户名:')
if age>18 and username:
print('{}今年{}岁了!'.format(username,age))
print('game over!')
# 请输入年龄:19
#请输入用户名:van
#van今年19岁了!
#game over!
3.2 if-else 语句
if 条件1:
成立
if条件2:
成立
else:
不成立
else:
不成立
if 条件3:
成立
else:
不成立
print('*'*10,'欢迎来到消消乐','*'*10)
level = input('请输入你的级别(lev1,lev2):')
if level =='lev1':
print('免费玩 随便玩')
else:
print('已经进入付费级别,充值继续玩')
money = int(input('请充值(必须是100的倍数:)'))
if money%100 == 0 and money>0:
print('充值成功!充值金额是:',money)
else:
print('充值失败,充值金额必须是100的倍数!')
3.3 if-elif-else 语句
经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else语句,中间的 elif 语句的数量不限,但 if 语句和 else 语句只能各有一个。其实elif 就是c语言的if else。
if条件1:
语句
elif条件2:
语句
elif 条件3:
语句
else:
语句
例子:
age = 13
if age <= 3:
print('The age under 3 is free.')
elif age <= 12:
print('The age between 3 and 12 is half price.')
else:
print('The age over 12 is full price.')
3.4 if 语句注意点
# 1. 区间判断
# score = float(input('请输入你的成绩:'))
# 在某些语言李判断区间不能连写
# 在有些语音李,需要使用逻辑运算符来连接 score >=0 and score < 60
# python 里可以使用连续的区间判断
# if 60 >score >= 0:
# print('你个垃圾')
# 2. 隐式类型转换
if 4: # if 后面需要的是一个bool类型的值。如果if后面不是布尔类型,则会自动转换为布尔类型
print('hello world')
# 3.三元表达式(对if...else语句的简写)
num1 = int(input('请输入一个数字:'))
num2 = int(input('请再输入一个数字:'))
# if num1 > num2:
# x = num1
# else:
# x = num2
x = num1 if num1 > num2 else num2
print('两个数李较大的数是:', x)
4. pass 关键字
Python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
age = int(input('请输入您的年龄:'))
if age > 18:
pass #使用pass进行占位,没有意义,单纯为了保证语句的完整性,使程序不报错
print('hello')
5. 猜拳游戏案例
import random
# input是用来接收用户输入的数据
# 电脑应该随机的出一个数字[0,2]
# 需要使用到随机数模块random
# random.randint(a,b) ==>能够生成[a, b]的随机整数
computer = random.randint(0, 2)
print('电脑输出的是', computer)
# =等号在计算机编程里,赋值运算符,作用是将等号右边的值赋值给等号的左边
# 如果想要判断两个变量是否相等,不能使用赋值运算符,而要使用==比较运算符
player = int(input('请输入 (0)剪刀 (1)石头 (2)布:'))
print('用户输入的是', player)
if(player == 0 and computer == 2) or (player == 1 and computer == 0) or (player ==2 and computer == 1):
print('恭喜你赢了!')
elif player == computer:
print('平局')
else:
print('输了吧,八嘎!')
6. while 循环语句
循环就是让一件事情重复做多次
Python里的循环分为 while循环和for循环Python里不支持do. . .while循环
while循环的基本使用
while 判断条件:
条件成立时执行的代码
相当于c的x++ python里没有自增自减运算符
x = 0
while x < 10:
print('hello world')
x += 1
7. while 练习
求 1~100的所有整数之和
# 求 1~100的所有整数之和
i = 0
result = 0 # 定义一个变量用来保存所有的数字之和
while i < 100:
i += 1
result = result + i
print(result)
#5050
求 1~100的所有偶数之和
# 求 1~100的所有偶数之和
i = 0
result = 0 # 定义一个变量用来保存所有的数字之和
while i < 100:
i += 1
if i % 2 == 0: # 偶数才被加到result
result += i
print(result)
#2550
8. range
range内置类用来生成指定区间的整数序列
目前接触的可迭代对象:字符串、列表、字典、元组、集合、range
对于 range() 函数,有几个注意点:
(1)它表示的是左闭右开区间;
(2)它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;
(4)它是可迭代对象,却不是迭代器。
range()的三种创建方式:
- 第一种:只有一个参数(小括号中只给了一个数)即range(stop)
例如:range(10)指的是默认从0开始,步长为1,不包括10;
- 第二种:range(start,stop) (给了两个参数,即小括号中给了两个数)
r=range(1,10) print(list®) 运行结果为:
[1,2,3,4,5,6,7,8,9]
- 第三种:range(start,stop,step):创建一个在[start,stop)之间,步长为step;
例如:r=range(1,10,2) print(list®) 运行结果为:
[1,3,5,7,9]
range()函数中可以使用in 和not in 判断整数序列中是否存在(不存在)指定的整数,例如:
在上面第三种的基础上 print(10 in r) 运行结果为False; print(9 in r)运行结果为True ;print(10 not in r)运行结果为True;print(9 not in r)的运行结果为False;
range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要储存start,stop,step,只有当用到range对象时,才会去计算序列中的相关元素
9. for…in 循环的使用
python里的for循环指的是For. . .in循环。和c语言里的for不一样
for语句格式:
for ele in iterable
注意: in的后面必须要是一个可迭代对象!!!
z = 0 # 定义一个变量,用来保存所有的数字之和
for j in range(1, 101):
z += j
print(z)
# 5050
10. break 和continue 的使用
break和continue在Python里只能用在循环语句里
break:用来结束整个循环
continue:用来结束本轮循环,开启下一轮循环
11. 嵌套打印矩形案例
外循环用来控制行数;内循环用来控制每一个行的列数
j = 0
while j < 10:
j += 1
# 本段代码是打印五个星星并且换行
i = 0
while i < 8:
i += 1
print("*", end='') # 打印星星,不换行
print() # 用来换行
12. 嵌套打印三角形案例
# j 外循环用来控制行数;
# i 内循环用来控制每一个行的列数
j = 0
while j < 8:
j += 1 # j = 1;j=2
i = 0
while i < j:
i += 1
print("*", end='') # 打印星星,不换行
print() # 用来换行
13. 打印九九乘法表案例
# sep=""用于符号附件紧贴
# end='\t' 制表符用于对齐
# 外循环用来控制行数;
# 内循环用来控制每一个行的列数
j = 0
while j < 9:
j += 1 # j = 3
i = 0 # i = 0
while i < j:
i += 1 # i = 2
print(i, '*', j, '=', (i*j), sep="", end='\t')
# sep=""用于符号附件紧贴
# end='\t' 制表符用于对齐
print() # 用来换行
14. 进阶练习
- 统计100以内个位数是2并且能够被3整除的数的个数
for i in range(1, 101):
if i % 10 == 2 and i % 3 == 0:
print(i)
- 输入任意一个正整数,求它是几位数
num = int(input('请输入一个整数:'))
count = 0
while True:
count += 1
num //= 10
if num == 0:
break
print('你输入的数字是', count, '位数')
- 打印100-999内所有的水仙花数
for i in range(100, 1000):
# 比如456%10,商是45,拿到余数是6
single = i % 10
# 比如456整除以10,拿到了商是45,再%10,拿到十位数5
tens = i // 10 % 10
hundreds = i //100
if single **3 + tens**3 +hundreds **3 == i:
print(i)