n=input("请input新增输入类型任意一个正整数:") n1="" for i in range(len(n)-1,-1,-1): n1=n1?

Python3 快速入门 实例(二)11.Python 质数判断# 用户输入数字
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
print(num, "不是质数")
break
else:
print(num, "是质数")
else:
print(num, "不是质数")
12.Python 输出指定范围内的素数# 用户输入数字
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower, upper + 1):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
13.Python 阶乘实例# 获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
# 判断输入的是负数,0 或 正数
if num < 0:
print("负数没有阶乘")
elif num == 0:
print("0 阶乘为 1")
else:
for i in range(1,num+1):
factorial *=i
print("%d 的阶乘为 %d" % (num, factorial))
14.Python 九九乘法表for i in range(1, 10):
for j in range(1, i + 1):
print(f'{j}*{i}={i * j}', end=' ')
print()
15.Python 斐波那契数列# 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
# 获取用户输入数据
n = int(input("你需要前几项?"))
# 第一和第二项
n1 = 0
n2 = 1
count = 2
# 计数
# 判断输入是否合法
if n <= 0:
print("请输入一个正整数。")
elif n == 1:
print("斐波那契数列:\n", n1)
else:
print("斐波那契数列:")
print(n1, ",", n2, end='')
while count < n:
temp = n1 + n2
print(" ,", temp, end='')
# 更新值
n1 = n2
n2 = temp
count += 1
16.Python 阿姆斯特朗数# 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
# 判断数字是几位数
# 检测
temp = num
while temp > 0:
ge = temp % 10
sum += ge ** n
temp //= 10
# 去掉个位
# 输出结果
if num == sum:
print(num, "是阿姆斯特朗数")
else:
print(num, "不是阿姆斯特朗数")
17.Python 十进制转二进制、八进制、十六进制# 获取用户输入十进制数
dec = int(input("输入数字:"))
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
18.Python 判断奇数偶数try:
num = int(input("输入一个整数: "))
if (num % 2) == 0:
print("{} 是偶数".format(num))
else:
print("{} 是奇数".format(num))
except ValueError:
print('输入错误')
19.Python ASCII码与字符相互转换# 用户输入字符
c = input("请输入一个字符: ")
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))
print(c + " 的ASCII 码为", ord(c))
print(a, " 对应的字符为", chr(a))
20.Python 最大公约数算法def hcf(x, y):
if x > y:
smaller = y
else:
smaller = x
for i in range(1, smaller + 1):
if (x % i == 0) and (y % i == 0):
hcf = i
return hcf
# 用户输入两个数字
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
print(num1, "和", num2, "的最大公约数为", hcf(num1, num2))
}
这里整理了一些Python基础练习题,初学者可以拿来练练手,先思考再看答案哦~1)注意变量的作用域num = 2
def auto():
num = 1
print ('internal block num = %d' % num)
num += 1
for i in range(3):
print ('The num = %d' % num)
num += 1
auto()2)条件嵌套利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。score=int(input("学习成绩:"))
if score>=60:
if score>=90:
print("A")
else:
print("B")
else:
print("C")思路:嵌套就是条件里面还有条件3)字符串长度函数写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度def func(s):
len=0
for i in s:
if s: len+=1
return len
if __name__=='__main__': #main函数, __name__=='__main__'将函数私有化了,外部调用不了main下面的内容。
string=input("Please input a string:")
print(func(string))思路:对字符串里的字符逐个数出来即可4)列表转字符串,L = [1, 2, 3, 5, 6],如何得出 ‘12356’?L = [1, 2, 3, 5, 6]
# 使用推导式,将数组中的数字转成 str 类型
lists = [str(i) for i in L]
print(''.join(lists))
结果:
123565)有个列表a = [1, 2, 3, 4, 5, 6, 7, 8, 9],如何打乱列表a的顺序,每次得到一个无序列表?import random
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
结果:
[2, 7, 9, 4, 8, 1, 3, 5, 6]6)有个列表a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8] 使用filter 函数过滤出大于0的数a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
def test(a):
return a < 0
temlists = filter(test, a)
print(list(temlists))
结果:
[-1, -9, -4, -5]7)将字典里的值是数值型的转换为字符串,如a = {‘aa’: 11, ‘bb’: 222},得到{‘aa’: ‘11’, ‘bb’: ‘222’}def test():
a = {'a': 11, 'bb': 222}
for i in a.items():
a.update({i[0]: str(i[1])})
return a
结果:
{'a': '11', 'bb': '222'}8)如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数那么求1000以内的水仙花数(3位数)?def test():
for num in range(100, 1000):
i = num // 100
j = num // 10 % 10
k = num % 10
if i ** 3 + j ** 3 + k ** 3 == num:
print(str(num) + "是水仙花数")
test()9)找出单词 “welcome” 在 字符串”Hello, welcome to my world.” 中出现的位置,找不到返回-1从下标0开始索引def test():
message = 'Hello, welcome to my world.'
world = 'welcome'
if world in message:
return message.find(world)
else:
return -1
print(test())
结果:
710)输出1-100除3余1 的数,结果为tupletuples = ()
for i in range(1, 101):
# 判断除以 3 余 1 的数
if i % 3 == 1:
# 将数据加入元祖中
tuples += (i, )
print(tuples)11)将(‘a’, ‘b’, ‘c’, ‘d’, ‘e’) 和 (1,2, 3, 4, 5)两个tuple转成(1, 2, 3, 4, 5)为key, (‘a’, ‘b’, ‘c’, ‘d’, ‘e’) 为value的字典def test():
a = (1, 2, 3, 4, 5)
b = ("a", "b", "c", "d", "e")
# 使用 zip 函数将元素组合成多个元祖
c = list(zip(a, b))
dicts = {}
# 将数据转换成字典类型
for i in c:
dicts[i[0]] = i[1]
return dicts
print(test())
结果:
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}上边题目大多数都是关于Python数据结构这一块的基础,个人认为数据结构是编程最重要的基本功,列表、集合、元祖、字符串等都是需要做到完全熟练的。比如学了队列之后,你就知道,对于先入先出要排队的问题,你就要用到队列,碰到多个网络下载任务时,我该怎么去调度它们去获得网络资源?总之好好学数据结构就对了,之后要用的地方多着呢!小白还在刚开始学的可以配合一些教学视频来帮助你理解学习中的难点。下方公开课点击即可跳转试听↓↓<Python直播公开课 跟着大神学Python>12)输入3个数a,b,c,按大小顺序输出。n1 = int(input('n1 = :'))
n2 = int(input('n2 = :'))
n3 = int(input('n3 = :'))
def swap(p1,p2):
return p2,p1
if n1>n2: n1,n2=swap(n1,n2)
if n1>n3: n1,n3=swap(n1,n3)
if n2>n3: n2.n3=swap(n2,n3)
print(n1,n2,n3)思路:先排序,再输出13)对10个数进行排序list=[2,3,1,4,7,5,9,6,29,15]
print(list)
for i in range(10):
for j in range(i+1,10):
min=list[i]
if list[j]<min:
temp=list[j]
list[j]=list[i]
list[i]=temp
print(list)思路:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。14)按相反的顺序输出列表的值(注意倒序输出的格式2种都可以)a = ['one', 'two', 'three']
for i in range(2,-1,-1):
print(a[i])
# for i in a[::-1]:
#
print (i)15)求输入数字的平方,如果平方运算后小于 50 则退出n= int(input('请输入一个数:'))
n=n*n
if n< 50:
print('平方和小于50,退出')
else:
print(n)16)如何判断一个数组是对称数组:要求:判断数组元素是否对称。例如[1,2,0,2,1],[1,2,3,3,2,1]这样的都是对称数组用Python代码判断,是对称数组打印True,不是打印False,如:x = [1, “a”, 0, “2”, 0, “a”, 1]
def test():
x = [1, 'a', 0, '2', 0, 'a', 1]
# 通过下标的形式,将字符串逆序进行比对
if x == x[::-1]:
return True
return False
print(test())
结果:
True17)数组里的排序练习输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。array=[2,3,1,5,7,6,22,19,62,33,28]
max=array[0]
min=array[0]
maxnumber=0
minnumber=0
for i in range(len(array)):
if max<array[i]:
max=array[i]
maxnumber = i
for j in range(len(array)):
if min>array[j]:
min=array[j]
minnumber=j
print('max='+str(max),'min='+str(min))
def swap(n1,n2):
return n2,n1
array[maxnumber],array[0]=swap(array[maxnumber],array[0])
array[minnumber],array[len(array)-1]=swap(array[minnumber],array[len(array)-1])
print(array)思路:先将数组里的最大数和最小数找出来,并且标记好对应在数组的位置。18)a = [2, 3, 8, 4, 9, 5, 6]
b = [2, 5, 6, 10, 17, 11]找出a和b中都包含了的元素a或b中包含的所有元素a中包含而集合b中不包含的元素a = [2, 3, 8, 4, 9, 5, 6]
b = [2, 5, 6, 10, 17, 11]
# 并集
print(list(set(a).union(set(b))))
# 交集
print(list(set(a).intersection(set(b))))
# 差集
print(list(set(a) ^ set(b)))
结果:
[3, 4, 8, 9, 10, 11, 17]
[2, 3, 4, 5, 6, 8, 9, 10, 11, 17]
[2, 5, 6]
19)计算公式 13 + 23 + 33 + 43 + …….+ n3实现要求:输入 : n = 5输出 : 225对应的公式 : 13 + 23 + 33 + 43 + 53 = 225def test(n):
sum = 0
for i in range(1, n+1):
sum += i*i*i
return sum
print(test(5))
结果:
22520)编写一个程序,X,Y作为输入,并生成一个X行,N列的二维数组,数组的第i行和第j列中的元素值应为i * j。input_str = input()
dimensions = [int(x) for x in input_str.split(',')]
rowNum = dimensions[0]
colNum = dimensions[1]
multilist = [[0 for col in range(colNum)] for row in range(rowNum)]#定义一个空的二维数组
for row in range(rowNum):
for col in range(colNum):
multilist[row][col] = row * col
print(multilist)思路:注意二维数组的定义方式21)二维数组取值(矩阵),有 a = [[“A”, 1], [“B”, 2]] ,如何取出 2import numpy
a = [["A", 1], ["B", 2]]
x = numpy.array(a)
print(x[1, 1])
结果:
222)a = [11, 2, 33, 1, 5, 88, 3]冒泡排序:依次比较两个相邻的元素,如果顺序(如从小到大、首字母从A到Z),错误就把他们交换过来def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr = [11, 2, 33, 1, 5, 88, 3]
bubbleSort(arr)
print(arr)
结果:
[1, 2, 3, 5, 11, 33, 88]23)reduce函数计算1-100的和from functools import reduce
def test():
lists = []
# for 循环往列表中加入1-100的数据
for i in range(1, 101):
lists.append(i)
# 实现数据相加
return reduce(lambda x, y: x + y, lists)
print(test())
结果:
505024)使用lambda来创建匿名函数例1:f1=lambda a,b: a+b
f2=lambda a,b,c,d:a+b-(c+d)
a,b,c,d=21,32,44,28
print(f1(a,b))
print(f2(a,b,c,d))思路:使用方法 lambda [arg1 [,arg2,.....argn]]:expression例2:MAX = lambda x, y: (x > y) * x + (x < y) * y
MIN = lambda x, y: (x > y) * y + (x < y) * x
a = 10
b = 20
print('The largar one is %d' % MAX(a, b))
print ('The lower one is %d' % MIN(a, b))25)编写一个程序,根据给定的公式计算并打印该值:Q = [(2 * C * D)/ H]的平方根以下是C和H的固定值:C是50.H是30。D是变量,其值应以逗号分隔的顺序输入到程序中。输入:100,150,180,输出:18,22,24import math
c=50
h=30
d=input('请输入:')
list1=d.split(',')
m=list1[-1]
for i in list1:
i=int(i)
q=int(math.sqrt((2*c*i)/h))
if i !=int(m):
print(q,end=',')
else:
print(q,end='')思路:导入math函数,注意输入输出格式26)首字母判断请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。def T():
t=input("The follow alphabet:")
if t=='u':
print('Tuesday')
elif t=='h':
print('Thursday')
def S():
s=input("The follow alphabet:")
if s=='a':
print('Saturday')
elif s=='u':
print('Sunday')
switch={
'M':lambda:print('Monday'),
'W':lambda:print('Wednesday'),
'F':lambda:print('Friday'),
'T':lambda:T(),
'S':lambda:S()
}
letter=input("Please input:")
switch[letter]()思路:Python没有switch case语句,但可以用字典,值执行方法来代替。27)python字典和json字符串相互转化方法#json.dumps()字典转json字符串,json.loads()json转字典
import json
dic = {"name":"zs"}
res = json.dumps(dic)
print(res,type(res))
ret = json.loads(res)
print(ret,type(ret))
输出:
{"name": "zs"} <class 'str'>
{'name': 'zs'} <class 'dict'>28)函数的定义与调用def hello_world():
print('hello world')
def three_hellos():
for i in range(3):
hello_world()
if __name__ == '__main__':#如果在本模块调用,则输出,若在另一个模块用import导入,则不输出
three_hellos()思路:注意__name__ == '__main__'29)递归求和#递归完成1+2+3...+10的和
def get_sum(num):
if num>=1:
res=num+get_sum(num-1)
else:
res=0
return res
res=get_sum(10)
print(res)
==》5530)利用递归函数调用方式,将所输入的n个字符,以相反顺序打印出来def out(s,n):
if n == 0:
return
else:
print(s[n-1],end=' ')
out(s,n-1)
s=input('请输入:')
#s=s.split(',')
n= len(s)
out(s,n)Python函数同样也是一大重要的学习版块,涉及到的函数知识点非常多,老是记不住各类函数怎么办?其实学编程是很注重实践的,不用像背诵那样把很多函数都记住,学会如何查询即可。前提是你得先把 Python 语言基础部分过一遍,然后在实践中需要时就去查询。还有就是多做笔记,将平时用到的函数写成笔记,记录下常见用法与注意事项。这里整理了我学Python用到过的一些基础教程,需要下方进群找群管理获取即可。<Python基础教程 小白适用>31)累乘相加求1+2!+3!+…+20!的和法一:只是把累加变成了累乘s=1
total=0
for i in range(1,21):
s*=i
total+=s
print(total)法二:使用map函数。(第一个参数接收一个函数名,第二个参数接收一个可迭代对象)def f(n):
s=1
for i in range(1,n+1):
s*=i
return s
total=sum(map(f,range(1,21)))
print(total)32)map函数,有个列表a = [1, 2, 3, 4] 计算列表中每个数除以2 取出余数 得到 [1,0,1,0]ef test():
a = [1, 2, 3, 4]
lists = []
for i in a:
lists.append(i % 2)
return lists
print(test())
结果:
[1, 0, 1, 0]33)生成0-100的随机数import random
res1=100* random. random( )
#随机小数 random.random()生成0-1之间的随机小数,所以乘以100
res2= random.choice( range(0,101))
#随机整数
res3= random.randint(1,100)
#随机整数
print(res1)
print(res2)
print(res3)
输出:
70.52071953376354
21
1334)按位与&,|,^(变成二进制,分别按位与,或,异或)例1a=3
b=7
print('a & b = %d' % b)
b &= 7
print('a & b = %d' % b)
b = a
3
print ('a
b is %d' % b)
b
= 7
print ('a
b is %d' % b)
b = a ^ 3
print ('The a ^ 3 = %d' % b)
b ^= 7
print ('The a ^ b = %d' % b)例2:学习使用按位取反~a=-0b10101011
b=0b11111111
c=~a
d=~b
print(a,c,bin(a),bin(c))
print(b,d,bin(b),bin(d))思路:~0=1; ~1=0;所有正整数的按位取反是其本身+1的负数所有负整数的按位取反是其本身+1的绝对值零的按位取反是 -1例3:学习使用按位或
a=0b1011001
b=0b1000100
print(a,b,a|b)
print((a|b))思路:0|0=0; 0|1=1; 1|0=1; 1|1=1例4:学习使用按位与 & a=0b1010011
b=0b1100101
print(a,b,a&b)
print(bin(a&b))思路:0&0=0; 0&1=0; 1&0=0; 1&1=1Python二进制表达:0b1010101, 八进制表达:0o7777,十六进制表达:0xFFFF;十进制转二进制、八进制、十六进制:bin(dec),oct(dec),hex(dec);35)给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字def jisuan(n):
l=[]
while n!=0:
a=n%10
l.append(a)
n=n//10
return l
n=int(input('请输入:'))
l=jisuan(n)
a= len(l)
for i in range(a):
print(l[i],end=' ')思路:用栈的思想36)统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1, -9, -4, -5, 8]def test():
lists = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
# 定义一个变量,计算正数
positive_num = 0
# 计算负数
negative_num = 0
for i in lists:
# 判断循环数组中的数据大于0,则正数会+1
if i > 0:
negative_num += 1
# 因为 0 既不是正数也不是负数,所以我们判断小于0为负数
elif i < 0:
positive_num += 1
return positive_num, negative_num
print(test())
结果:
(4, 5)37)一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?if __name__ == '__main__':
i = 1
x = 100
sum = 0
while i <= 10:
sum += x
x = x/2
sum += x
i += 1
print('一共经过%f米,第10次反弹的高度是%f'%(sum, x))38)有一个列表list=[2,11,16,5,9],不用sort方法,怎么实现从小到大排序?利用min()方法求出最小值,原列表删除最小值,新列表加入最小值,递归调用获取最小值的函数,反复操作。list=[2,11,16,5,9]
new_list=[]
def getmin(list):
a=min(list) #获取列表最小值
list.remove(a)
#删除最小值
new_list.append(a) #将最小值加入新列表
if len(list)>0:
#保证列表中的最小值都获取完并加入新列表
get_min(list)
return new_list
new_list=get_min(list)
print new_list39)如何判断是函数还是方法?与类和实例无绑定关系的 function 都属于函数(function)与类和实例有绑定关系的 function 都属于方法(method)普通函数:
def func1():
pass
print(func1)
类中的函数:
class People(object):
def func2(self):
pass
@staticmethod
def func3():
pass
@classmethod
def func4(cls):
pass
people = People()
print(people.func2)40)打印出如下图案def test():
n = 8
for i in range(-int(n/2), int(n/2) + 1):
print(" "*abs(i), "*"*abs(n-abs(i)*2))
print(test())
结果:
**
****
******
********
******
****
**}

我要回帖

更多关于 input新增输入类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信