import random
Xing=['孙','张','李']
Ming=['三']
studentname=[]
for i in range(10):
name=random.choice(Xing)+random.choice(Ming)
studentname.append(name)
print(studentname)
location=[]
start=0
while True:
try:
location.append(studentname.index('张三',start))
start=studentname.index('张三',start)+1
except:
break
print(location)
一、数据类型
1.运算符:
a.算数运算符:加减乘除,除法中%取模,
b.比较运算符==,!=,>,<
c.逻辑运算符
2.常用数据类型
a.字符串''
b.列表[],列表可以有很多处理,如升序降序,增加,在列表索引等
c.元组()
d.字典{}
二、流程控制
1.选择结构if
a.单分支
b.双分支
c.多分支
例题思路:
2.循环结构
a.for(for循环嵌套编写九九乘法表)
b.while
c.break 和 continue
例题思路:关于累加
三、函数与模块
1.函数
a.函数内置
b.自定义函数
再看一遍也是没有思路的程度:
注意:已知列表那,定义中的形参并不只是刻板印象中的一个数,可以是一个列表,从变量定义就可以看出来a=range(100)
后面一直变化值的变量需要初始化
def A(x):
B=[]
s=0
for i in x:
s=s+i
B.append(s)
return B
a=range(101)
A(a)
2.模块
a.直接调用
第一章课后思路总结:
第一题思路:不同的阶段有不同的税率,且使用累进超额计税。
最简单的写法,每一个if都可以拥有一个相应的return
def A(income):
if income>=1 and income<=5000:
taxrate=0.00
return (income-1)*0
elif income>5000 and income<=8000:
taxrate=0.03
return (income-5000)*taxrate+(5000-1)*0
elif income>8000 and income<=17000:
taxrate=0.10
return (income-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
elif income>17000 and income<=30000:
taxrate=0.20
return (income-17000)*0.2+(170000-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
elif income>30000 and income<=40000:
taxrate=0.25
return (income-30000)*0.25+(30000-17000)*0.2+(170000-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
elif income>40000 and income<=60000:
taxrate=0.30
return (income-40000)*0.3+(40000-30000)*0.25+(30000-17000)*0.2+(170000-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
elif income>60000 and income<=85000:
taxrate=0.35
return (income-60000)*0.35+(60000-40000)*0.3+(40000-30000)*0.25+(30000-17000)*0.2+(170000-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
else:
taxrate=0.45
return (income-85000)*0.45+(85000-60000)*0.35+(60000-40000)*0.3+(40000-30000)*0.25+(30000-17000)*0.2+(170000-8000)*0.1+(8000-5000)*0.03+(5000-1)*0
print(A(660000))
第二题
#1.随机生成一个随机数
import random
a=random.randint(1,100)
print('程序已就绪,随机数已生成')
#2.用户自己要输入一个数,且这个过程要循环6次
#3.比较输入的数与生成的随机数大小,且这个过程要循环6次
#4.猜对了需要终止
#5.每次循环后需要提示剩余次数,六次猜错后需要展示正确答案
for i in range(1,7):
s=int(input('请输入您猜测的数'))
if s>a:
print('该猜测数偏大')
elif s==a:
print('恭喜您,猜对了')
break
else:
print('该猜测数偏小')
print('您还有',6-i,'次机会')
if 6-i==0:
print('正确答案为',a)
除了for循环,也可以用while True(一直循环,可以回到起始位置,需要与break配合使用)
import random
while True:
target = random.randint(0, 100)
x = int(input('贴纸,你认为这个数是:'))
while True:
if x < target:
x = int(input('小了帖子再猜:'))
elif x > target:
x = int(input('大了贴纸再猜:'))
else:
breakchoice = input('帖子你还想猜猜看吗?(哟西/哒咩)')
if choice == '哒咩':
breakprint('欢迎好帖子下次来玩')
————————————————
版权声明:本文为CSDN博主「Neroiiey」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Python_XTyyds/article/details/121410962
第三题:注意数学思想,先判断有无根,if结构,return
import math
def B(a,b,c):
delta=b**2-4*a*c
if delta==0:
print('此方程有一个实数根')
return -b/(2*a)
elif delta>0:
print('此方程有两个实数根')
X1=(-b+math.sqrt(delta))/(2*a)
X2=(-b-math.sqrt(delta))/(2*a)
return X1,X2
else:
print('此方程无解')
return False
print(B(1,3,1))
第四题:
a=int(input('请输入年份'))
if a%400==0:
print(a,'年是闰年')
elif a%4==0 and a%100!=0:
print(a,'年是闰年')
else:
print(a,'年不是闰年')
第五题:
#生成随机人名列表
#找到张三,查找索引,list.index
#相同元素怎么查位置
import random
Xing=['孙','张','李']#随机的姓
Ming=['三']#随机的名
studentname=[]#随机产生的姓名准备的空列表,因为会产生多个值
for i in range(3):
name=random.choice(Xing)+random.choice(Ming)
studentname.append(name)
print(studentname)#随机姓名列表产生完毕
#以下开始查找位置索引,由于随机姓名可能会重复,
#索引只能读取第一个元素的位置,由于需要找出所有位置,则可能会出现多个数
#准备好空列表。注意list.index(值,起始位,终止位),在读完第一个元素后
#利用判断,跳过该数继续索引
#使用try和except是为了处理如果随机列表中并未出现张三
location=[]
start=0#规定这个是因为之后start的值会不断变化
#注意此处循环,A---B----B----B可以转换为if判断下的AB---AB----AB-----AB
while True:
if len(location)==0:
try:
location.append(studentname.index('张三',start))
start=studentname.index('张三',start)+1
except:
break
else:
try:
location.append(studentname.index('张三',start))
start=studentname.index('张三',start)+1
except:
break
print(location)
其中try except是异常处理方法,参考的处理方式来源于qq_491078787:http://t.csdn.cn/SPASJ
import random
Xing=['孙','张','李']
Ming=['三']
studentname=[]
for i in range(10):
name=random.choice(Xing)+random.choice(Ming)
studentname.append(name)
print(studentname)
location=[]
start=0
while True:
try:
location.append(studentname.index('张三',start))
start=studentname.index('张三',start)+1
except:
break
print(location)
似乎此处不用if判断也是可以达到执行目标的