Python学习第二天

1.输入转化成list tuple

values = input()
l=values.split(",")
t=tuple(l)
print(l)
print(t) 

注意:
①input而不用raw_input,否则会报错
②print要加()否则报错
③输入即是按list格式的,所以只需分隔符隔开
另一写法

lst=input().split(",")
tpl=tuple(lst)
print(lst)
print(tpl)

注意:
①直接input后split
②也可以把“,”换成空格 输入则空格再输入下一个即可

另外写法

print(tuple(input("Enter :").split(',')))

2.小写转大写输出

class InputOutString(object):
    def __init__(self):
        self.s=""

    def get_string(self):#self必写
        self.s=input()

    def print_string(self):
        print(self.s.upper()) 
        
str_obj = InputOutString()
str_obj.get_string()
str_obj.print_string()

注意:
① 最开始 class!!!不要错写成def
②self必有 其余的是其属性
③如果定义不写self 是类的调用
self的详细用法

3.计算题

Write a program that calculates and prints the value according to the given formula:
Q = Square root of [(2 _ C _ D)/H]
Following are the fixed values of C and H:
C is 50. H is 30.
D is the variable whose values should be input to your program in a comma-separated sequence.For example Let us assume the following comma separated input sequence is given to the program:

import math
c=50
h=30
value=[]
items=[x for x in input().split(',')]
for d in items:
    value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
print(','.join(value))

注意:
①round 四舍五入
②math.引用数学公式
③ d以求浮点数 直接float(d)引用

4.数组生成

Question:
_Write a program which takes 2 digits, X,Y as input and generates a 2-dimensional array. The element value in the i-th row and j-th column of the array should be i _ j.

Note: i=0,1…, X-1; j=0,1,¡­Y-1. Suppose the following inputs are given to the program: 3,5
Then, the output of the program should be:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]*

x,y = map(int,input().split(','))
lst = [[i*j for j in range(y)] for i in range(x)]
print(lst)

或者:

input_str = raw_input()
dimensions = [int(x) for x in input_str.split(',')]
row_num = dimensions[0]
col_num = dimensions[1]
multilist = [[0 for col in range(col_num)] for row in range(row_num)]

for row in range(row_num):
    for col in range(col_num):
        multilist[row][col] = row * col

print multilist

更推荐 解法一
map的用法

每一列填完再根据行写。∴ [] for row[]
所得到的是【】里面仍有嵌套的【】

5.字母 字符串排序

编写一个程序,该程序接受以逗号分隔的单词序列作为输入,并在按字母顺序对它们进行排序后以逗号分隔的顺序打印这些单词。
假设将以下输入提供给程序:
without,hello,bag,world
然后,输出应为:
bag,hello,without,world

items=[x for x in input().split(" ")]
items.sort()
print(','.join(items))

注意:
①sort()直接排序
②输入的是list 可直接说明分割开

或者一步步分开

lst = input().split(',')
lst.sort()
print(",".join(lst))

先输入 再排序 后打印

6.行序列输入

编写一个接受行序列作为输入的程序,并在使句子中的所有字符都大写之后打印行。
假设将以下输入提供给程序:
Hello world
Practice makes perfect
然后,输出应为:
HELLO WORLD
PRACTICE MAKES PERFECT

lines=[]
while True:
    s=input()
    if s:
        lines.append(s.upper())
    else:
        break

for sentence in lines:
    print(sentence)

①先生成空列表(是一句话lines)
②每句话输入后upper()转大写加入lines【】里面
③再打印 for in lines

另一个方法;

def inputs():
    while True:
        string = input()
        if not string:
            return
        yield string

print(*(line.upper() for line in inputs()),sep='\n')

其中 yield用法
yield 的例子来源于文件读取。如果直接对文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。通过 yield,我们不再需要编写读文件的迭代类,就可以轻松实现文件读取
yield用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值