python练习

1.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。

A=[]
#定义一个列表A,长度不限
for i in range(2000, 3201):
#i从2000到3201范围内,不包含3201,没设置步长,默认为1
    if (i%7==0) and (i%5!=0):
#如果i对7取余等于0并且对5取余不等于0
       A.append(str(i))
#.append() 方法用于在列表末尾添加新的对象
#在A列表末尾添加i
print (','.join(A))
#Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
#.join的语法:str.join(sequence)
#输出A列表,并且A列表中的字符中间用,隔开

2.编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8
则输出为:40320

def fact(x):
#定义fact函数用来求阶乘值,x表示阶数
    if x == 0:
        return 1
    return x * fact(x - 1)
print('请输入一个数字:')
x=int(input())
#把输入的字符串转成整数,然后赋值给x
print (fact(x))

3.编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:
34岁,67年,55岁,33岁,12日,98年
则输出为:[‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’]
(‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’)

import re
print('请输入一组数字:')
values=input()
#把输入的字符串赋值给values
A=values.split(",")
# split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
#把输入的字符串进行切片处理
k=re.findall(r'[0-9]+',values)
#.代表一切字符
#通过re.findall返回一共列表,然后把这个列表赋给k
t=tuple(k)
#函数创建元组对象,赋值给t
print (k)
#输出列表k
print (t)
#输出元组t
# 1)正则表达式含义

# . # 点可代表一切字符

# \ # 起转义作用

# [...] # 指代方括号中的任意字符

# \d # 指代数字0-9

# \D # 指代非数字

# \s # 指代一切空格,包括tab制表符、空格、换行等

# \S # 指代非空格

# \w # 指代大小写字母、数字和下划线

# \W # 指代非大小写字母、数字和下划线

# * # 匹配前面字符 >=0 次

# + # 匹配前面字符1次及以上

# ? # 匹配前面字符0次或1次

# {m} # 匹配m次

# {m,n} # 匹配m到n次

# {m,} # 至少匹配m次

#  2)结合re模块完成字符串的匹配

# 找

# re.findall(pattern, string, flags=0)

# pattern-->正则表达式

# string-->需要处理的字符串

# flags-->说明匹配模式,如是否大小写re.I

# 注:findall不同的表现形式: 

# import re 
# 第一种
# kk = re.compile(r'\d+') 
# kk.findall('one1two2three3four4') 
# #[1,2,3,4]
#  第二种
# #注意此处findall()的用法,可传两个参数; 
# kk = re.compile(r'\d+')
# re.findall(kk,"one123")
# 第三种
# kk = "one123"
# re.findall(r'\d+',kk)
# 切

# re.split(pattern, string, maxsplit=0, flags=0)

# pattern-->正则表达式

# string-->需要处理的字符串

# maxsplit-->最大匹配次数。0表示匹配所有次

# 替

# sub(pattern, repl, string, count=0, flags=0)

# pattern-->正则表达式

# repl-->新的替换内容

# string-->需要处理的字符串

# count-->替换次数。0表示匹配替换所有次

# flags-->匹配模式

问题:定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString::打印大写母的字符串。
还请包含简单的测试函数来测试类方法。
提示:使用_init__方法构造一些参数

class InputOutString(object):
#继承object,object是父类
#class是类
#定义一个InputOutString类
    def __init__(self):
#init初始化
#self表示类本身
        self.s = ""
#类成员变量s
    def getString(self):
#定义一个函数getString
        print('请输入字符串:')
        self.s = input()
#把输入的字符串赋给类的成员变量s
    def printString(self):
#定义一个函数printString
        print (self.s.upper())
#输出类中的字符串
strObj = InputOutString()
#创建一个对象
strObj.getString()
strObj.printString()
#通过对象访问类的成员方法

使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。
假设向程序提供以下输入:8
则输出为:
{1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}
提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()

print('请输入一个数字:')
n=int(input())
d=dict()
#创建一个字典,赋给d
for i in range(1,n+1):
    d[i]=i*i
print(d)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值