顺序,分支,循环结构
条件判断语句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,直到-2【0,-3)print(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')
题目:
1)
range(-1,5):[-1,5),步长为1
2)
【0,3),步长为1
0,1,2
0的0次方为1,所有数的0次方为1
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+=1print(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')
```