Python学习2 条件判断语句if,循环语句for while

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习2 条件判断语句if,循环语句for while相关的知识,希望对你有一定的参考价值。

顺序,分支,循环结构

条件判断语句if

1)if…else…
2) if…elif…else

注意:
1)python中不支持switch…case语句
2)注意缩进!
3)区间范围内允许连续比较:
if 1<=2<=3
if 3>=2>=1
if 2>=1 and 2<=3
3)三元表达式:
x=num1 if num1>num2 else num2
条件成立,返回num1,否则返回num2
4)隐式类型转化
if后面需要的是一个bool类型的值;如果if后面不是bool类型,会自动转换为bool类型

#1
ticket=input('Y/N')
if ticket=='Y':
   print('ok')
else:
 print('no')

pass关键字

没有任何作用,进行占位,代码暂时不知道如何写时,以免程序缩进出错,保持语句完整性
#1
ticket=input(‘Y/N’)
if ticket==‘Y’:
print(‘ok’)
else:
pass

random.randint函数

r = random.randint(a,b)
生成【a,b】之间的随机整数
eg:
r = random.randint(0, 2)
生成0,1,2

循环语句while

while xx:
print()

注意:
Python里的循环有 while 循环和 for 循环。
注:Python里不支持do…while 循环。

代码:


#sys.exit()使系统中止
name=''
while True:
    print('请输入名称:')
    name=input()
    if name=='dq':
        print('ok')
        sys.exit()

for语句

代码

#for循环1
i=1
for i in range(2):
    print('**')

#for循环2
for a in range(0,-3,-1):#从0开始,一次减1,直到-20-3print(a)

for中也有break和continue
示例:九九乘法表


for i in range(1,10,1):
    for j in range(1,i+1,1):
        print(i,'*',j,'=',i*j,sep='',end='\\t')
    print('\\n')

for…else语句

没有执行for中的break时会执行else
代码示例:
统计101-200中素数的个数,并且输出所有的素数。(素数又叫质数,即只能被1和它本身整除的数)

count=0
for i in range(101, 201, 1):
    for j in range(2,int(i/2),1):#减少循环
        if i % j == 0:#合数
           break#进入下一个循环
    else:
      count+=1
      print(i,end='\\t')
print('\\n')
print('count=',count,sep='',end='\\n')

求一个三位数的个位十位百位的值

定义一个三位数
a = 123456789
百位数: a//100%10
十位数: a//10%10
个位数: a//1%10

取倒数第几位,就是a//位数%10

## 练习1-两个数相减

```c
# 输入两个整数,如果两个数相减的结果为奇数则输出该结果,否则输出提示信息“结果不是奇数”。
# print('题目3',end='\\n')
# num1,num2=input('输入整数1'),input('输入整数2')
# num1,num2=int(num1),int(num2)
# num=num1-num2
# if num%2==0:
#     print('结果不是奇数',end='\\n')
# else:
#     print(int(num), end='\\n')
```
## 练习2-使用while循环输出[0,100]内所有偶数

```c
# 使用while循环输出[0,100]内所有偶数。
# print('题目5', end='\\n')
# i = 0
# flag = 1
# while i <= 100:
#     if i % 2 == 0:
#         print(i, end='\\t')
#     i += 1
# print('\\n')
```
## 练习3-求一个数是几位数
使用len()函数求解字符串长度

```c
# 输入任意一个正整数,求它是几位数。
# print('题目7',end='\\n')
# num=input('请输入一个正整数:')
# #将输入的字符串转换为整数,则能够去除0089前面的0,再转换回字符串求解字符长度即可
# num=len(str(int(num)))
# print(('输入为%d位数')%(num))
```
## 练习4-打印三位水仙花数

```c
# 打印所有水仙花数。(三位数,各个位的数的立方和等于该数)
# print('题目8', end='\\n')
# for i in range(100,1000,1):
#     if (i//100%10)**3+(i//10%10)**3+(i/1%10)**3==i:
#         print(i,end='\\t')
# print('\\n')
```
## 练习5-不断输入数字

```c
# 写一个程序可以不断输入数字,若输入的为0,打印“程序结束”后,结束该程序。
# print('题目9', end='\\n')
# i=1
# while i:
#    i=input('请输入数字:')
#    i=int(i)
# print('程序结束')
```
## 练习6-斐波那契数for循环

```c
# 求斐波那契数列中第n个数的值,n是正整数。(说明:斐波那契数列是这样的:1,1,2,3,5,8,13,21,34,…)
# print('题目11', end='\\n')
# n = int(input('请输入n:'))
# n1 = n2 = 1
# result = 1
# for i in range(3, n + 1, 1):
#     result = n1 + n2
#     n1=n2#移动
#     n2=result
# print('第%d个数的值是%d'%(n,result), end='\\n')
```
## 练习7-百马百担for镶嵌循环穷举法

```c
# “百马百担”问题:一匹大马能驮3担货,一匹中马能驮2担货,两匹小马能驮1担货,如果用100匹马驮100担货,问有大中小马各几匹?(提示:穷举法)
# print('题目12', end='\\n')
# for n1 in range(1, 34):#大马
#     for n2 in range(2, 51):#中马
#         for n3 in range(1, 101):#小马
#             if n1 * 3 + n2 * 2 + n3 * 0.5 == 100 and n1+n2+n3==100:
#                 print('大马%d 中马%d 小马%d' % (n1, n2, n3), end='\\n')

```
## 练习8-对折纸达到珠穆朗玛峰的高度
1m=10dm=100cm=1000mm
所以0.08mm=0.00008m
```c
# 一张纸的厚度大约是0.08mm,对折多少次后能达到珠穆朗玛峰的高度(8848.13m)。
# print('题目13', end='\\n')
# paper=0.00008
# all=8848.13
# count=0
# while paper<all:
#    paper*=2#每对折一次,纸的厚度变为两倍
#    count+=1
# print(('对折%d次')%(count),end='\\n')
```

以上是关于Python学习2 条件判断语句if,循环语句for while的主要内容,如果未能解决你的问题,请参考以下文章

Python语法基础03(if语句,while循环与for循环)

python学习七(if判断)

Python之条件循环语句

PYTHON学习第四天课后总结:

python学习之条件语句(if循环)

python中循环语句